01 Agent 到底是什么普通大模型只会回答。Agent 不一样它可以先判断再行动再根据结果继续判断。一句话Agent 会使用工具的大模型循环。用户问“帮我分析这只股票今天为什么涨”普通问答可能直接编。Agent 会先查行情再查公告再查新闻再把结果合在一起回答。这就是差别。不是模型更神而是模型被接到了真实系统上。02 为什么固定 Chain 不够Chain 适合固定流程。比如企业知识库问答检索拼上下文调用模型返回答案。流程清晰稳定可控。但真实任务经常不固定。用户的问题可能需要查订单也可能需要查数据库也可能需要查网页也可能先检索再计算。你提前写死所有分支代码会越来越乱。Agent 的价值就是把“下一步做什么”交给模型判断。但注意不是把一切都交给模型。模型只负责决策。真正执行还是工具和业务系统。03 LangChain 里的 Agent不是玄学LangChain 官方现在把 Agent 讲得很清楚Agent 是模型在循环中调用工具直到任务完成。围绕这个循环还有一层 harness也就是模型、Prompt、工具、中间件、状态、检查点这些工程能力。所以 LangChain Agent 不是一个“神秘智能体”。它更像一个可运行的图模型节点负责判断工具节点负责执行状态负责保存消息路由负责决定继续还是结束。04 create_agent 做了什么从使用者看create_agent 很简单传模型传工具传系统提示词。from langchain.agents import create_agentfrom langchain.tools import tooltooldef query_order(order_id: str) - str:查询订单状态return 订单已发货预计明天到达agent create_agent(modelopenai:gpt-5.5,tools[query_order],system_prompt你是一个客服助手回答必须简洁准确。)result agent.invoke({messages: [{role: user, content: 帮我查订单 123}]})从源码视角看create_agent 不是简单返回一个函数。它会创建一个 Agent Graph。这个 Graph 里至少有模型节点和工具节点。模型节点输出 tool_calls工具节点执行工具再把结果写回 messages。如果模型还要继续调用工具就继续循环。如果模型不再返回 tool_calls就结束。05 Agent 的状态核心messagesAgent 不是靠一个字符串记上下文。它靠状态。状态里最重要的字段就是 messages。messages 里会依次保存用户消息、模型消息、工具调用、工具返回、最终回答。每一轮模型调用都会读取这组消息。这也是为什么前面我们专门讲过 Messages。Agent 是 Messages 的高级用法。06 Agent Loop 怎么跑源码链路可以压缩成五句话。第一步agent.invoke() 把用户输入写入 State。第二步图运行时进入 model node。第三步model node 把 messages、system_prompt、tools 组装好调用模型。第四步模型如果返回 tool_calls图会路由到 tools nodetools node 执行工具生成 ToolMessage。第五步ToolMessage 进入 messages图再回到 model node。直到模型不再返回 tool_calls。所以 Agent 的本质不是“模型会思考”。而是“模型输出动作系统执行动作结果再喂回模型”。07 Tool Calling 和 Agent 的关系上一章讲 Tool Calling我们只讲到模型怎么选择工具。到了 Agent这个动作被自动循环起来。手动 Tool Calling 是你自己写 while 循环发现 tool_calls就执行工具再把结果塞回模型。Agent 是 LangChain 帮你把这个循环封装好。但封装不等于不用理解。线上排查时你一定要知道模型有没有返回 tool_calls工具有没有执行ToolMessage 有没有回填最后有没有再次调用模型08 什么场景适合 Agent不是所有任务都要 Agent。能固定流程就别上 Agent。Agent 强在动态决策也贵在动态决策。一句话固定流程用 Chain。动态工具调用用 Agent。复杂审批和状态机用 LangGraph。09 Agent 的能力边界Agent 很强但也危险。它可能选错工具可能传错参数可能重复调用可能把成本打爆。所以生产环境不能让 Agent 裸奔。工具必须白名单。参数必须校验。高风险动作必须人工确认。工具结果必须审计。模型失败必须降级。10 企业项目里怎么落地推荐架构还是老规矩Java 主服务做业务Python AI 服务做 Agent。Java 负责鉴权、用户、订单、权限、审计。Python 负责 LangChain、模型、工具、RAG、Agent 编排。Agent 不直接碰生产数据库。它通过受控工具访问业务系统。每次调用都要有 requestId、userId、toolName、args、result、cost、latency。11 智能客服里的 Agent 怎么跑用户问我的订单怎么还没到Agent 第一轮调用模型。模型判断需要查订单于是返回 query_order 工具调用。工具节点查询订单系统返回物流状态。模型第二轮读取 ToolMessage发现还需要查售后规则于是调用 policy_search。拿到规则后模型生成最终答案订单当前在哪预计多久到是否可以补偿下一步怎么做。这就是 Agent 比普通 RAG 更强的地方它不是只查一次资料而是会根据中间结果继续行动。12 源码理解的关键点理解 Agent不要背概念。抓住四个点就够。第一Agent 的输入输出是 State不只是字符串。第二State 里最关键的是 messages。第三模型是否返回 tool_calls决定图往哪里走。第四工具执行结果必须变成 ToolMessage再喂回模型。这四点明白了LangChain Agent 就不玄了。14 总结Chain 是固定流水线。Agent 是动态决策循环。Tool Calling 是单次工具选择。Agent 是把工具选择、工具执行、结果回填、再次判断串成循环。create_agent 的价值不是少写几行代码而是把模型、工具、Prompt、中间件、状态和运行时组织成一个可控的 Agent Graph。真正落地时Agent 不能裸奔。必须有权限、审计、限流、超时、人工确认和降级兜底。下一章我们继续讲新版 LangChain 的核心入口create_agent。重点看它的参数、运行图、状态 schema、中间件和结构化输出。内容来源LangChain 系列之Agent从固定流程到模型自主决策功能变化与行业影响解析_热闻岛
LangChain 系列之Agent:从固定流程到模型自主决策
发布时间:2026/6/14 21:15:09
01 Agent 到底是什么普通大模型只会回答。Agent 不一样它可以先判断再行动再根据结果继续判断。一句话Agent 会使用工具的大模型循环。用户问“帮我分析这只股票今天为什么涨”普通问答可能直接编。Agent 会先查行情再查公告再查新闻再把结果合在一起回答。这就是差别。不是模型更神而是模型被接到了真实系统上。02 为什么固定 Chain 不够Chain 适合固定流程。比如企业知识库问答检索拼上下文调用模型返回答案。流程清晰稳定可控。但真实任务经常不固定。用户的问题可能需要查订单也可能需要查数据库也可能需要查网页也可能先检索再计算。你提前写死所有分支代码会越来越乱。Agent 的价值就是把“下一步做什么”交给模型判断。但注意不是把一切都交给模型。模型只负责决策。真正执行还是工具和业务系统。03 LangChain 里的 Agent不是玄学LangChain 官方现在把 Agent 讲得很清楚Agent 是模型在循环中调用工具直到任务完成。围绕这个循环还有一层 harness也就是模型、Prompt、工具、中间件、状态、检查点这些工程能力。所以 LangChain Agent 不是一个“神秘智能体”。它更像一个可运行的图模型节点负责判断工具节点负责执行状态负责保存消息路由负责决定继续还是结束。04 create_agent 做了什么从使用者看create_agent 很简单传模型传工具传系统提示词。from langchain.agents import create_agentfrom langchain.tools import tooltooldef query_order(order_id: str) - str:查询订单状态return 订单已发货预计明天到达agent create_agent(modelopenai:gpt-5.5,tools[query_order],system_prompt你是一个客服助手回答必须简洁准确。)result agent.invoke({messages: [{role: user, content: 帮我查订单 123}]})从源码视角看create_agent 不是简单返回一个函数。它会创建一个 Agent Graph。这个 Graph 里至少有模型节点和工具节点。模型节点输出 tool_calls工具节点执行工具再把结果写回 messages。如果模型还要继续调用工具就继续循环。如果模型不再返回 tool_calls就结束。05 Agent 的状态核心messagesAgent 不是靠一个字符串记上下文。它靠状态。状态里最重要的字段就是 messages。messages 里会依次保存用户消息、模型消息、工具调用、工具返回、最终回答。每一轮模型调用都会读取这组消息。这也是为什么前面我们专门讲过 Messages。Agent 是 Messages 的高级用法。06 Agent Loop 怎么跑源码链路可以压缩成五句话。第一步agent.invoke() 把用户输入写入 State。第二步图运行时进入 model node。第三步model node 把 messages、system_prompt、tools 组装好调用模型。第四步模型如果返回 tool_calls图会路由到 tools nodetools node 执行工具生成 ToolMessage。第五步ToolMessage 进入 messages图再回到 model node。直到模型不再返回 tool_calls。所以 Agent 的本质不是“模型会思考”。而是“模型输出动作系统执行动作结果再喂回模型”。07 Tool Calling 和 Agent 的关系上一章讲 Tool Calling我们只讲到模型怎么选择工具。到了 Agent这个动作被自动循环起来。手动 Tool Calling 是你自己写 while 循环发现 tool_calls就执行工具再把结果塞回模型。Agent 是 LangChain 帮你把这个循环封装好。但封装不等于不用理解。线上排查时你一定要知道模型有没有返回 tool_calls工具有没有执行ToolMessage 有没有回填最后有没有再次调用模型08 什么场景适合 Agent不是所有任务都要 Agent。能固定流程就别上 Agent。Agent 强在动态决策也贵在动态决策。一句话固定流程用 Chain。动态工具调用用 Agent。复杂审批和状态机用 LangGraph。09 Agent 的能力边界Agent 很强但也危险。它可能选错工具可能传错参数可能重复调用可能把成本打爆。所以生产环境不能让 Agent 裸奔。工具必须白名单。参数必须校验。高风险动作必须人工确认。工具结果必须审计。模型失败必须降级。10 企业项目里怎么落地推荐架构还是老规矩Java 主服务做业务Python AI 服务做 Agent。Java 负责鉴权、用户、订单、权限、审计。Python 负责 LangChain、模型、工具、RAG、Agent 编排。Agent 不直接碰生产数据库。它通过受控工具访问业务系统。每次调用都要有 requestId、userId、toolName、args、result、cost、latency。11 智能客服里的 Agent 怎么跑用户问我的订单怎么还没到Agent 第一轮调用模型。模型判断需要查订单于是返回 query_order 工具调用。工具节点查询订单系统返回物流状态。模型第二轮读取 ToolMessage发现还需要查售后规则于是调用 policy_search。拿到规则后模型生成最终答案订单当前在哪预计多久到是否可以补偿下一步怎么做。这就是 Agent 比普通 RAG 更强的地方它不是只查一次资料而是会根据中间结果继续行动。12 源码理解的关键点理解 Agent不要背概念。抓住四个点就够。第一Agent 的输入输出是 State不只是字符串。第二State 里最关键的是 messages。第三模型是否返回 tool_calls决定图往哪里走。第四工具执行结果必须变成 ToolMessage再喂回模型。这四点明白了LangChain Agent 就不玄了。14 总结Chain 是固定流水线。Agent 是动态决策循环。Tool Calling 是单次工具选择。Agent 是把工具选择、工具执行、结果回填、再次判断串成循环。create_agent 的价值不是少写几行代码而是把模型、工具、Prompt、中间件、状态和运行时组织成一个可控的 Agent Graph。真正落地时Agent 不能裸奔。必须有权限、审计、限流、超时、人工确认和降级兜底。下一章我们继续讲新版 LangChain 的核心入口create_agent。重点看它的参数、运行图、状态 schema、中间件和结构化输出。内容来源LangChain 系列之Agent从固定流程到模型自主决策功能变化与行业影响解析_热闻岛