概述
代理使用 LLM
来确定采取哪些行动以及采取什么顺序。**动作(action)**可以是使用工具并观察其输出,也可以是向用户返回的响应。以下是LangChain
可用的代理。
Zero-shot ReAct
该代理使用 ReAct
框架仅根据工具的描述来确定要使用哪个工具。可以提供任意数量的工具。该代理要求为每个工具提供描述。
注意:这是最通用的动作代理。
Structured input ReAct
结构化工具聊天代理能够使用多输入工具。较旧的代理配置为将动作输入指定为单个字符串,但此代理可以使用工具的参数模式来创建结构化动作输入。这对于更复杂的工具使用非常有用,例如在浏览器中精确导航。
OpenAI Functions
某些 OpenAI
模型(如 gpt-3.5-turbo-0613
和 gpt-4-0613
)经过了明确微调,以检测何时应调用函数并响应应传递给函数的输入。 OpenAI Functions Agent
旨在与这些模型配合使用。
Conversational
该代理设计用于对话设置。该提示旨在让客服人员提供帮助并进行对话。它使用ReAct框架来决定使用哪个工具,并使用内存来记住之前的对话交互。
Self ask with search
该代理使用一个应命名为“Intermediate Answer
”的工具。该工具应该能够查找问题的事实答案。这个代理相当于原来的 self Ask with search paper
,其中提供了 Google 搜索 API 作为工具。
ReAct document store
该代理使用 ReAct 框架与文档库交互。必须提供两个工具:搜索工具和查找工具(它们的名称必须完全相同)。搜索工具应搜索文档,而查找工具应在最近找到的文档中查找术语。该代理相当于原始的 ReAct 论文,特别是维基百科的示例。
Plan-and-execute agents
Plan and execute agents
:首先计划要做什么,然后执行子任务来实现目标。
这个想法很大程度上受到 BabyAGI
和随后的“Plan-and-Solve
”论文的启发。
参考地址:
https://python.langchain.com/docs/modules/agents/agent_types/