Skip to content

Agent实践

createToolCallingAgent#

createReactAgent

核心机制:ReAct 框架(Reasoning + Acting)

对于现代 LLM(如 GPT-4),当前 LangChain.js 更推荐使用 createToolCallingAgent

核心机制:直接提示(Direct Prompting)与结构化输出(Structured Output)

总结对比表

特性createToolCallingAgentcreateReactAgent
底层机制原生工具调用(Tool Calling)ReAct 框架(Reason + Act)
推理方式直接决策,无显式思考过程多步思维链(Thought → Action → Observation)
模型要求需支持结构化输出/工具调用的LLM任何文本生成模型均可(兼容性更强)
调用效率高(通常1-2次调用)较低(可能多次循环)
可解释性低(直接输出调用或回复)高(显示完整推理链)
适用LLMOpenAI, Anthropic, 支持tool calling的模型所有模型,尤其适合不支持tool calling的模型
典型应用快速响应、生产环境高效执行教学、调试、复杂任务分析

最佳实践

两者代表了 Agent 设计中“效率”与“透明度”的权衡:

streamEvents#

这是 AgentExecutor 提供的一个异步可迭代方法,用于在执行过程中实时产生事件流,而不是等待整个执行完成才返回结果。

.invoke().stream() 不同,.streamEvents() 提供的是最细粒度的执行过程信息,适合用于调试、监控、前端实时展示等场景。

const events = await executor.streamEvents(
{ input, chat_history },
{ version: 'v2' }
)

参数:

  1. {input, chat_history}
  1. {version: "v2"}

表示使用事件系统 v2 版本。该版本关键能力:

LangGraph#

LangChain 官方目前更加推荐使用 LangGraph 来创建 Agent,而不是传统的基于 AgentExecutor 的纯 LangChain 方法。

这并非意味着 LangChain 本身被弃用,而是 LangGraph 被定位为构建复杂、有状态、多步骤 Agent 的更强大、更灵活的底层框架。LangChain 的核心组件(如 LLM、工具、记忆等)仍然是基础,而 LangGraph 则是在其之上进行高级编排的“大脑”。

传统 AgentExecutor 的局限性

LangGraph 的核心优势

LangGraph 基于“有向图”(Directed Graph)的概念,将 Agent 的执行流程建模为节点(Nodes)和边(Edges)的图结构。

LangGraph 目前已从 LangChain 中独立出来,拥有自己的文档、GitHub 仓库和持续更新。官方称其为“用于构建有状态、多参与者 LLM 应用的框架”。