今日开源[第34期] 《深入理解 AI Agent:设计原理与工程实践》
《深入理解 AI Agent:设计原理与工程实践》项目分析报告
分析日期:2026-07-22
一、项目介绍
1.1 项目概述
《深入理解 AI Agent:设计原理与工程实践》是由李博杰(Bojie Li)撰写的开源 AI Agent 专著,全书正文与配套示例代码全部开源,是目前 GitHub 上最系统的中文 AI Agent 开源专著。项目围绕核心公式 Agent = LLM + 上下文 + 工具 展开,提出 Harness 工程理念——"模型之外的一切工程能力,才是真正的竞争力所在"。全书共 10 章,配套 60+ 个可独立运行的实验项目,首日即登顶 GitHub Trending $TRAE_REF。
1.2 项目信息
| 项目 | 详情 |
|---|---|
| 项目名称 | 《深入理解 AI Agent:设计原理与工程实践》 |
| 项目地址 | https://github.com/bojieli/ai-agent-book |
| 项目官网 | 无独立官网,GitHub 仓库为唯一入口 |
| 作者 | 李博杰(Bojie Li),Pine AI 首席科学家 |
| 作者个人网站 | https://01.me/ |
| Stars | 7,200+(截至 2026 年 7 月) |
| Forks | 373 |
| 当前版本 | v1.2(中文 PDF,428 页) |
| 开源协议 | Apache License 2.0 |
| 主要语言 | Python |
| 创建时间 | 2025 年 9 月 9 日 |
| 提交数 | 348 commits |
| 仓库大小 | 约 97MB |
1.3 作者简介
李博杰(Bojie Li),GitHub ID bojieli:
- 1992 年出生,中国科学技术大学(USTC)少年班学院毕业
- 曾任华为首批"天才少年",华为诺亚方舟实验室研究员
- Logenic AI 公司联合创始人
- 现任 Pine AI 首席科学家(Chief Scientist @ Pine AI)
- GitHub 670 followers,X(Twitter):
@bojie_li
1.4 多语言版本
| 语言 | 格式 | 状态 | 译者 |
|---|---|---|---|
| 中文(原版) | PDF + Markdown 源码 | v1.2 | 李博杰 |
| 英文 | v1.2 | @nsdevaraj | |
| 泰米尔语 | v1.2 | @nsdevaraj | |
| 越南语 | v1.2(428 页) | @toanalien |
1.5 项目示意图
项目 README 中提供了以下可视化资源:
- 核心公式图:Agent = LLM + 上下文 + 工具 的可视化展示
- Harness 工程理念图:展示模型之外的系统工程能力层级
- Rich 终端运行截图:第 1 章寻宝游戏实验的终端输出效果
- 章节思维导图:各章内容结构概览
- 多语言 README:仓库 README 支持中文、英文、越南语、泰米尔语四种语言
二、项目亮点
2.1 核心公式与 Harness 工程理念
全书围绕一个核心公式展开,并提出独创的 Harness 工程概念:
Agent = LLM + 上下文 + 工具
Harness 工程:强调"模型之外的一切工程能力,才是真正的竞争力所在"。这一理念贯穿全书,主张不依赖模型升级,而是通过系统设计(上下文管理、工具设计、记忆系统、评估体系)提升 Agent 能力。这对生产环境部署有直接指导意义 $TRAE_REF。
2.2 十章全景覆盖 Agent 全栈
| 章节 | 主题 | 核心内容 |
|---|---|---|
| 第 1 章 | Agent 基础知识 | 模型即 Agent 范式、核心公式、Harness 工程、RL vs LLM 对比(250-400 倍样本效率差距) |
| 第 2 章 | 上下文工程 | 上下文结构、KV Cache 优化、提示工程消融、Agent Skills 渐进式披露、提示注入攻防、上下文压缩 |
| 第 3 章 | 用户记忆和知识库 | 长期记忆系统、RAG 管道、稠密/稀疏嵌入、混合检索、GraphRAG/RAPTOR、Agentic RAG、Contextual Retrieval |
| 第 4 章 | 工具 | 感知/执行/协作三类工具、MCP 协议、事件驱动 Agent、异步 Agent(Flux 框架)、主动工具选择 |
| 第 5 章 | Coding Agent 与代码生成 | 生产级 Coding Agent(17 个纯 Python 工具)、代码辅助数学/逻辑推理、小模型代码化规则 |
| 第 6 章 | Agent 评估 | 评估环境、数据集设计、指标体系、统计显著性、可观测性、仿真环境 |
| 第 7 章 | 模型后训练 | 预训练/SFT/RL 三阶段、RLHF、算法比较、工具调用训练、样本效率 |
| 第 8 章 | Agent 自我进化 | 三种学习范式:经验学习、主动工具发现、从工具使用者到工具创造者 |
| 第 9 章 | 多模态与实时交互 | 语音三范式(级联/端到端/全双工)、Computer Use、GUI 操作、机器人操作 |
| 第 10 章 | 多 Agent 协作 | 多 Agent 分类框架、协作模式、失败模式、Agent 社会 |
2.3 60+ 可运行实验项目
按章节统计约 60+ 个配套实验项目,每个实验独立目录、独立依赖、可独立运行:
| 章节 | 实验数 | 代表项目 |
|---|---|---|
| 第 1 章 | 4 个 | learning-from-experience, web-search-agent, search-codegen, context |
| 第 2 章 | 9 个 | local_llm_serving, attention_visualization, kv-cache, context-compression, prompt-engineering, prompt-injection, agent-skills-ppt |
| 第 3 章 | 13 个 | user-memory, mem0, dense-embedding, sparse-embedding, retrieval-pipeline, agentic-rag, contextual-retrieval, structured-knowledge-extraction |
| 第 4 章 | 6 个 | perception-tools, execution-tools, collaboration-tools, agent-with-event-trigger, active-tool-selection, async-agent |
| 第 5 章 | 4 个 | coding-agent, code-for-math, code-for-logic, small-model-codified-rules |
| 第 6-10 章 | 多个 | 评估环境、训练复现、多模态交互、多 Agent 协作等 |
2.4 创新点
- "模型即 Agent"范式:将 Agent 视为 LLM 能力的直接延伸,而非外挂系统,简化了概念模型
- 消融研究驱动:大量实验采用消融研究(Ablation Study)方法,量化各组件对最终性能的贡献,数据支撑充分
- 纯 Python 实现工具链:第 5 章 Coding Agent 完全用纯 Python 实现 17 个工具,无需任何命令行依赖(如纯 Python 版 Grep 兼容 ripgrep)
- 渐进式披露设计:Agent Skills 的"薄目录 → 按需加载"模式,减少上下文占用
- 异步 Flux 框架:支持事件队列、打断机制、并行工具取消
- 不依赖 Agent 框架:所有代码直接调用 openai/anthropic SDK,不依赖 LangChain、CrewAI 等第三方框架,学习者能理解底层原理
2.5 与同类学习资源对比
| 资源 | 类型 | 优势 | 不足 |
|---|---|---|---|
| 《深入理解 AI Agent》 | 开源书籍+代码 | 系统性最强、60+ 实验、中文友好、全开源 | 中文为主、部分实验需外部依赖 |
| LangChain 官方文档 | 框架文档 | 框架生态完善、社区活跃 | 框架绑定、概念层偏重 |
| Anthropic Agent 文档 | 官方指南 | 第一手资料、权威性高 | 仅限 Claude 生态 |
| Lilian Weng 博客 | 技术博客 | 深度好文、前沿探索 | 非系统化、无配套代码 |
| DeepLearning.AI 课程 | 视频课程 | 结构化学习、名师讲解 | 更新慢、深度有限 |
| HuggingFace Agent 课程 | 在线课程 | 社区活跃、免费 | 偏向 HF 生态 |
核心差异:本项目是目前唯一将"完整书籍 + 60+ 可运行实验 + 全开源"三者结合的中文 AI Agent 学习资源。
三、项目运行环境
3.1 基础环境
| 依赖 | 版本/说明 |
|---|---|
| Python | >= 3.10 |
| 包管理器 | pip |
| 依赖管理 | 各章节项目独立管理,有独立的 requirements.txt 或 pyproject.toml |
3.2 LLM API 要求
配套实验对接到真实 LLM API,支持的提供商包括:
| 提供商 | 用途 |
|---|---|
| Anthropic (Claude) | 第 5 章 Coding Agent 主要使用 |
| OpenAI (GPT-5) | 第 1 章 search-codegen 实验 |
| SiliconFlow (Qwen) | 第 1 章 context 消融实验 |
| 字节 Doubao | 第 1 章 context 消融实验 |
| 月之暗面 Kimi (K2) | 第 1 章 web-search-agent |
| OpenRouter | 第 5 章 Coding Agent 多提供商支持 |
| 本地模型 | 第 2 章支持 vLLM、Ollama 本地部署 |
3.3 关键依赖库
| 依赖 | 用途 |
|---|---|
| openai / anthropic | LLM SDK 直接调用(不依赖 LangChain) |
| numpy / scipy | 数学计算与向量操作 |
| annoy / hnswlib | 向量检索 |
| sentence-transformers | 嵌入模型 |
| FastAPI | 第 4 章事件驱动 Agent 的 Web 服务 |
| mcp | 第 4 章 MCP 协议实现 |
| browser-use | 第 4 章浏览器自动化 |
| sympy | 第 5 章符号数学计算 |
| python-constraint | 第 5 章约束求解 |
| python-pptx | 第 2 章 Agent Skills PPT 生成 |
| vLLM / Ollama | 第 2 章本地 LLM 部署 |
3.4 安装与运行步骤
# 1. 克隆仓库
git clone https://github.com/bojieli/ai-agent-book.git
cd ai-agent-book
# 2. 进入具体实验目录
cd chapter1/learning-from-experience
# 3. 安装依赖(各项目独立管理)
pip install -r requirements.txt
# 4. 配置 API Key(按需设置)
export ANTHROPIC_API_KEY="your-key"
export OPENAI_API_KEY="your-key"
# 5. 运行实验
python main.py
3.5 实验项目类型
| 类型 | 说明 | 占比 |
|---|---|---|
| ✅ 可独立运行 | 第 1-5 章大部分项目,配置 API Key 即可运行 | 约 70% |
| 📖 复现指南 | 第 6-10 章部分项目,需自行 clone 外部仓库(训练框架、评测基准) | 约 20% |
| 🚧 设计文档 | 少量项目仅提供架构设计文档 | 约 10% |
四、项目代码介绍
4.1 代码架构图
ai-agent-book/
├── book/ # 中文原版 PDF + Markdown 源码
│ ├── chapter1.md ~ chapter10.md # 10 章正文 Markdown
│ ├── introduction.md # 引言
│ ├── afterword.md # 后记
│ ├── images/ # 配图资源
│ ├── gen_*_figs.py # 图表生成脚本
│ ├── preamble.tex # LaTeX 排版配置
│ └── build_pdf.sh # PDF 编译脚本
│
├── book-en/ # 英文翻译
├── book-ta/ # 泰米尔语翻译
├── book-vi/ # 越南语翻译
│
├── chapter1/ # 第 1 章:Agent 基础知识
│ ├── learning-from-experience/ # 经验学习实验(寻宝游戏)
│ │ ├── main.py # 主入口
│ │ ├── requirements.txt # 独立依赖
│ │ └── README.md # 实验说明
│ ├── web-search-agent/ # 网页搜索 Agent
│ ├── search-codegen/ # 搜索与代码生成
│ └── context/ # 上下文消融实验
│
├── chapter2/ # 第 2 章:上下文工程
│ ├── local_llm_serving/ # 本地 LLM 部署
│ ├── attention_visualization/ # 注意力可视化
│ ├── kv-cache/ # KV Cache 优化
│ ├── context-compression/ # 上下文压缩
│ ├── prompt-engineering/ # 提示工程消融
│ ├── system-hint/ # 系统提示技术
│ ├── log-sanitization/ # 日志脱敏
│ ├── prompt-injection/ # 提示注入攻防
│ └── agent-skills-ppt/ # Agent Skills 渐进式披露
│
├── chapter3/ # 第 3 章:用户记忆和知识库
│ ├── user-memory/ # 长期记忆系统
│ ├── mem0/ # Mem0 记忆框架
│ ├── dense-embedding/ # 稠密嵌入
│ ├── sparse-embedding/ # 稀疏嵌入
│ ├── retrieval-pipeline/ # 混合检索管道
│ ├── multimodal-agent/ # 多模态 Agent
│ ├── structured-index/ # 结构化索引
│ ├── agentic-rag/ # Agentic RAG
│ ├── contextual-retrieval/ # 上下文检索
│ └── structured-knowledge-extraction/ # 结构化知识提取
│
├── chapter4/ # 第 4 章:工具
│ ├── perception-tools/ # 感知类工具
│ ├── execution-tools/ # 执行类工具
│ ├── collaboration-tools/ # 协作类工具
│ ├── agent-with-event-trigger/ # 事件驱动 Agent
│ ├── active-tool-selection/ # 主动工具选择
│ └── async-agent/ # 异步 Agent(Flux 框架)
│
├── chapter5/ # 第 5 章:Coding Agent
│ ├── coding-agent/ # 生产级 Coding Agent(17 个纯 Python 工具)
│ ├── code-for-math/ # 代码辅助数学推理
│ ├── code-for-logic/ # 代码辅助逻辑推理
│ └── small-model-codified-rules/ # 小模型代码化规则
│
├── chapter6/ ~ chapter10/ # 第 6-10 章:评估/训练/进化/多模态/多Agent
│ └── ... # 多数为复现指南类项目
│
├── assets/ # 仓库图片资源
├── scripts/ # 工具脚本
├── .github/workflows/ # CI/CD
├── EXPERIMENT_TRIAGE.md # 实验分类指南
├── LICENSE # Apache 2.0
└── README.md # 多语言项目说明
4.2 代码组织方式
| 设计原则 | 说明 |
|---|---|
| 按章节隔离 | 每个章节独立目录,互不依赖,可独立学习 |
| 项目自包含 | 每个实验项目有独立的 main.py、requirements.txt、README.md |
| 不依赖 Agent 框架 | 代码直接调用 LLM SDK(openai/anthropic),不依赖 LangChain、CrewAI 等 |
| 纯 Python 实现 | 第 5 章 Coding Agent 所有工具纯 Python 实现,无命令行依赖 |
| 多 LLM 支持 | 不绑定单一 LLM 提供商,支持 Anthropic、OpenAI、Kimi、Doubao、Qwen 等 |
4.3 核心模块介绍
| 模块 | 路径 | 功能 |
|---|---|---|
| 书籍正文 | book/ |
10 章 Markdown 源码,可编译为 PDF |
| 经验学习 | chapter1/learning-from-experience/ |
通过寻宝游戏对比 Q-learning 与 LLM 上下文学习,展示 250-400 倍样本效率差距 |
| 上下文工程 | chapter2/ |
9 个实验覆盖 KV Cache、提示工程、上下文压缩、提示注入攻防 |
| 记忆系统 | chapter3/ |
13 个实验覆盖 RAG 全栈:嵌入、检索、GraphRAG、Agentic RAG、Contextual Retrieval |
| 工具系统 | chapter4/ |
6 个实验覆盖 MCP 协议、事件驱动、异步 Agent、Flux 框架 |
| Coding Agent | chapter5/coding-agent/ |
17 个纯 Python 工具的生产级 Coding Agent |
| 评估体系 | chapter6/ |
评估环境、数据集设计、指标体系、可观测性 |
| 模型后训练 | chapter7/ |
预训练/SFT/RL 三阶段、RLHF、工具调用训练 |
| Agent 自我进化 | chapter8/ |
经验学习、主动工具发现、工具创造 |
| 多模态交互 | chapter9/ |
语音三范式、Computer Use、GUI/机器人操作 |
| 多 Agent 协作 | chapter10/ |
多 Agent 分类框架、协作模式、失败模式 |
4.4 核心代码解析
4.4.1 第 1 章:经验学习实验(learning-from-experience)
该项目复现了 Shunyu Yao "The Second Half" 论文的核心洞察,通过寻宝游戏对比 Q-learning 与 LLM 上下文学习:
# 核心逻辑:LLM Agent 通过上下文学习(few-shot)解决寻宝问题
# 游戏规则:Agent 在网格中寻找宝藏,每次移动获得反馈
# Q-learning 需要数千次试错才能收敛
# LLM 仅需少量样本(few-shot)即可达到同等效果
# 展示了 250-400 倍的样本效率差距
# 运行效果(Rich 终端输出):
# 🧠 LLM Agent 第 3 次尝试即找到宝藏
# 📊 Q-learning Agent 需要 800+ 次训练
# 📈 样本效率提升:约 300 倍
关键洞察:LLM 的先验知识(对空间、方向、寻路策略的理解)使其在少量样本下即可表现出色,而传统 RL 需要从零开始探索。
4.4.2 第 2 章:上下文消融实验(context)
# 消融研究:量化不同上下文组件对 Agent 性能的贡献
# 实验设计:逐步移除系统提示、历史对话、工具描述等
# 对比多个 LLM 提供商(SiliconFlow/Qwen、字节/Doubao、Anthropic/Claude)
# 消融维度:
# - 无系统提示 (No System Prompt)
# - 无工具描述 (No Tool Description)
# - 无历史对话 (No Conversation History)
# - 仅最后一次回复 (Last Response Only)
# 完整上下文 (Full Context) 作为 baseline
# 结果输出:各组件对任务完成率的贡献百分比
4.4.3 第 3 章:Agentic RAG 实现
# 与传统 RAG 不同,Agentic RAG 让 Agent 自主决策检索策略
# 核心流程:
# 1. Agent 分析用户查询,判断是否需要检索
# 2. 生成检索查询(可能多个子查询)
# 3. 执行检索(稠密+稀疏混合)
# 4. 评估检索结果相关性
# 5. 决定是否需要重新检索或优化查询
# 6. 将检索结果融入上下文生成回答
# 与传统 RAG 的对比:
# 传统 RAG:查询 → 检索 → 生成(固定管道)
# Agentic RAG:查询 → Agent 决策 → 检索 → 评估 → 重试/优化 → 生成
4.4.4 第 4 章:异步 Agent Flux 框架
# 基于 asyncio 的事件驱动异步 Agent 框架
# 核心特性:
# - inbox 事件队列:按紧急度分派(打断 > 立即 > 排队)
# - 异步工具并行执行:多个工具同时运行
# - 运行中打断:新事件可中断当前任务
# - 决策由 LLM function calling 完成
# 事件类型:
# INTERRUPT — 打断当前任务,立即处理
# IMMEDIATE — 当前任务完成后立即处理
# QUEUED — 加入队列等待处理
4.4.5 第 5 章:生产级 Coding Agent
# 17 个纯 Python 实现的工具,无需命令行依赖
# 工具列表:
# - 文件读写:read_file, write_file, replace_in_file
# - 正则搜索:Grep(纯 Python 实现,兼容 ripgrep)
# - Shell 会话:create_shell, shell_exec, shell_kill
# - 目录操作:list_directory, get_file_info
# - 代码编辑:apply_patch, create_diff
# - 项目管理:create_todo, update_todo, get_todo
# 系统提示技术:
# - 时间戳注入:每次工具调用前注入当前时间
# - 工具调用计数:防止无限循环
# - TODO 列表管理:强制 Agent 规划步骤
# 多提供商支持:
# - Anthropic Claude(主要)
# - OpenAI GPT-5
# - OpenRouter(多模型路由)
五、项目应用与评价
5.1 应用场景
| 场景 | 说明 |
|---|---|
| AI Agent 系统学习 | 从基础概念到高级主题,10 章覆盖 Agent 全栈知识体系,适合系统学习 |
| 动手实践 | 60+ 个可运行实验,从寻宝游戏到生产级 Coding Agent,边学边练 |
| 企业 Agent 开发参考 | Harness 工程理念、评估体系、上下文工程直接指导生产级 Agent 系统设计 |
| RAG 系统深入理解 | 第 3 章 13 个实验覆盖 RAG 全栈,从基础嵌入到 Agentic RAG |
| MCP 协议学习 | 第 4 章对 MCP 协议有完整的实现和讲解 |
| Coding Agent 开发 | 第 5 章提供 17 个纯 Python 工具的生产级 Coding Agent 参考实现 |
| 高校教学 | 系统性强、实验丰富,适合作为 AI Agent 课程教材 |
| 技术选型决策 | 消融研究数据支撑,帮助技术决策者量化评估不同方案 |
5.2 项目优点
- 系统性强:从基础概念到高级主题,10 章覆盖 Agent 全栈知识体系,逻辑清晰,层层递进。
- 实战导向:60+ 个可运行实验,不只是"讲概念",而是"跑代码",学习效果远超纯理论书籍。
- 消融研究驱动:大量实验通过消融研究量化各因素贡献,数据支撑充分,结论可信度高。
- 不依赖框架:代码直接调用 LLM API,学习者能理解底层原理,不被框架黑盒所困。
- Harness 工程理念:强调模型之外的工程能力,对生产环境 Agent 系统设计有直接指导意义。
- 完全开源:正文 Markdown 源码 + 编译 PDF + 配图 + 代码全部开源,Apache 2.0 协议可商用。
- 多语言社区:社区贡献了英文、泰米尔语、越南语翻译,覆盖更广泛的读者群体。
- 作者背景强大:前华为天才少年、现 Pine AI 首席科学家,内容质量有保障。
- 快速迭代:348 commits,维护活跃,持续更新。
5.3 项目不足
- 中文为主:原版为中文,英文等翻译由社区贡献,可能滞后于中文原版更新。
- 部分实验需外部依赖:第 6-10 章部分实验依赖外部仓库(训练框架、评测基准),不能直接运行。
- 无独立官网:依赖 GitHub README 作为入口,无独立文档站点,导航和搜索体验有限。
- API 费用门槛:大量实验需要真实 LLM API Key(Anthropic、OpenAI 等),初学者可能面临费用问题。
- 无视频教程:纯文本 + 代码,缺乏视频讲解,对视觉型学习者不够友好。
- 偏向技术实现:对 Agent 伦理、安全、合规、商业落地等非技术话题涉及较少。
- Python 为主:所有代码示例均为 Python,对其他语言生态的开发者不够友好。
- 书籍编译复杂:自行编译 PDF 需要 pandoc、xelatex、ElegantBook 等工具链,配置较繁琐。

浙公网安备 33010602011771号