深入理解 AI Agent:设计原理与工程实践
Agent = LLM + 上下文 + 工具——本书围绕这个核心公式,用 10 章把 AI Agent 从原理讲到工程实战。全书正文、配图、108 个配套实验全部开源,欢迎亲手把实验跑一遍。
📢 2.0 版变更(相较 1.4 版):本仓库书稿版本已由 1.4 升级为 2.0。2.0 版将原第四章中的“异步交互”部分与原第九章中关于“多模态 Agent”的内容合并,重组为新的第六章“交互:观察与动作空间的扩展”。原第六章“Agent 的评估”、第七章“模型后训练”和第八章“Agent 的持续进化”依次后移一章,现分别为第七、八、九章。
如果你看到的是旧版 PDF,建议下载最新版 PDF。新版还包含许多内容修正与调整,请以最新版为准。
| 📚 10 章 正文,从基础到生产 | 📂 103 个 配套实验(含本地项目与外部复现轨道) | 🌐 14 种 语言:中 英 西 印尼 阿 繁體中文(台灣) 俄 泰米尔 越 日 土耳其 韩 匈牙利 / 希伯来 |
|---|
📖 电子书
📥 离线下载(推荐,全书正文,开源免费)。以下链接始终指向 main 分支的最新构建;固定版本见 Releases:
英文(社区翻译,by @nsdevaraj、@whanyu1212):PDF · EPUB
西班牙语(社区翻译,by @santhreal):PDF · EPUB
印度尼西亚语(社区翻译,by @jojixyz666):PDF · EPUB
繁體中文(台灣)(社区翻译,by @tigercosmos):PDF · EPUB
泰米尔语(社区翻译,by @nsdevaraj):PDF · EPUB
越南语(社区翻译,by @toanalien):PDF · EPUB
日语(社区翻译,by @eltociear):PDF · EPUB
阿拉伯语(社区翻译,by @TheSyBuilder):PDF · EPUB
土耳其语(社区翻译,by @memisemre):PDF · EPUB
韩语(社区翻译,by @JeongJaeSoon):PDF · EPUB
匈牙利语(Magyar)(社区翻译,by @barmivalami0-ux):PDF · EPUB
希伯来语(עברית)(社区翻译,by @itzikwo):PDF · EPUB
🌐 也可在线阅读 — 支持多语言切换、章节折叠、全文搜索、配套实验直达,每次 main 分支推送后自动重新构建。
中文正文源码位于 book/;英文/西班牙语/印度尼西亚语/阿拉伯语/繁體中文(台灣)/俄语/泰米尔/越南语/日语/土耳其语/韩语/匈牙利语/希伯来语版本为社区贡献(可能滞后于中文原版),分别位于 book-en/、book-es/、book-id/、book-ar/、book-zhtw/、book-ru/、book-ta/、book-vi/、book-ja/、book-tr/、book-ko/、book-hu/、book-he/。
🔧 想自行编译 PDF EPUB?(PDF 需 pandoc xelatex / ElegantBook)
EPUB:使用统一的构建脚本,详情请参阅 EPUB 构建说明
正文源码:
book/introduction.md(引言)、book/chapter1.md~book/chapter10.md(第一至第十章)、book/afterword.md(后记)编译:安装 pandoc、xelatex、ElegantBook 文档类与相关字体后,运行
图表以 SVG 文件存于 book/images/,编译时直接使用;排版细节见 book/preamble.tex 与 book/*.lua。
📑 内容速览(第 1–10 章)
全书围绕核心公式 Agent = LLM + 上下文 + 工具 展开,十章层层递进:
| 章 | 主题 | 一句话核心 | 正文 | 实验 |
|---|---|---|---|---|
| 1 | 🚀 AI Agent 入门 | Agent = LLM + 上下文 + 工具;Harness 工程才是竞争力 | 读 | 4 |
| 2 | 🎯 上下文工程 | 上下文决定能力上限:KV Cache、提示工程、Agent Skills、上下文压缩 | 读 | 10 |
| 3 | 📚 用户记忆和知识库 | 跨会话记住用户、接入外部知识:用户记忆、RAG、结构化索引、知识图谱 | 读 | 12 |
| 4 | 🛠️ 工具 | 工具是 Agent 的双手:MCP 协议、感知/执行/协作三类工具与主动工具发现 | 读 | 5 |
| 5 | 💻 Coding Agent 与通用 Agent | 代码是「能创造新工具的工具」,生产级 Coding Agent 全景 | 读 | 16 |
| 6 | 🎙️ 交互:观察与动作空间的扩展 | 从模态与时序两个维度扩展 Agent 的观察与动作空间:异步与事件驱动、语音交互、Computer Use 和机器人操作 | 读 | 13 |
| 7 | 🎯 Agent 的评估 | 把表现变成可比较信号:评估环境、指标、统计显著性、评估驱动选型 | 读 | 14 |
| 8 | 🧠 模型后训练 | 预训练/SFT/RL 三阶段:何时选 SFT、何时选 RL,工具调用内化、样本效率 | 读 | 19 |
| 9 | 🔄 Agent 的持续进化 | 从运行轨迹获得学习信号,更新知识、指令、程序与参数 | 读 | 9 |
| 10 | 🤝 多 Agent 协作 | 群体智能高于个体:协作框架、上下文共享/隔离、涌现的「Agent 社会」 | 读 | 6 |
💡 读 = 在 GitHub 网页直接读章节正文(markdown);N = 该章正文实验数,点击查看实现与复现说明。项目类型说明(✅ 可运行 📖 复现 🚧 设计)见各章 README。
📚 如何高效阅读本书?详见 学习建议(核心理念、学习路径、难度分级、实践建议)。
💻 运行配套实验
项目统一支持 Python 3.11–3.13。请在仓库根目录按章节安装依赖;将 ch1 替换为 ch2 ~ ch10 即可安装对应章节:
运行会调用模型的实验前,请按该实验 README 配置凭据:支持根目录配置的实验可复制 .env.example 为 .env 并填入至少一个提供商 Key;有些实验要求在自身目录放 .env 或直接导出环境变量。只有在实验 README 或 CLI 明确列出 ollama 时,才可启动本地 Ollama 并添加 --provider ollama。
安装后可从仓库根目录运行实验,例如:
uv安装方法见 官方文档;pip仍受支持,但不会使用锁文件。各实验现有的
requirements.txt在迁移期间继续有效,适合只运行单个项目或需要特殊版本约束的情况。all是不含本地训练栈的 CPU 友好组合,并不代表每个实验;uv sync每次都会精确同步当前选择,使用特殊 extra 时请合并到同一条命令,例如uv sync --locked --extra ch2 --extra vllm或uv sync --locked --extra ch7 --extra unsloth;pip 对应为python -m pip install -e ".[ch2,vllm]"。浏览器、CUDA、FFmpeg、Ollama、Playwright 浏览器及外部仓库等系统依赖,请继续参考各实验 README。第 8 章部分内置第三方组件需要 Python 3.12+。
🔑 API 密钥
建议申请下面几个平台的 API Key 方便学习。模型选型可参考 这篇指南。
| 平台 | 链接 | 特色 | 访问节点 |
|---|---|---|---|
| Kimi(月之暗面) | https://platform.moonshot.cn/ | Kimi 系列,Coding、Agent 能力强 | 中国大陆 |
| 智谱 GLM | https://open.bigmodel.cn/ | GLM-5.2 等,Coding、Agent 能力强 | 中国大陆 |
| Siliconflow | https://siliconflow.cn/ | 各种开源模型(DeepSeek、Qwen 等),中国大陆访问速度快 | 中国大陆 |
| DeepSeek | https://platform.deepseek.com/ | DeepSeek 官方 API | 全球 + 中国大陆 |
| Krill AI | www.krill-ai.net | 一站式访问全球及国内主流模型(OpenAI、Claude、Gemini、Grok、Kimi、GLM、DeepSeek、Qwen、Minimax) | 全球 + 中国大陆 |
| OpenRouter | https://openrouter.ai/ | 一站式访问全球及国内主流模型(GPT、Claude、Gemini、Kimi、GLM、DeepSeek、Qwen 等) | 全球 |
💎 赞助商
感谢 Krill AI 赞助本项目!Krill 提供 GPT Claude Gemini / 多款国产模型的官方稳定极速 API 中转服务,支持企业级定制、报销开票、7×16h 专属技术支持,更有独家适配的 WebSocket 连接方式,畅享极速首字速度。
Krill 为本书读者提供特别优惠:使用此链接注册并在充值时填写优惠码「ai-agent-book」,首次购买 Codex 套餐可享 77 折优惠!
🧪 配套实验的执行状态、证据与未完成门禁单独记录在
docs/EXPERIMENT_STATUS.md;克隆或安装源码不代表实验完成。
🤝 贡献
本书与配套代码全部开源,非常欢迎社区通过 Pull Request 参与共建:
| 类型 | 说明 |
|---|---|
| 📝 书籍内容改进 | 勘误、补充、更清晰的表述,或新增前沿进展(正文见 book/chapter*.md) |
| 🐛 代码改进与 Bug 修复 | 让配套项目更健壮、更易用、更贴近生产实践 |
| 🧪 新的实践项目 | 为某个实验补充/替换更好的实现,或贡献全新的示例项目 |
| 🎨 配图设计改进 | 直接改进 book/images/ 中已签入的 SVG 图表,让它们更清晰美观 |
| 🌐 新语言翻译 | 欢迎翻译成更多语言,可参考英文(book-en/)、阿拉伯语(book-ar/)、繁體中文(台灣)版(book-zhtw/)、俄语(book-ru/)、泰米尔语(book-ta/)、越南语(book-vi/)、日语(book-ja/)、土耳其语(book-tr/)、韩语(book-ko/)、匈牙利语(book-hu/)、希伯来语(book-he/)的组织方式 |
提交前建议先把相关实验亲手跑一遍、确认可复现;也欢迎先提 issue 讨论想法。
📄 许可证
本项目采用 Apache License 2.0 开源许可证,详见 LICENSE 文件。部分子项目可能包含各自的许可证信息,请以子项目中的说明为准。