一句话总结
AI Agent 不是更聪明的聊天机器人,而是一个能「看懂任务、调用工具、循环改进」的智能系统——它的本质是模型与世界的接口。本文从核心公式出发,带你逐层深入 Agent 的组件、循环、工程范式和实践原则。
引言:你已经在使用 AI Agent 了
如果你在用 Claude Code 写代码、用千问点外卖、用豆包做深度研究,其实已经在使用 AI Agent 了。这些产品有一个明显的共同点:它们不再是「你问一句、它答一句」的对话,而是能够自主规划执行步骤、调用各种工具完成任务,并根据结果不断调整策略的智能系统。
回顾人机交互的演进史:从命令行(CLI)到图形界面(GUI),再到触摸交互,每一次范式跃迁都极大地降低了使用门槛。Agent 所代表的,是交互范式的又一次跃迁——从「人学会操作机器」转向「机器学会理解人」。你不再需要点击菜单、填写表单,只需用自然语言描述意图,Agent 就会自主拆解、调用工具、完成执行。
一、核心公式:三个词概括 Agent 的本质
现代 Agent 系统的本质可以用一个简洁的公式来表达:
Agent = 决策引擎 + 信息视野 + 执行通道
这三个词分别对应三个部分:
| 组件 | 含义 | 类比 |
|---|---|---|
| 决策引擎(LLM) | 决定「做什么、怎么做」 | 新东方厨师的烹饪判断力 |
| 信息视野(上下文) | 决定「能看到什么、知道什么」 | 食材库存、宾客名单、菜谱 |
| 执行通道(工具) | 决定「能改变什么、能影响什么」 | 刀、灶、烤箱、帮厨 |
用一个做菜的比喻来理解:新东方的厨子再厉害,如果没有食材信息(信息视野缺失)、没有厨具和帮厨(执行通道缺失),也做不出一桌好菜。反过来,食材再新鲜、厨具再齐全,没有主厨的判断力(决策引擎薄弱),也只会浪费食材。三者必须协同,才能成事。
二、Agent 是怎么工作的:ReAct 循环
公式是静态的,真实的 Agent 是动态运行的——它会一步步思考、行动、观察结果、再思考。这个动态过程,就是 ReAct 循环。
什么是 ReAct
ReAct 是 “Reasoning + Acting”(推理 + 行动)的缩写,由研究人员在 2022 年提出。核心思想极其简单:让模型交替地「想」和「做」。
就像你做一道没做过的菜——看一眼菜谱(想)→ 拿出食材(做)→ 发现少了盐(观察)→ 想想怎么办(想)→ 去楼下买盐(做)→ 回来继续(观察)。Agent 干活的方式,和这个过程几乎一模一样。
ReAct 循环的每一步包含三个动作:
- 思考(Thought):模型基于当前所有信息,推理下一步该做什么
- 行动(Action):模型决定调用哪个工具、传什么参数
- 观察(Observation):工具执行后返回结果,模型把结果加入上下文
这三步循环往复,直到模型认为任务完成。
轨迹:循环的执行记录
Agent 每运行一次,就会留下一条完整的「行动记录」,称为轨迹(Trajectory)。轨迹是按时间顺序排列的消息序列,记录了从用户提问到最终答案的全过程。
以一个「上海到北京 3 天旅行规划」任务为例,Agent 的轨迹可能包含三次迭代:
- 第一轮:分析任务 → 并行调用高铁搜索和酒店搜索
- 第二轮:基于搜索结果 → 调用景点搜索和餐厅搜索
- 第三轮:确认信息收集完成 → 生成最终行程
轨迹不仅是执行记录,更是 Agent 能力的体现。 通过分析大量轨迹,可以发现行为模式、优化决策路径、改进工具设计。轨迹数据甚至可以总结到知识库中,或者通过强化学习来训练更好的 Agent 模型,实现从经验中学习的闭环优化。
上下文累积性:ReAct 的精妙之处
这种设计的精妙之处在于上下文的累积性。每次 LLM 调用都能看到完整的轨迹,这让它能够理解当前处于任务的哪个阶段、之前尝试了什么、得到了什么结果。
就像你在写一个复杂的逻辑:每写一步都参考前面的输出,保持上下文连贯。Agent 的轨迹就是它的「大脑缓存」——让模型在每一步都能「看见」自己走过的路。
消融实验:理解循环的诊断方法
要真正理解一个系统怎么工作,一个有效的方法是逐个拿掉它的组件。这种方法叫消融实验(Ablation Study):
- 拿掉「工具结果反馈」:Agent 陷入无限循环,反复调用同一个工具——因为它「看不到」已经调用过了
- 拿掉「思考过程」:决策质量大幅下降,经常调用错误的工具或传错参数
- 拿掉「历史轨迹」:Agent 完全丧失多步任务能力,每一步都像从头开始
消融实验的价值在于:它把「这个组件有用」的直觉,转化为「拿掉它系统会怎样」的可验证判断。
三、三大组件的深度剖析
3.1 工具:Agent 的执行通道
工具是 Agent 的「手脚」,现代 Agent 的工具可以分为四类:
| 类型 | 说明 | 例子 |
|---|---|---|
| 预定义工具 | 固定输入输出的 API 调用 | search_web(query), send_email(to, body) |
| 技能(Skills) | 按需动态加载的工具集 | 上百个工具时避免上下文浪费 |
| 动态生成代码 | Agent 现场写代码完成任务 | Code Interpreter 分析 CSV 并画图 |
| 子 Agent 协作 | 把子任务委托给专门 Agent | 主 Agent 规划,研究 Agent 搜索,编程 Agent 写代码 |
工具设计的三个原则:
- 单一职责:每个工具做一件事,做好一件事。
search_and_summarize不如拆成search和summarize - 描述清晰:工具名称、参数说明、返回格式要写得让模型容易理解
- 失败可恢复:失败时返回结构化错误信息,让 Agent 有机会调整策略重试
3.2 LLM:Agent 的决策引擎
LLM 的能力来自两个阶段:
- 预训练(Pre-training):在海量文本上学习语言规律和世界知识——像读了万卷书
- 后训练(Post-training):通过监督微调(SFT)和强化学习(RL)学会特定决策策略——像参加了职业培训
对 Agent 来说,后训练尤为关键。只预训练的模型,你问它「帮我订张机票」,它可能会写一篇关于订机票的散文;而经过 Agent 后训练的模型,会真正去调用 search_flights 工具。
「模型即 Agent」的范式转变:以 Kimi K3 为代表,新一代模型将工具调用的决策策略内化为原生能力——何时调用工具、调用哪个、传什么参数,都由模型自主决定,无需外部框架编写编排逻辑。这就像从「被指挥的实习生」变成了「成熟的经理」——你给他目标,他自己决定怎么拆解。
3.3 上下文:Agent 的信息视野
上下文不是「输入文本」,而是「信息架构」。
一个典型的 Agent 上下文包含以下层次:
| 层次 | 内容 | 作用 |
|---|---|---|
| 系统提示词 | 角色定义、行为准则、输出格式 | 定义 Agent「人格」和边界 |
| 工具定义 | 可用工具的名称、参数、描述 | 告诉 Agent「你能做什么」 |
| 用户记忆 | 偏好、历史交互、个人信息 | 让 Agent「认识你」 |
| 领域知识 | 检索到的文档、数据库内容 | 提供「专业知识」 |
| 任务轨迹 | 之前的思考、行动、观察 | 维持「任务记忆」 |
| 当前输入 | 用户这一轮的提问 | 触发新一轮决策 |
案例分析——Claude Code 的三组件协同:
| 组件 | Claude Code 中的体现 |
|---|---|
| 决策引擎 | 基于 Claude Sonnet/Opus,经过专门后训练强化代码决策策略 |
| 信息视野 | 代码库内容、Issue 描述、测试输出、终端日志 |
| 执行通道 | Shell(执行命令)、Editor(编辑文件)、Browser(查看文档) |
Claude Code 的成功,不在于用了最强的模型,而在于三个组件的协同设计——决策引擎知道何时该用哪个工具,信息视野能精准提供所需代码,执行通道的输出能被决策引擎正确理解。
四、接口视角:观察空间与动作空间
从「模型与世界的接口」来看 Agent,会发现一个更深层的认识:
- 观察空间(Observation Space):Agent 能感知到的所有信息。同样是「帮我分析这家公司」,一个只能访问公开网页的 Agent,和一个能访问付费数据库、行业报告、内部 CRM 的 Agent,做出的分析深度天差地别
- 动作空间(Action Space):Agent 能执行的所有动作。一个只能调用搜索工具的 Agent,和一个能调用搜索、代码执行、浏览器操作、文件系统访问的 Agent,能完成的任务复杂度完全不同
Agent 工程的核心,就是不断扩展模型与世界的接口边界。
模型本身的能力提升是缓慢的(需要重新训练),但接口边界的扩展是快速的(只需加一个工具或一个数据源)。所以,短期内提升 Agent 能力的最有效方式,不是换更强的模型,而是扩展它的接口边界。
这就是为什么同样的底层模型(比如同一个 GPT-4),Cursor 写代码好用,Deep Research 调研深入——差别不在模型,而在接口设计。
五、Harness 工程:模型之外的真正竞争力
什么是 Harness
Harness 这个词的本义是「马具」——套在马身上、让人能驾驭马的一套装备。在 Agent 工程中,Harness 指的是围绕 LLM 构建的工程层:上下文管理、工具调度、错误恢复、安全约束、监控日志等。
LLM 就像一匹烈马——力量强大,但难以驾驭。Harness 就是那套马具——缰绳、马鞍、马镫——让你能安全地、可控地、高效地使用这股力量。
Harness 的四大职责
| 职责 | 说明 | 类比 |
|---|---|---|
| 上下文管理 | 截断历史、检索知识、压缩冗余、维护记忆 | 给老板准备简报 |
| 工具调度 | 注册、发现、调用、并行、重试 | 调度中心 |
| 约束与验证 | 输入过滤、权限校验、输出审查、风险评级 | 合规部门 |
| 可观测性 | 轨迹日志、成本统计、失败归因、行为监控 | 飞机黑匣子 |
模型决定上限,Harness 决定下限。 一个配了顶级模型但 Harness 粗糙的 Agent,实际表现往往不如一个用中等模型但 Harness 精细的 Agent。
范式演进:从提示工程到 Graph 工程
| 阶段 | 范式 | 核心瓶颈 | 工程重点 |
|---|---|---|---|
| 1 | 提示工程 | 模型能力弱 | 怎么问才能答好 |
| 2 | 上下文工程 | 模型变强但上下文有限 | 怎么把相关信息塞进上下文 |
| 3 | Harness 工程 | 模型自主性增强需约束 | 怎么围绕模型构建可靠工程层 |
| 4 | 循环工程 | 单轮不够需多步推理 | 怎么设计 ReAct 循环持续改进 |
| 5 | Graph 工程 | 任务复杂需多 Agent 协作 | 怎么用图结构编排多 Agent |
五个阶段不是替代关系,而是叠加关系。 今天一个成熟的 Agent 系统,往往同时用到这五种工程。当你面对一个 Agent 任务时,先判断瓶颈在哪一层,再选择对应的工程范式——复杂度要匹配瓶颈,不要无脑堆砌。
六、构建有效 Agent 的核心原则
原则一:先简单后复杂
面对一个 Agent 任务,永远从最简单的方案开始:
- 先优化提示词:很多时候精心设计的提示词就能解决 80% 的问题
- 再考虑工作流:用确定性的工作流把任务拆成几步
- 最后才引入自主 Agent:只有工作流也无法覆盖时才让 Agent 自主决策
复杂度是有成本的。自主 Agent 比工作流更难调试、更不可控、更贵更慢。复杂度应该是被证明必要后才引入,而不是默认选项。
原则二:上下文为王
同样的模型、同样的工具,上下文设计得好和差,效果天差地别:
- 相关性优先:宁可少给,不要多给。无关信息会稀释模型的注意力
- 结构化呈现:用表格、列表、键值对,而不是大段自然语言
- 动态更新:状态信息要实时刷新,不能用过期数据
- 分层管理:长期不变(系统提示词)、中期稳定(用户偏好)、短期变化(任务轨迹)分层管理
原则三:可观测性优先
Agent 系统的调试难度远超传统软件——因为它的行为是模型生成的,不是确定性的代码逻辑:
- 轨迹日志:记录每一步的思考、行动、观察,支持回放
- 成本统计:每次调用的 token 数、费用、延迟
- 失败归因:能定位是哪一步、哪个工具、哪条推理出了错
- 行为监控:统计工具调用频率、循环次数分布、失败率
原则四:安全是架构问题
安全不是上线前打的补丁,而是从第一行代码就要考虑的架构问题。Agent 的安全风险贯穿五个层面:
- 模型层:有害内容、数据泄露、对抗样本
- 上下文层:提示注入——攻击者通过外部数据间接操纵模型
- 工具层:权限失控——调用了不该调用的工具
- 协作层:多 Agent 协作时的责任扩散
- 社会层:自动化滥用、信息污染、就业冲击
七、模型选型与编排模式
模型选型:没有银弹
选型时需要平衡四个维度:能力(推理、编码、多语言)、延迟(实时 vs 离线)、成本(高频 vs 低频)、生态(工具调用、JSON 模式)。
实践建议:不要一开始就锁定一个模型。 设计 Agent 时把模型当作可替换的组件,通过抽象层隔离模型差异。简单任务用小模型省成本,复杂任务用大模型保效果。
编排模式:工作流 vs 自主 Agent
| 模式 | 工作流(Workflow) | 自主 Agent |
|---|---|---|
| 特点 | 预定义执行路径,稳定可控 | 模型自主决定下一步 |
| 类比 | 流水线——每道工序事先设计好 | 项目经理——给他目标自己决策 |
| 适合 | 流程明确、合规要求高的任务 | 开放式探索、需要灵活决策 |
| 例子 | 订单处理、报销审批、数据 ETL | 深度研究、复杂编码、创意写作 |
实践中两种模式常混合使用:关键流程用工作流确保可靠性,灵活决策切换到自主模式。
八、护栏:让 Agent 可靠地做事
护栏(Guardrails)是保障 Agent 行为安全可控的分层防线:
- 输入侧:相关性分类器、安全分类器(检测越狱和提示注入)、内容审核、规则过滤
- 执行侧:工具风险评级——高风险操作(删除数据、发送批量邮件)需额外审查或人工确认
- 输出侧:PII 过滤(个人身份信息脱敏)、输出验证(与品牌价值一致)、事实核查(防止幻觉)
单一护栏几乎一定会被绕过,只有多层防御才能形成真正的韧性。
人工干预(Human-in-the-Loop)是最后一道防线,适用于高风险操作、低置信度决策、合规要求、边界情况。好的 Agent 应该像一个靠谱的下属——遇到拿不准的事,主动请示并给出建议,而不是把难题原样甩回给老板。
结语:站在 Agent 时代的起点
如果用几句话浓缩全文:
- Agent 的本质是接口:Agent = 决策引擎 + 信息视野 + 执行通道——三个组件构成模型与世界的完整接口。与其等待更强的模型,不如设计更好的接口
- 循环是 Agent 的灵魂:ReAct 循环让模型从「单次回答」进化为「多步推理 + 自主行动」。轨迹是 Agent 工程中最有价值的资产
- Harness 决定下限:模型决定上限,Harness 决定下限。随着模型越来越自主,Harness 的重要性不降反升
- 范式要匹配瓶颈:五个范式对应五个不同的瓶颈。先识别瓶颈,再选择范式
- 安全是架构问题:安全问题从第一行代码就要考虑,贯穿模型、上下文、工具、协作和社会五个层面
我们正站在 Agent 时代的起点。模型在快速进化,框架在激烈竞争,应用在爆发式涌现。在这个充满不确定性的时代,理解本质比掌握工具更重要——工具会变,但本质不变。
本文核心观点来自掘金文章《走进 AI Agent》,经整理、扩展并补充案例后发布。