LangChain Agent 对象分类(BaseAgent 派生的各类实体 Agent,对应 create_xxx_agent 产出实例)

区分:

Agent 对象 = 决策内核

AgentExecutor = 运行容器。

下面全是不同种类 Agent 实例。

一、1. OpenAIToolsAgent(工具调用型 / FunctionCallingAgent)

python

运行

agent = create_tool_calling_agent(llm, tools, prompt)
  1. 依赖模型原生 Tool Call (JSON 结构化输出),GPT、Claude、Qwen、GLM 等支持 function call 模型;
  2. LLM 直接输出标准tool_calls结构化参数,不靠 Prompt 正则解析;
  3. 优点:格式稳定、支持一次批量调用多个工具
  4. 适用:商用大模型、Agent-RAG、MCP 远程工具混合场景。

二、2. ReActAgent(提示词解析型)

python

运行

agent = create_react_agent(llm, tools, prompt)
  1. 依靠 Prompt 约定文本格式:Thought→Action→Action Input靠字符串截取解析工具名和参数;
  2. 不依赖模型原生函数能力,任何大模型都能用(Llama、Qwen 开源离线小模型首选)
  3. 单轮思考只能调用单个工具,易出现格式错乱;
  4. 私有化内网知识库、离线 RAG 标配。

三、3. StructuredChatAgent(结构化对话 Agent)

python

运行

create_structured_chat_agent()
  • 改良版 ReAct,支持多参数结构化入参,解决原生 ReAct 难以传递多字段参数的痛点;
  • 依旧 Prompt 约束文本格式,无原生 FunctionCall 也可使用。

四、4. JSONAgent

强制 LLM 输出纯 JSON 格式动作,不用自定义文本标记,解析更稳健;适合不支持 ToolCall 但擅长 JSON 输出的开源模型。

五、5. XMLAgent

强制模型用 XML 标签包裹工具名称与参数,靠正则提取;部分国产小模型适配更好。

六、按使用场景细分的专用 Agent(底层仍是上面几类内核)

  1. Retrieval Agent:工具列表内置create_retriever_tool,即 Agent-RAG;
  2. MultiTool/MCP Agent:工具 = 本地函数 + MCP 远端工具(to_langchain_tools转换后的 MCP 工具);
  3. MultiAgent 子 Agent:子 Agent 封装为 Tool,被父 Agent 调用(LangGraph 常用)。

七、新版趋势:自定义 Agent(LCEL / LangGraph,不再使用内置 Agent 类)

  1. LCEL:Prompt | llm.bind_tools() | RunnableLambda(tool_exec)自己造 Agent 决策链路,无现成 Agent 对象
  2. LangGraph:手动定义节点 + 路由,抛弃 BaseAgent 体系,工业复杂 Agent 主流方案。

快速选型对照表

表格

Agent 类型 调用原理 适用模型
OpenAIToolsAgent 原生 JSON tool_call GPT / 通义 / 商用大模型
ReActAgent Prompt 文本正则解析 全模型、开源离线小模型
StructuredChatAgent Prompt + 结构化格式 多参数复杂工具、无 FC 模型
JSON/XML Agent 标签 / JSON 解析 偏好结构化输出的开源模型

关键总结

  1. create_xxx_agent() 返回值 = 各类 Agent 实例对象
  2. 实例必须塞入AgentExecutor(agent=xxx,tools=...)才能运行;
  3. 不想用内置 Agent 种类 → LCEL 手写 / LangGraph 自定义替代。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐