"做一个 I Agent"——这个需求大概已经躺在不少人的待办列表里了。但翻遍现有资料会发现一个尴尬的断层:学术论文只写给机器学习工程师看,营销文案只负责把 Agent 吹上天,而中间的"Agent 内部到底怎么运转、该关心哪些环节"几乎没人写。这篇文章填的就是这个空白。从用户输入"帮我订机票"到 AI 点击"确认",每一步都用架构图拆开来看。
第1部分:黑盒
用户发一条消息,Agent 接收,另一端给出一个答案或执行一个动作。给领导做 Demo 时展示的基本就是这张图:
Demo 场景下这没问题。放进产品就不行了,因为迟早会出故障而且到时候必须定位是哪个环节坏的。
画不出 Agent 内部流程,就没法调试、没法圈定范围、没法写验收标准。黑盒是我们的敌人。
第2部分:Chain-of-Thought
黑盒里最简单的架构就是 Chain-of-Thought。模型拿到输入后,将问题拆成若干推理步骤,顺序执行直到得出结论。没有工具调用,没有外部请求,纯粹的串行推理。
"链"是核心概念。每一步都以前一步的输出作为上下文:第2步知道第1步的结论,第3步建立在前两步之上。模型本质上在跟自己对话,沿途留下可回溯的逻辑痕迹。
透明——追踪记录里每一个推理步骤都可读;快——不涉及外部 API 调用,延迟低;便宜——只需一次带扩展输出的 LLM 调用;但也有限——模型访问不到训练数据和当前上下文之外的信息。
答案完全包含在上下文窗口里时Chain-of-Thought 是最优解。一旦需要实时数据——股票报价、日历查询、数据库检索——CoT 单独扛不住。
第3部分:ReAct
ReAct 是 Reasoning + Acting 的缩写,他解决了 Chain-of-Thought 的短板:让模型在推理过程中与外部世界交互。不再沿直线想完再输出,而是思考、执行动作、观察结果,然后带着新信息重新思考。
循环如下:
正是这套架构让 Agent 产生了"魔法感"。模型不只是做一份旅行计划——它去搜索航班、读取返回结果、注意到最低价有一次中转、判断用户可能更偏好直飞,然后改订直飞班次。每次观察都把下一轮思考锚定在真实数据上。
每一轮迭代都用真实数据替换模型自行编造的内容;Agent 能根据中间发现调整策略;Thought-Action-Observation 的完整链路就是一份决策日志。但是每多一轮循环就多一次工具调用带来的延迟,迭代越多,循环跑偏的概率越大。
循环迭代次数是最关键的调优参数。设得太少,Agent 还没做完就放弃了;设得太多Token 和预算一起烧。所以建议从上限5次起步,根据线上数据再调。
第4部分:工具使用
工具是把聊天机器人升级为 Agent 的那条分界线。接入工具后LLM 可以搜索网页、查数据库、发邮件、跑代码。但 LLM 本身并不直接执行这些操作——它生成一个结构化的调用请求(通常是 JSON),交给独立的执行器去处理。
内部流程:
这层分离非常关键。LLM 负责决策——选哪个工具、传什么参数;执行器负责动手——跑函数、处理鉴权、管理限流、返回结果。结果再回传给 LLM,进入下一步推理。
LLM 始终不会直接碰到 API 密钥或凭证。系统提示里的工具描述相当于给 LLM 提供的一份"清单",描述写得差,选择就会出错——垃圾进,垃圾出。而每一次工具调用本身都是潜在故障点:超时、鉴权失败、返回格式异常,都可能中断流程。
工具描述本质上是写给 AI 看的产品文案。写的时候想象一个聪明但极度较真的新人在读:工具做什么,什么场景该用,返回什么,什么时候不该用——都要讲清楚。
这里还用 Chain-of-Thought 吗?当然用CoT 和工具使用并不是互斥而是协同关系,CoT 是让工具调用正确发生的"引擎"。LLM 在输出 JSON 调用请求之前,会在一个隐藏的 Chain-of-Thought 草稿区做推理:"用户要订去东京的机票,先确认日期,再调 search_flights 工具。"先想清楚(CoT),再动手(工具调用)。ReAct 做的事情,就是把这两步串成循环。
早期需要在系统提示里手动写上"think step-by-step"来迫使模型走这条路。现在的前沿模型——OpenAI 的 o1、最新版 Claude 4.6 sonnet、Gemini 3.1 pro——已经把 CoT 阶段原生嵌入了架构,输出工具调用前自动在隐藏草稿区完成推理。
第5部分:选择架构
用哪种架构?生产环境中的 Agent 几乎都混合了三种架构的元素。但主导模式决定了延迟、成本和故障特征,选择很重要。
对比概览:
自主性越高,准确性越好,但延迟、成本和出错面也同步上升。一个做文档摘要的 Chain-of-Thought Agent 又快又省;一个横跨三个 API 订机票酒店租车的工具增强 Agent 能力丰富,但是贵。
任务是对已有上下文做自包含推理时,从纯 CoT 起步,不挂工具。Agent 在推理过程中需要获取外部数据或校验事实时,加入只读工具,切到 ReAct 模式。Agent 必须执行有现实后果的操作——订票、发邮件——时,上读写工具,走完全工具增强路线。
选能解决问题的最简架构。工具随时可以加,复杂性一旦被用户依赖就很难撤掉。
核心思维模型
"Agent 就是一个带有观点的循环——我们的工作是决定这个循环拥有多少观点,以及何时终止。"
一句话足够概括。Chain-of-Thought 是只有一轮的循环:想,答。ReAct 在循环里加了动作。工具增强 Agent 给循环装上触及外部世界的接口。每一个架构决策,归根到底都是在调控循环的自主权边界和终止条件。
by Akash Doifode