返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

5 想法和启发

[复制链接]
链载Ai 显示全部楼层 发表于 8 小时前 |阅读模式 打印 上一主题 下一主题

1 适用场景

  • 需要多步组合、选择路径的复杂问题。

  • 该问题可以被拆分成多个子模块,每个子模块都能清晰地定义输入、输出和功能,并能判断是否达成目标。

  • 可能感觉有解决的方法,但不能确定具体的每一步方法。

  • 可能存在多种组合方式,而不仅限于单一的方法,并且我们无法确定最优的解决方案。

  • 对于单个模块而言,只需将接口描述清楚,无需过多考虑它与其他模块之间的调用关系。

2 原理

Thought->Action->Observation (Repeated many times)。

代理根据用户输入及当前状态选择一个动作,执行该动作并观察结果,然后继续下一个动作。

有了代理,就不需要手动编写 if/else 逻辑了,只需将选项提供给模型,让其进行判断。

3 langchain agent

Langchain 本身提供一些工具,例如 Google 搜索、GitHub 和 Python 等。如果需要自己实现工具,则需要继承 BaseTool 类,并实现 run 方法。模型根据工具的描述调用相应的方法,并观察其返回结果。

3.1.1 类别

  • 计划代理:通过 llm 制定计划

  • 执行代理:通过 llm 和 tools 实现计划

3.1.2 Chain 与 Agent 的差别

Chain 和 Agent 都用于解决多步问题。Chain 是静态的,过程是事先设计好的;而 Agent 则是动态的,由大模型来决策整个过程。

4 示例

from langchain.llms import ChatGLMfrom langchain.experimental.plan_and_execute import PlanAndExecute, load_agent_executor, load_chat_plannerfrom tools import LlmModelTool, VectorSearchTool endpoint_url = "http://12.0.59.21:8888"llm = ChatGLM(    endpoint_url=endpoint_url,    max_token=80000,    history=[],    model_kwargs={"sample_model_args": False},    temperature=0.95) tools = [LlmModelTool(), VectorSearchTool()] planner = load_chat_planner(llm)executor = load_agent_executor(llm, tools, verbose=True) agent = PlanAndExecute(planner=planner, executor=executor, verbose=True)agent.run(input="请帮我制定一份4月去云南旅游的计划")

5 想法和启发

  • 手动或自动将需要复用的方法封装成代理程序,以实现模块化并形成可重复使用的积木块。

  • 让大语言模型组装这些积木块。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ