Skip to content
清晨的一缕阳光
返回

AI Agent 深度解析:从核心公式到工程实践

AI Agent 深度解析:从核心公式到工程实践

本文核心思想源自《AI Agents 深入浅出》(AI-Agents-in-Depth)一书,结合工程实践进行系统梳理。

一、Agent 的核心公式

1.1 Agent = LLM + 上下文 + 工具

这是贯穿全书的最核心公式。一个最小可工作的 Agent 只需要三样东西:

这三者缺一不可。没有工具,Agent 只能”纸上谈兵”;没有上下文,Agent 如同盲人摸象;没有 LLM,Agent 就失去了智能的核心。

Agent 产品的三个维度展开:

Agent 产品眼睛(感知)手脚(行动)策略
Coding Agent代码库、终端环境文件读写、命令执行理解需求 → 搜索代码 → 编辑 → 测试
搜索 Agent网络资源、数据库搜索查询、摘要生成迭代深化,逐步综合报告
电脑操控 Agent屏幕画面点击、输入、滚动视觉感知 → 操作 → 验证
个人办事 Agent账户信息、账单打电话、发邮件、填表单收集信息 → 协商策略 → 执行

1.2 三层理解

公式可以从三个层次来理解:

实现层: 从 API 角度看,Agent 就是在一个循环中调用 LLM,每次调用时传入上下文,LLM 返回文本或工具调用请求,执行工具后将结果追加到上下文,继续下一轮。

直觉层: Agent = 大脑(LLM)+ 眼睛(上下文)+ 手脚(工具)。大脑负责思考,眼睛负责感知,手脚负责行动。

学术层: 借鉴计算机体系结构中的”指令集架构”概念,LLM 是 Agent 的”大脑”(计算核心),上下文是”观察空间”(Agent 能看到什么),工具是”动作空间”(Agent 能做什么)。许多看似需要”更聪明模型”的问题,其实只是接口问题——把任务所需的数据纳入上下文,或把完成任务所需的操作封装成工具。

1.3 从工作流到自主 Agent 的编排光谱

Agent 系统的编排方式是一个连续谱,一端是确定性的工作流,另一端是完全自主的 Agent:

实践中两者并非非此即彼,很多系统会混合使用:关键流程用工作流确保可靠性,灵活决策部分切换到自主模式。

二、Harness 工程:模型之外的竞争力

2.1 什么是 Harness

Harness 原指马具,是套在马身上的缰绳与挽具。在 Agent 语境中,模型是那匹强大但不可预测的马,Harness 则是把它的能力引导成可靠任务执行的工程外壳。

核心观点: 模型之外的全部基础设施都属于 Harness。当各家模型的能力越来越接近时,竞争优势就转移到了模型之外的工程实践。

2.2 Harness 的五功能模型

功能一句话职责核心原则
上下文(Context)为模型提供感知信息信息充分性:每个决策点都基于足够信息判断
工具(Tools)为模型提供行动手段接口清晰:命名直观、参数有例子、边界有说明
约束(Constrain)设定行为边界默认安全:所有能力默认关闭,必须显式开放
验证(Verify)自动判断操作结果的对错输入隔离:安全检查只看结构化数据,而非模型自由生成的文本
纠正(Correct)发现问题时自动修正或回退不暴露中间态:失败时先静默重试,不将半成品展示给用户

五个功能构成一个闭环:上下文与工具支撑决策,约束预防错误,验证发现偏差,纠正闭合循环。缺少任何一个环节,系统都会出现可靠性缺口。

2.3 工程范式的演进

AI 应用工程的发展经历了清晰的演进弧线:

  1. 软件工程 — 基础:传统的系统设计、架构、测试和部署
  2. 提示工程(Prompt Engineering) — 第一波:优化输入给模型的自然语言指令
  3. 上下文工程(Context Engineering) — 第二波:系统性地管理模型能看到的所有信息
  4. Harness 工程 — 第三波:从”模型能看到什么”扩展到”模型在什么样的系统中运行”
  5. Loop 工程 — 第四波:从单次运行扩展到跨轮次的持续自主运转
  6. Graph 工程 — 第五波:把 Agent 循环、确定性程序和人工审批组织成显式的执行图

这五个阶段不是替代关系,而是层层包含的。每一层都在前一层的基础上扩展了工程师的关注范围和影响力。

2.4 构建有效 Agent 的核心原则

根据 Anthropic 与数十个团队合作的经验,成功的 Agent 系统遵循三个核心原则:

保持简单: 从最简单的方案开始,只在确实必要时才增加复杂度。直接的 API 调用优于复杂的框架,清晰的代码优于聪明的抽象。

保持透明: 明确显示 Agent 的规划步骤、执行日志和决策轨迹——这不只是为了调试方便,也是让用户建立信任的前提。

设计好工具接口(ACI): ACI 强调的是从 Agent 视角设计接口,让 Agent 容易理解和使用。工具的命名和参数要直观,容易误用的地方要从设计上让错误无法发生——就像 SIM 卡的缺角让卡片只能从一个方向插入。

2.5 模型选型策略

模型是 Agent 的智能基座,选对模型往往比优化提示词更有效:

三、上下文工程

3.1 上下文的五个组成部分

每次调用 LLM 时的上下文由以下部分构成:

  1. 系统提示词(System Prompt) — Agent 的”岗位说明书”,定义身份、权限和行为准则
  2. 工具定义(Tool Definitions) — 声明 Agent 可用工具的名称、功能描述和参数格式
  3. 对话历史 — 当前会话中之前的问答记录
  4. 检索结果 — 从外部知识库中检索到的相关信息
  5. Agent 状态 — 当前执行进度、中间结果等运行时状态

3.2 上下文管理的关键挑战

3.3 记忆与知识库

Agent 的记忆可以分为三个层次:

四、工具设计

4.1 工具的五分类

根据 Agent 与外界互动的方向,工具可以分为五类:

类型作用示例
感知工具让 Agent 能访问信息搜索引擎、文件系统、API、数据库
执行工具让 Agent 改变世界代码执行、文件操作、系统命令
协作工具让 Agent 与其他 Agent 分工合作委托子 Agent、请求人类确认
事件触发工具外部输入驱动 Agent 开始执行收到邮件、定时触发、Webhook
用户沟通工具Agent 主动与用户传递信息文字消息、语音通话、邮件

4.2 工具设计原则

4.3 MCP 协议

MCP(Model Context Protocol)标准的推广,正在让工具接入变得更像安装插件。它提供了标准化的工具定义和调用协议,使 Agent 可以动态发现和使用各种外部工具。

五、Agent 的评估

5.1 评估的核心挑战

Agent 评估比传统软件测试更复杂,因为:

5.2 评估体系

5.3 从评估到持续改进

评估不是终点,而是持续改进的起点。评估结果应该反馈到 Harness 的优化中,形成”评估 → 发现问题 → 改进 Harness → 重新评估”的闭环。

六、代码生成:Agent 的元能力

6.1 代码作为 Agent 的元能力

代码生成是 Agent 最独特的能力之一——它让 Agent 能够创造新工具、修改自身行为,甚至改进自己。

代码在 Agent 中的五种角色:

  1. 思考工具 — 通过编写代码来辅助推理和计算
  2. 业务规则约束 — 将不确定的 LLM 输出转化为确定性的代码执行
  3. 多媒体生成 — 通过代码生成图表、文档、报告等
  4. 系统适配器 — 通过代码连接不同的系统和 API
  5. 生成式 UI — 通过代码动态生成用户界面

6.2 Coding Agent 的实现技巧

成功的 Coding Agent 需要:

七、多 Agent 协作

7.1 两个核心设计维度

多 Agent 系统有两个正交的核心设计维度:

维度一:上下文是否共享

维度二:协作拓扑

7.2 多 Agent 何时优于单 Agent

核心准则:协作过程是否引入了生成时不存在的新信息。

如果多个 Agent 只是重新审视同一段文本(如辩论模式),在等量计算资源下单 Agent 同样有效。但如果 Reviewer 能获得外部反馈——代码执行结果、视觉渲染截图、工具验证输出——多 Agent 的优势就是实质性的。

7.3 基础设施:与操作系统类比

多 Agent 系统的基础设施设计蓝本来自操作系统:

操作系统概念Agent 世界对应
进程Agent 运行时实例
程序静态前缀(系统提示词 + 工具定义)
内存轨迹(Trajectory)
CPU 分时复用LLM 调用调度
文件系统共享工作区(虚拟目录树)
进程间通信Agent 间消息传递
死锁检测级联终止机制

7.4 Agent 社会

当 Agent 数量足够多时,会产生无法预先设计的集体行为:

八、持续进化

8.1 从经验到更新的四种路径

Agent 如何从运行经验中学习并改进自己:

  1. 将经验沉淀为知识 — 写入知识文档,供后续检索
  2. 将经验写成指令 — 更新 Prompt 或 Skill,引导模型行为
  3. 将经验写成程序 — 更新 Harness 或工具,将经验固化到代码中
  4. 将经验写入参数 — 通过后训练更新模型权重

8.2 持续进化闭环

真正的持续进化需要构建完整的闭环:

  1. 问题定位 — 通过评估和监控发现 Agent 的不足
  2. 经验沉淀 — 将问题原因和解决方案整理成可复用的形式
  3. 验证发布 — 在安全环境中验证更新效果
  4. 回滚机制 — 在更新失败时快速回滚到稳定状态

九、模型与 Agent 的共同演进

9.1 两朵乌云

当前 Agent 领域面临两大核心挑战:

第一朵乌云:实时交互。 今天绝大多数 Agent 仍是按轮次的”请求-应答”模式,但真实世界不会停下来等它想完。走向实时性有两条路:一是架构上做快慢分离(前台快模型维持对话节奏,后台慢模型负责深度思考),二是把推理本身做快。

第二朵乌云:持续学习。 今天的模型更像一个记性极好、却学不会新东西的天才。训练时把人类知识背得滚瓜烂熟,上岗后却几乎不再成长。模型最强的能力,终将不是记住,而是学习与适应。

9.2 模型与 Harness 的共同演进

回头看那些 Harness 里层层叠叠的兜底逻辑——每一段看似”丑陋”的代码,记录的都是模型此刻还做不稳的地方。当下一代模型把这些约束内化,对应的代码就可以删掉。

这是一条自我强化的飞轮:

用户提出真实的难题 → 应用层用 Harness 把模型暂时做不好的事补上 → 这些补救再反过来变成模型下一次迭代的训练信号

模型每稳定内化一种能力,对应的 Harness 层就可以删掉。但这个”吃”永远不会完结:一是训练以月计,模型等得起,业务等不起;二是模型无法内化真实业务中所有的约束与偏好;三是每一代模型都会打开新的能力前沿,而前沿处恰恰是模型最做不稳的地方。

这意味着: 如果你在造模型,护城河就是把这条飞轮转起来——让真实场景的反馈尽快回流到训练里。如果你在模型之上造应用,Harness 是你短期最锋利的技术杠杆,但要清醒:模型每内化一层约束,就会顺手抹平一批只靠 Harness 建立的优势。应用层真正长久的护城河,往往在技术之外——独占的数据、稳固的渠道、用户的信任、网络效应。

十、总结

10.1 不会过时的三个问题

模型每几个月迭代一次,具体的 API、产品和榜单都会翻篇,但以下三个问题不会过时:

  1. Agent 能看到什么? — 上下文的设计与管理
  2. Agent 能做什么? — 工具的定义与调度
  3. 如何验证 Agent 做得对不对? — 评估与纠正机制

这三个问题描述的不是某个模型的用法,而是一个智能系统与世界交互的基本方式。

10.2 核心 takeaways


分享这篇文章到:

上一篇文章
具身智能发展路线深度复盘:实用主义 vs 终局思维
下一篇文章
物联网平台架构设计文档