基于李博杰《深入理解 AI Agent:设计原理与工程实践》第1章学习笔记。
什么是 AI Agent?
在深入讨论之前,我们需要先回答一个根本问题:什么是 AI Agent?
本书给出了一个简洁而深刻的核心公式:
1
现代 Agent = LLM + 上下文 + 工具
这三个组件分别对应 Agent 的大脑、眼睛和手脚:
- LLM(大脑):负责推理、规划和决策
- 上下文(眼睛):决定了 Agent 能看到什么信息
- 工具(手脚):让 Agent 能够与外部世界交互
理解这三者的作用及其相互关系,是构建有效 Agent 系统的基础。
观察空间与动作空间
Agent 的设计本质上是在定义两个关键接口:
- 观察空间(Observation Space):Agent 能感知到什么信息
- 动作空间(Action Space):Agent 能执行什么操作
现代 Agent 的一个关键特征是开放式动作空间——不是从有限的几个按钮中选择,而是能生成任意自然语言和代码。这使得 Agent 的能力边界大大扩展。
不同类型的 Agent 在这两个维度上展现出不同的特点:
| Agent 类型 | 眼睛(感知) | 手脚(行动) | 策略 |
|---|---|---|---|
| Coding Agent(Cursor 等) | 需求文档、代码库、终端环境 | 代码搜索、文件读写、命令执行 | 增量开发循环 |
| Deep Research | 网络资源、学术数据库 | 搜索查询、网页阅读、摘要生成 | 迭代深化搜索 |
| Computer Use Agent | 电脑屏幕、浏览器页面 | 点击、输入、截图、执行代码 | 视觉感知+操作 |
| 手机助手 Agent | 手机屏幕、已安装 App | 点击、滑动、输入、打开 App | 意图理解+App 操控 |
| 个人办事 Agent(Pine AI 等) | 用户账户信息、历史账单 | 打电话、发邮件、填表单 | 多步骤任务执行 |
三大组件详解
1. 工具:Agent 的手脚
工具是 Agent 与外部世界交互的桥梁。根据 Agent 与外界互动的方向,工具可以分为五类:
- 感知工具:让 Agent 能访问信息——搜索引擎、文件系统、API 和数据库
- 执行工具:让 Agent 改变世界——代码执行、文件操作、系统命令
- 协作工具:让 Agent 与其他 Agent 分工合作——委托子 Agent、请求人类确认
- 事件触发工具:作为外部输入驱动 Agent 执行任务——收邮件、定时触发、Webhook
- 用户沟通工具:Agent 主动与用户建立连接的渠道——消息、语音、邮件
2. LLM:Agent 的大脑
LLM 是 Agent 的核心推理引擎。与传统软件的关键区别在于:
- 非确定性:同样的输入可能产生不同的输出
- 上下文依赖:决策完全基于所见信息
- 推理能力:能够在行动前进行深度思考
3. 上下文:Agent 的眼睛
上下文决定了 Agent”能看到什么”,而 Agent 只能基于它看到的信息做决策。Agent 的上下文由五个部分组成:
- 系统提示词(System Prompt):定义 Agent 的身份和行为规范
- 工具定义(Tool Definitions):描述可用工具及其参数
- 用户消息(User Messages):用户的输入
- 模型回复(Assistant Messages):包含思考过程、文本内容和工具调用
- 工具执行结果(Tool Results):工具执行后的反馈
前两项是静态前缀,后三项是随交互不断增长的动态消息历史。
消融实验:每个组件都不可或缺
通过系统的消融实验(Ablation Study),验证了每个上下文组件的关键作用:
| 实验条件 | 系统指令 | 工具定义 | 思考过程 | 历史记录 | 工具结果 | 结果 |
|---|---|---|---|---|---|---|
| 完整基线 | ✓ | ✓ | ✓ | ✓ | ✓ | ✅ 正常工作 |
| 无工具定义 | ✓ | ✗ | ✓ | ✓ | ✓ | ❌ 无法调用工具 |
| 无思考过程 | ✓ | ✓ | ✗ | ✓ | ✓ | △ 决策不连贯 |
| 无历史记录 | ✓ | ✓ | ✓ | ✗ | ✓ | △ 重复操作 |
| 无工具结果 | ✓ | ✓ | ✓ | ✓ | ✗ | ❌ 盲目循环 |
关键洞察:
- 去掉工具定义 → Agent 完全丧失行动能力
- 缺少工具执行结果 → Agent 看不到反馈,陷入无限循环
- 剥离思考过程 → 前后决策互相矛盾
- 没有历史消息 → Agent 失忆,重复执行已完成的步骤
ReAct 循环:Agent 的工作机制
Agent 执行任务的核心模式叫做 ReAct(Reasoning + Acting),实际包含三个环节:
1
想(Think) → 做(Act) → 看(Observe) → 想 → 做 → 看 → ...
这个循环不断重复直到任务完成。每次调用 LLM 时:
- 输入:静态前缀(系统提示词 + 工具定义)+ 轨迹(用户消息 + 模型回复 + 工具执行结果)
- 输出:思考过程 + 下一步行动(文本回复或工具调用)
- 追加:输出被追加到轨迹,供下一次调用使用
以”计算多币种年度收入”为例:
1
2
3
第1轮:用户提问 → Agent 思考需要汇率转换 → 调用汇率查询工具
第2轮:收到汇率结果 → Agent 计算转换 → 调用计算工具
第3轮:收到计算结果 → Agent 汇总答案 → 返回最终回复
Harness 工程:模型之外的竞争力
当模型能力逐渐趋同时,围绕模型构建的系统工程成为差异化竞争的关键——这就是 Harness 工程。
五个核心功能
- 提示词管理:组织和管理系统提示词、工具定义
- 工具编排:注册、发现和调用工具
- 对话管理:维护对话历史和上下文窗口
- 流程控制:实现 ReAct 循环、错误恢复、超时处理
- 安全护栏:权限控制、输入验证、输出过滤
构建有效 Agent 的核心原则
- 简单优先:能用简单方法解决的,不要引入复杂机制
- 透明可控:让 Agent 的决策过程可见可解释
- 安全第一:权限最小化,操作可回滚
- 迭代改进:从简单场景开始,逐步扩展能力
- 评估驱动:用数据验证改进效果
编排模式
Agent 的编排模式可以分为两大类:
- 工作流模式:预定义的步骤序列,适合流程固定、质量要求高的场景
- 自主模式:Agent 自由决策下一步,适合探索性强、步骤不固定的场景
选择哪种模式取决于任务的确定性和安全要求。
本章小结
- AI Agent 的核心公式:LLM + 上下文 + 工具
- 上下文由五部分组成,每个组件都经过消融实验验证其必要性
- ReAct 循环(想→做→看)是 Agent 工作的核心机制
- Harness 工程是模型之外的核心竞争力
- 简单、透明、安全、迭代、评估驱动是构建有效 Agent 的五项原则
下一篇文章将深入探讨上下文工程——如何设计 Agent 与大模型的 API 交互结构。
本文基于李博杰著《深入理解 AI Agent:设计原理与工程实践》第1章学习整理。系列文章同步发布于 ai-agent-study 仓库。