代理类型
行动代理 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的启发,然后是"计划和解决"论文。