[智能体-253]:LangChain Agent 对象分类(BaseAgent 派生的各类实体 Agent,对应 create_xxx_agent 产出实例)
·
LangChain Agent 对象分类(BaseAgent 派生的各类实体 Agent,对应 create_xxx_agent 产出实例)
区分:
Agent 对象 = 决策内核;
AgentExecutor = 运行容器。
下面全是不同种类 Agent 实例。
一、1. OpenAIToolsAgent(工具调用型 / FunctionCallingAgent)
python
运行
agent = create_tool_calling_agent(llm, tools, prompt)
- 依赖模型原生 Tool Call (JSON 结构化输出),GPT、Claude、Qwen、GLM 等支持 function call 模型;
- LLM 直接输出标准
tool_calls结构化参数,不靠 Prompt 正则解析; - 优点:格式稳定、支持一次批量调用多个工具;
- 适用:商用大模型、Agent-RAG、MCP 远程工具混合场景。
二、2. ReActAgent(提示词解析型)
python
运行
agent = create_react_agent(llm, tools, prompt)
- 依靠 Prompt 约定文本格式:
Thought→Action→Action Input,靠字符串截取解析工具名和参数; - 不依赖模型原生函数能力,任何大模型都能用(Llama、Qwen 开源离线小模型首选);
- 单轮思考只能调用单个工具,易出现格式错乱;
- 私有化内网知识库、离线 RAG 标配。
三、3. StructuredChatAgent(结构化对话 Agent)
python
运行
create_structured_chat_agent()
- 改良版 ReAct,支持多参数结构化入参,解决原生 ReAct 难以传递多字段参数的痛点;
- 依旧 Prompt 约束文本格式,无原生 FunctionCall 也可使用。
四、4. JSONAgent
强制 LLM 输出纯 JSON 格式动作,不用自定义文本标记,解析更稳健;适合不支持 ToolCall 但擅长 JSON 输出的开源模型。
五、5. XMLAgent
强制模型用 XML 标签包裹工具名称与参数,靠正则提取;部分国产小模型适配更好。
六、按使用场景细分的专用 Agent(底层仍是上面几类内核)
- Retrieval Agent:工具列表内置
create_retriever_tool,即 Agent-RAG; - MultiTool/MCP Agent:工具 = 本地函数 + MCP 远端工具(
to_langchain_tools转换后的 MCP 工具); - MultiAgent 子 Agent:子 Agent 封装为 Tool,被父 Agent 调用(LangGraph 常用)。
七、新版趋势:自定义 Agent(LCEL / LangGraph,不再使用内置 Agent 类)
- LCEL:
Prompt | llm.bind_tools() | RunnableLambda(tool_exec),自己造 Agent 决策链路,无现成 Agent 对象; - LangGraph:手动定义节点 + 路由,抛弃 BaseAgent 体系,工业复杂 Agent 主流方案。
快速选型对照表
表格
| Agent 类型 | 调用原理 | 适用模型 |
|---|---|---|
| OpenAIToolsAgent | 原生 JSON tool_call | GPT / 通义 / 商用大模型 |
| ReActAgent | Prompt 文本正则解析 | 全模型、开源离线小模型 |
| StructuredChatAgent | Prompt + 结构化格式 | 多参数复杂工具、无 FC 模型 |
| JSON/XML Agent | 标签 / JSON 解析 | 偏好结构化输出的开源模型 |
关键总结
create_xxx_agent()返回值 = 各类 Agent 实例对象;- 实例必须塞入
AgentExecutor(agent=xxx,tools=...)才能运行; - 不想用内置 Agent 种类 → LCEL 手写 / LangGraph 自定义替代。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)