【LangChain】在创建 Agent 时 initialize_agent 函数中 通过 agent 指定的 AgentType 有哪些?

ZERO_SHOT_REACT_DESCRIPTION

描述:基于 ReAct(Reasoning + Acting)框架的零样本代理,仅依赖工具描述进行推理和行动,无需示例。
适用场景:通用工具调用任务,适合快速构建无需训练数据的代理。
提示策略:生成包含工具描述的提示,代理通过推理选择工具并执行。
工具支持:支持任意数量的工具。


REACT_DOCSTORE

描述:专为文档存储(Docstore)设计的 ReAct 代理,结合搜索和查找工具处理文档相关任务。
适用场景:需要从文档库中检索信息的任务,如问答系统。
提示策略:提示包含搜索和查找工具的描述,代理通过 ReAct 逻辑处理文档查询。
工具支持:通常与 Search 和 Lookup 工具配合。


SELF_ASK_WITH_SEARCH

描述:自问自答代理,通过搜索工具回答复杂问题,逐步分解问题并查找答案。
适用场景:需要外部知识(如网络搜索)的问答任务。
提示策略:提示引导代理提出子问题,调用搜索工具获取答案。
工具支持:通常需要一个搜索工具(如 Google 搜索 API)。


CONVERSATIONAL_REACT_DESCRIPTION

描述:对话型 ReAct 代理,结合对话历史和工具调用,适合交互式对话场景。
适用场景:需要维护对话上下文并调用工具的聊天机器人。
提示策略:提示包含对话历史和工具描述,代理在对话中推理和行动。
工具支持:支持任意工具,强调对话流畅性。


CHAT_ZERO_SHOT_REACT_DESCRIPTION

描述:为聊天模型优化的零样本 ReAct 代理,使用消息格式提示,适合现代聊天模型(如 gpt-4o)。
适用场景:与聊天模型结合的工具调用任务,注重消息格式。
提示策略:使用系统消息和用户消息,包含工具描述,代理通过 ReAct 逻辑行动。
工具支持:支持工具调用,兼容现代模型的工具调用 API。


CHAT_CONVERSATIONAL_REACT_DESCRIPTION

描述:为聊天模型优化的对话型 ReAct 代理,结合对话历史和工具调用。
适用场景:需要对话上下文和工具调用的交互式聊天场景。
提示策略:提示包含对话历史、系统消息和工具描述,代理在对话中推理。
工具支持:支持任意工具,强调对话连续性。


STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION

描述:为结构化工具调用优化的零样本 ReAct 代理,支持多输入工具(Structured Tools)。
适用场景:需要调用复杂工具(多参数或 schema 定义)的任务。
提示策略:提示包含工具的结构化描述,代理通过 ReAct 逻辑选择和调用工具。
工具支持:专为 StructuredTool 或复杂工具 schema 设计。


OPENAI_FUNCTIONS(已废弃)

描述:专为 OpenAI 函数调用(Function Calling)设计的代理,使用 OpenAI 的原生函数调用 API。
适用场景:早期 OpenAI 模型(如 gpt-3.5-turbo)的函数调用任务。
提示策略:直接利用 OpenAI 的函数调用接口,无需复杂提示。
工具支持:支持 OpenAI 函数格式的工具。
注意:在 LangChain 0.3.x 中已标记为不推荐,建议使用 CHAT_ZERO_SHOT_REACT_DESCRIPTION 或 LangGraph。


OPENAI_MULTI_FUNCTIONS(已废弃)

描述:类似 OPENAI_FUNCTIONS,但支持同时调用多个函数。
适用场景:需要批量函数调用的场景。
提示策略:与 OPENAI_FUNCTIONS 类似,依赖 OpenAI 函数调用 API。
工具支持:支持多函数调用。
注意:同样不推荐,建议迁移到现代工具调用代理。


如何选择 AgentType?

简单工具调用:使用 ZERO_SHOT_REACT_DESCRIPTION(通用)或 CHAT_ZERO_SHOT_REACT_DESCRIPTION(聊天模型)。
对话场景:使用 CONVERSATIONAL_REACT_DESCRIPTION 或 CHAT_CONVERSATIONAL_REACT_DESCRIPTION。
复杂工具:使用 STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION。
文档检索:使用 REACT_DOCSTORE。
搜索驱动:使用 SELF_ASK_WITH_SEARCH。
OpenAI 函数调用:避免使用 OPENAI_FUNCTIONS 或 OPENAI_MULTI_FUNCTIONS,改用 CHAT_ZERO_SHOT_REACT_DESCRIPTION

 

 

 

参考:https://blog.csdn.net/u013172930/article/details/147645558

posted @ 2025-05-08 14:35  河北大学-徐小波  阅读(322)  评论(0)    收藏  举报