Skip to main content

代理类型

行动代理 Action agents

代理使用LLM来确定采取哪些行动Action以及以什么顺序采取行动。一个行动可以是使用工具并观察其输出,或者向用户返回一个响应。以下是LangChain中可用的代理:

Zero-shot ReAct

这个代理程序使用ReAct框架来根据工具的描述确定使用哪个工具。可以提供任意数量的工具。这个代理程序要求每个工具Tool都需要描述(这个工具是用来做什么的)。

注意:这是最通用的动作代理程序。

Structured input ReAct

结构化工具聊天代理能够使用多输入工具。旧代理配置为将操作输入指定为单个字符串,但该代理可以使用工具的参数模式来创建结构化操作输入。这对于更复杂的工具使用非常有用,比如精确地在浏览器中导航。

OpenAI Functions

某些OpenAI模型(如gpt-3.5-turbo-0613和gpt-4-0613)已经明确进行了微调,以便检测何时应调用函数并响应应传递给函数的输入。OpenAI函数代理专为与这些模型配合使用而设计。

对话 Conversational

该代理被设计用于对话环境。提示被设计为使代理有帮助和具有对话性。它使用ReAct框架来决定使用哪个工具,并使用内存来记住先前的对话互动。

ReAct文档搜索

该代理程序使用一个名为Intermediate Answer的工具。该工具应能够查找问题的事实答案。该代理程序相当于原始的self ask with search paper,其中提供了一个Google搜索API作为工具。

ReAct document store

该代理使用ReAct框架与文档存储进行交互。必须提供两个工具:一个“搜索”工具和一个“查找”工具(它们必须按照这样的名称命名)。“搜索”工具应该用于搜索文档,而“查找”工具应该在最近找到的文档中查找一个术语。该代理等同于原始的ReAct论文,特别是维基百科的示例。

计划和执行代理

计划和执行代理通过首先规划要做的事情,然后执行子任务来实现目标。这个想法在很大程度上受到BabyAGI的启发,然后是"计划和解决"论文