Phase 2 结尾,我们手动搭了一个客服 Agent:定义 State、写 Node、连 Edge、加条件分支、挂 Checkpointer。这一套手工活,搭一个简单 Agent 还行,但如果每次做 Agent 都这么搭一遍,太累。

create_agent 就是来解决这个的——它把标准 Agent 的那一套封装好,你一行代码就能搭出一个能调工具、有循环的 Agent。这一篇讲它封装了什么、底层是什么。

create_agent 封装了什么

回忆 Phase 2 那个客服 Agent,我们手动做了什么:

  • 定义 messages state
  • 写模型节点(调 LLM)
  • 写工具节点(执行工具)
  • 连条件 edge(有工具调用吗?)
  • 连循环(工具回模型)
  • 挂 checkpointer

这六步,几乎是每个工具型 Agent 都要做的create_agent 把这六步打包:

from langchain import create_agent

agent = create_agent(
    model=model,
    tools=[查订单工具, 搜索工具],
)

这一行就得到了一个能调工具、能循环推理的 Agent。它内部替你完成了 state 定义、模型节点、工具节点、条件分支、循环——全是 Phase 2 讲的那套。

create_agent 封装了标准 Agent 的六步

关键事实:底层就是一个 LangGraph

这是理解 create_agent 最重要的一个事实:它底层就是一个 LangGraph

create_agent 返回的 Agent,内部跑的就是一张图——和你在 Phase 2 手动搭的图,结构几乎一样:模型节点 → 条件分支(要不要调工具)→ 工具节点 → 循环回模型。

create_agent 底层就是 LangGraph

这意味着什么?意味着你没有丢失任何能力。用 create_agent 不是「降级」到一个黑盒——它跑的还是你熟悉的 LangGraph。需要时,你可以拿到这张图,像 Phase 2 那样去改它、扩展它。

create_agent 和 LangGraph 的关系是「封装 vs 原料」:create_agent 是封装好的标准品,LangGraph 是底层原料。标准品够用就用标准品,不够用时下沉到原料自己搭。

核心 Agent Loop

create_agent 跑的核心循环,就是 ReAct 模式(Phase 2 第 12 篇讲过):

1. 调用模型,把 tools 告诉它
2. 模型决定:直接回答,还是调某个工具
3. 如果调工具 → 执行工具 → 把结果回灌模型 → 回到第 1 步
4. 如果直接回答 → 输出,结束

这个循环会一直转,直到模型决定「不再调工具,直接回答」。create_agent 把这个循环实现了,你只管提供 model 和 tools。

核心 Agent Loop

什么时候用 create_agent,什么时候自己搭

场景 选择
标准工具型 Agent(调几个工具回答问题) create_agent
Agent 要加记忆管理、上下文压缩等横切能力 create_agent + middleware(下面几篇)
流程很特殊,标准循环套不上 自己用 LangGraph 搭
多 Agent 协作 LangGraph 手搭(第 16 篇)

什么时候用哪个

简单说:先试 create_agent,它覆盖了 80% 的工具型 Agent 需求;遇到它套不上的特殊流程,再下沉到 LangGraph 手搭

create_agent 返回的也是 Runnable

一个小但重要的点:create_agent 返回的 Agent 也是一个 Runnable(因为底层是编译后的 LangGraph)。

所以它有 invoke / stream / batch,能流式输出 Agent 的思考过程,能被 LangSmith 追踪。Phase 1 学的 Runnable 能力,这里全都用得上。

收束:从手搭到开箱即用

这一篇讲了 create_agent

  • 它把标准 Agent 的六步(state/模型节点/工具节点/条件分支/循环/checkpointer)封装好
  • 底层就是一个 LangGraph,不丢失任何能力
  • 核心是 ReAct 循环:模型决定调工具还是直接答
  • 覆盖 80% 工具型 Agent 需求,套不上再下沉手搭
  • 返回的 Agent 是 Runnable,继承所有能力

下一篇讲怎么在 create_agent 的基础上定制——Middleware:不动核心 loop,通过钩子注入记忆、压缩、护栏等能力。这是 Phase 3 的核心。


关于十三Tech

我是十三,All in AI Agent 方向的架构师,专注 AI 工程实践。我相信 AI 是程序员的最佳搭档。

如果你想跟完这套「图解 LangChain」,欢迎关注公众号 「十三Tech」。全系列 42 篇,会按认识基础、LangGraph 状态机、Agent 与 middleware、RAG 检索、Tools/MCP/记忆、生产化收束这条线更新。

十三Tech公众号二维码