读书之《深入理解AI Agent:设计原理与工程实践》

引言

  • 全书结构
  • 如何阅读本书
  • 前置知识
  • 致谢

第 1 章 AI Agent 入门

1.1 现代 Agent = LLM + 上下文 + 工具

1.1.1 观察空间与动作空间:模型与世界的接口

在底层模型固定时,提升 Agent 任务表现最主要的系统工程手段,往往就是重新定义或扩展观察空间与动作空间。用本书的术语说,就是扩展上下文和工具。许多看似需要“更聪明模型”的问题,其实只是接口问题:把任务所需的数据纳入上下文,或把完成任务所需的操作封装成工具,原本不可解的任务就可能变得可解,而不必重新训练模型。

1.1.2 工具:Agent 的手脚

1.1.3 LLM:Agent 的大脑

LLM 之所以能够进行有效的内部推演,得益于预训练Pre-training,即在海量互联网文本上进行初始训练,让模型学会语言规律和世界知识)阶段习得的能力——模型在推演时所遵循的是人类知识中已经沉淀下来的逻辑规则`,包括数学定律、因果关系、问题分解策略等。因此 Agent 的推演不是盲目的随机探索,而是在结构化的知识体系上展开。

1.1.4 上下文:Agent 的眼睛

  • 实验 1‑1 ★★:上下文的关键作用

    1.1.5 ReAct 循环

轨迹(trajectory)

Agent 的上下文 = 静态前缀 + 轨迹

系统提示词 + 工具定义静态前缀用户消息 + 模型回复 + 工具执行结果轨迹,随交互不断增长的动态消息历史。

用方程展开生产形态下的完整组成:

Agent = LLM + [上下文 + 工具 + 约束 + 验证 + 纠正] = Model + Harness

Harness 的核心就是原公式中的“上下文 + 工具”,再加上三层保障机制:约束(限定 Agent 能做什么、不能做什么)、验证(检查 Agent 做得对不对)和纠正(做错了怎么补救)。

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

1.2.1 从提示工程到 Loop 工程:工程范式的演进

1.2.2 Harness 五个功能的核心原则

1.2.3 构建有效 Agent 的核心原则

1.2.4 如何选择模型

1.2.5 编排模式:工作流与自主

1.2.6 护栏与安全性

1.2.7 本书作为 Harness 工程的实践指南

1.3 本章小结

  • 思考题

第 2 章 上下文工程

2.1 上下文:决定 Agent 能力上限的关键

2.2 Agent 如何调用大模型:理解 API 的上下文结构

2.2.1 消息的四种角色

2.2.2 单轮对话:最简单的 API 调用

2.2.3 带工具调用的多轮交互:Agent 的核心循环

2.2.4 用代码实现 Agent 的核心循环

Agent 框架的核心工作就是管理这个 messages 列表

2.2.5 从 API 视角看上下文的构成

2.3 KV Cache 友好的上下文设计

2.3.1 从 API 消息到模型 Token:Chat Template

2.3.2 KV Cache 的原理与约束

2.3.3 KV Cache 与 Prompt Cache:两个层级的缓存

2.3.4 缓存作为架构约束

2.3.5 KV Cache 未必是一次性的:可编辑、可组合的“笔记”

2.4 提示工程:优化系统提示词

2.4.1 语气与风格:系统提示词的“人格”

2.4.2 结构化提示:系统提示词的“格式”

2.4.3 流程驱动 vs 规则堆砌:系统提示词的“组织方式”

2.4.4 业务规则细化:系统提示词的“内容”

2.4.5 Few‑shot 示例:何时给模型看例子

2.4.6 工具定义的设计

2.4.7 提示注入:上下文安全的核心威胁

2.5 动态提示词与 Agent Skills

2.5.1 Skills:领域能力的可组合单元

2.5.2 Skills 的实现方式与权衡

2.5.3 Skills 与工具的关系

2.6 Agent 状态栏:通过元信息增强 Agent 轨迹管理

2.6.1 Agent 状态栏的理论基础

2.6.2 Agent 状态栏的构成

2.6.3 Agent 状态栏在上下文中的具体位置

2.6.4 状态更新的两种实现与缓存代价

2.6.5 从读数到策略:Agent 的物理时间感知

2.6.6 设计哲学

2.7 上下文压缩策略

2.7.1 为什么需要压缩:不只是长度问题

2.7.2 上下文学习的内部机制:检索而非推理

2.7.3 压缩与 KV Cache:看似矛盾,实则互补

2.7.4 生产级的分层压缩机制

2.7.5 压缩策略的设计原则

2.7.6 对 Agent 架构设计的启示

2.7.7 隔离优于压缩:子 Agent 上下文隔离

2.8 本章小结

  • 思考题

第 3 章 用户记忆和知识库

3.1 用户记忆系统

3.1.1 记忆能力的评估:三层次框架

3.1.2 记忆的层次结构

3.1.3 用户记忆的四种存储格式

3.1.4 进阶表示:从可执行代码到参数化记忆

3.1.5 用户记忆的认知科学基础

3.1.6 记忆框架案例

3.1.7 记忆压缩与整理机制

3.1.8 隐私保护:日志脱敏

3.2 RAG 基础:构建 Agent 的知识获取管道

3.2.1 文档分块(Chunking)

3.2.2 稠密嵌入:从词汇关联到语义理解

3.2.3 稀疏嵌入:精确匹配的关键词检索

3.2.4 混合检索:两全其美的艺术

3.2.5 多模态信息提取:超越文本的界限

3.3 超越扁平文本:知识的组织与检索

3.3.1 结构化索引:从信息检索到知识建模

3.3.2 文件系统范式:用目录结构组织知识

3.3.3 知识库的时效与治理

3.3.4 智能体化 RAG:将知识检索工具化的范式转变

3.3.5 RAG 技巧:上下文感知检索

3.3.6 从数据集中提取深度知识:从信息检索到知识发现

3.4 本章小结

  • 思考题

第 4 章 工具

4.1 工具的分类

4.2 工具设计的通用原则

4.2.1 能力表达形式的选择:专用工具还是 Skill + 通用执行器

4.2.2 工具粒度的权衡:整合与分离

4.2.3 工具的通用性设计

4.2.4 工具描述的艺术

4.2.5 参数传递的保真性

4.2.6 工具设计的演进

4.3 工具生态:MCP 与工具选择的挑战

4.4 感知工具

4.5 执行工具

4.6 协作工具

4.7 事件驱动的异步 Agent

4.7.1 为什么需要异步

4.7.2 从 OpenClaw 看事件驱动的现实需求

4.7.3 事件触发工具

4.7.4 用户沟通工具

4.7.5 虚拟身份与隔离执行环境

4.7.6 事件处理机制

4.7.7 工程实现:如何让同步模型支持异步打断

4.7.8 深层矛盾与未来方向

4.8 主动工具发现

4.8.1 现有工具发现方法

4.8.2 Skills:把工具发现变成“按需查阅”

4.9 本章小结

  • 思考题

第 5 章 Coding Agent 与代码生成

5.1 Coding Agent

5.1.1 Coding 是 Agent 的基础能力

5.1.2 案例:从 Manus 到 OpenClaw——通用 Agent 的 Coding 内核

5.1.3 Sessionless 设计

5.1.4 Coding Agent 的安全

5.1.5 Coding Agent 的整体流程

5.1.6 Harness 工程在 Coding Agent 中的实践

5.1.7 故障与错误恢复

5.1.8 Coding Agent 的实现技巧

5.1.9 Coding Agent 中的搜索工具

5.1.10 Coding Agent 中的文件编辑工具

5.2 代码:通用 Agent 的元能力

5.2.1 代码作为思考工具

5.2.2 代码作为业务规则的约束

5.2.3 代码驱动的多媒体生成

5.2.4 代码作为系统适配器

5.2.5 代码作为生成式 UI

5.2.6 代码创造代码:Agent 自举

5.3 本章小结

  • 思考题

第 6 章 Agent 的评估

6.1 一个具体的评估示例

6.2 自动评估环境

6.2.1 评估环境的基本组成

6.2.2 工具调用型评估环境

6.2.3 人机交互型评估环境

6.3 评估任务数据集的设计

6.3.1 任务数据集设计的核心挑战

6.3.2 任务描述的精确性设计

6.3.3 任务复杂度的层次化设计

6.3.4 可验证性与客观性保障

6.3.5 任务分布的系统性设计

6.3.6 数据质量控制与迭代改进

6.4 评估指标体系

6.5 自动化评估方法

6.5.1 LLM‑as‑a‑Judge:自动化评估的核心

6.5.2 配对比较与模型排名

6.6 评估驱动的模型选型

6.6.1 选型的关键维度

6.6.2 Agent 系统的成本分析

6.6.3 评估驱动的持续迭代

6.7 评估结果的统计显著性

6.8 Agent 的可观测性

6.9 从 Benchmark 报告到系统改进

6.9.1 读懂 Benchmark 报告:发现问题的艺术

6.9.2 从数据到假设:构建改进路线图

6.9.3 从结果到决策:数据驱动的权衡

6.9.4 持续迭代:从第一次改进到系统演化

6.10 从外部评估到内部评估:生产级 Agent 的评估基础设施

6.10.1 消融基础设施:理解每个特性的真实贡献

6.10.2 AB 测试方法论:区分机制与目标

6.10.3 双层特性开关系统

6.10.4 提示词敏感性评估

6.10.5 隐私感知的分析作为评估基础

6.10.6 从外部到内部:评估思维的转变

6.11 仿真环境:从评估到后训练的桥梁

6.11.1 保真度权衡与领域随机化

6.12 本章小结

  • 思考题

第 7 章 模型后训练

7.1 预训练、SFT、RL:三阶段全景

7.1.1 预训练在做什么:预测下一个词

7.1.2 SFT 的本质:换了数据的“预测下一个词”

7.1.3 为什么必须先 SFT 后 RL,而不是反过来

7.1.4 SFT 与 RL 的本质区别(本章最重要的一张表)

7.2 从经典 RL Agent 到现代 Agent [可选阅读]

7.2.1 Agent 与环境的交互

7.2.2 两种 Agent 范式:从 MDP 到 LLM+RL

7.3 模型预训练基础 [可选阅读]

7.4 SFT(监督微调)

7.5 何时选择 SFT,何时选择 RL

7.6 单轮强化学习:记忆与泛化的对照

7.7 RLHF:从人类偏好到奖励模型

7.8 强化学习算法比较

7.9 数据与环境:比算法更重要的事

7.9.1 环境:模型练习的场地

7.9.2 造不出环境怎么办:让模型扮演环境

7.9.3 数据:最关键的一环,且质量胜过一切

7.9.4 那什么时候才轮到算法?

7.10 从单轮到多轮:信用分配与奖励设计

7.10.1 多轮任务的核心挑战

7.10.2 奖励信号的密度与范式

7.10.3 过程奖励 vs 结果奖励:多轮任务的关键选择

7.10.4 奖励结果,约束过程:验证路径惩罚(RLVP)与部分奖励

7.11 RL 学习工具调用

7.12 提升样本效率的前沿探索

7.12.1 On‑Policy Distillation:兼得 SFT 与 RL 之长

7.12.2 没有更强的教师怎么办:On‑Policy 自蒸馏

7.13 后训练完整图景与实践要点

7.14 本章小结

  • 思考题

第 8 章 Agent 的持续进化

8.1 从运行轨迹中获得学习信号

8.2 Agent 持续进化的四种方法

8.2.1 将经验沉淀为知识

8.2.2 将经验写成指令

8.2.3 将经验写成程序

8.2.4 将经验写入参数

8.2.5 从更新产物到更新“更新方法”

8.3 构建可长期运行的持续进化闭环

8.3.1 从问题定位到经验沉淀

8.3.2 验证、发布与回滚

8.3.3 可验证闭环的边界:当“完成”不等于“进步”

8.3.4 持续进化的安全边界

8.3.5 睡眠学习:整合、遗忘与能力保鲜

8.4 本章小结

  • 思考题

第 9 章 多模态与实时交互

9.1 语音:最自然的人机接口

9.2 语音架构的三种范式

9.3 范式一·级联流水线(Cascading)

9.3.1 级联流水线的全链路流式化

9.3.2 流式语音感知:替代 VAD + ASR

9.4 范式二·端到端全模态模型(Omni)

9.5 范式三·全双工交互模型(Full‑Duplex / Interactive)

9.6 思考架构的取舍:从分离到统一

9.6.1 方案一:快思考应付,慢思考回答

9.6.2 方案二:快思考交互,慢思考提醒

9.6.3 方案三:端到端思考与表达统一(以 Step‑Audio R1 为例)

9.6.4 快慢之间的接口:文本之外还能传什么

9.7 更像人的语音合成

9.8 Computer Use:GUI 自动化 Agent

9.8.1 动作空间设计

9.8.2 视觉定位(Grounding)

9.8.3 能看动画、能听声音的 Computer Use Agent

9.8.4 移动端:生态壁垒比技术更难

9.8.5 实时性:尚未解决的核心挑战

9.9 机器人操作:从实时控制到训练与泛化

9.9.1 硬件不是瓶颈,算法才是

9.9.2 双层架构:规划与控制的分离

9.9.3 长程规划:从 VLM 到专用具身思考模型

9.9.4 VLA 控制:从演示数据到跨具身泛化

9.9.5 Sim2Real Transfer:从仿真到现实的鸿沟

9.10 本章小结

  • 思考题

第 10 章 多 Agent 协作

10.1 多 Agent 协作的分类框架

10.1.1 维度一:上下文是否共享

10.1.2 维度二:协作拓扑

10.2 多 Agent 何时真正优于单 Agent

10.3 共享上下文的多 Agent 协作

10.3.1 多阶段角色转换

10.3.2 跨领域角色转换

10.4 不共享上下文的多 Agent 协作

10.4.1 Agent 眼中的文件系统

10.4.2 Agent 间的通信与控制

10.4.3 对等协作模式:相互制衡与迭代改进

10.4.4 管理者模式:中心化协调

10.4.5 去中心化模式:对等移交

10.4.6 跨组织协作:A2A 协议

10.5 多 Agent 协作的失败模式

10.5.1 失败模式一:共享文件系统的并发冲突

10.5.2 失败模式二:错误的级联放大

10.6 Agent 社会

10.6.1 斯坦福 AI 小镇:生成式 Agent 的社会模拟

10.6.2 Agentopia:十年尺度的长期生活模拟

10.6.3 Moltbook:当 Agent 拥有自己的社交网络

10.6.4 从虚拟社会到经济竞争:Vending‑Bench Arena

10.6.5 Agent 经济:Pinchwork 与 RentAHuman

10.6.6 信息不对称下的策略博弈:狼人杀

10.7 本章小结

  • 思考题

后记:回到 Agent = LLM + 上下文 + 工具

  • 两朵乌云
  • 模型与 Agent 的共同演进