ai-agent-book README

The project's README from github.com/bojieli/ai-agent-book. As one markdown file: README.md.

深入理解 AI Agent:设计原理与工程实践

PDF 在线阅读 Stars License Languages Trending GitHub Project of the Day

中文 ← 当前 · English · Español · Bahasa Indonesia · العربية · 繁體中文(台灣) · Русский · Tiếng Việt · தமிழ் · 日本語 · Türkçe · 한국어 · Magyar · עברית · Português (Brasil)

📥 下载 PDF / EPUB(推荐)— 推荐使用 PDF / EPUB 离线阅读,排版最佳;也可在线阅读(支持多语言切换、章节折叠、全文搜索,每次推送自动更新)。

Agent = LLM + 上下文 + 工具——本书围绕这个核心公式,用 10 章把 AI Agent 从原理讲到工程实战。全书正文、配图、109 个配套实验全部开源,欢迎亲手把实验跑一遍。

📢 2.0 版变更(相较 1.4 版):本仓库书稿版本已由 1.4 升级为 2.0。2.0 版将原第四章中的“异步交互”部分与原第九章中关于“多模态 Agent”的内容合并,重组为新的第六章“交互:观察与动作空间的扩展”。原第六章“Agent 的评估”、第七章“模型后训练”和第八章“Agent 的持续进化”依次后移一章,现分别为第七、八、九章。

如果你看到的是旧版 PDF,建议下载最新版 PDF。新版还包含许多内容修正与调整,请以最新版为准。

📚 10 章 正文,从基础到生产 📂 109 个 配套实验(含本地项目与外部复现轨道) 🌐 15 种 语言:中 / 英 / 西 / 印尼 / 阿 / 繁體中文(台灣) / 俄 / 泰米尔 / 越 / 日 / 土耳其 / 韩 / 匈牙利 / 希伯来 / 葡萄牙语(巴西)

📖 电子书

📥 离线下载(推荐,全书正文,开源免费)。以下链接始终指向 main 分支的最新构建;固定版本见 Releases:

🌐 也可在线阅读 — 支持多语言切换、章节折叠、全文搜索、配套实验直达,每次 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/、book-ptbr/。

🔧 想自行编译 PDF / EPUB?(PDF 需 pandoc / xelatex / ElegantBook)
  • EPUB:使用统一的构建脚本,详情请参阅 EPUB 构建说明

  • 正文源码:book/introduction.md(引言)、book/chapter1.md ~ book/chapter10.md(第一至第十章)、book/afterword.md(后记)

  • 编译:安装 pandoc、xelatex、ElegantBook 文档类与相关字体后,运行

    cd book && bash build_pdf.sh
    

    图表以 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 和机器人操作 读 14
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 即可安装对应章节:

# 推荐:使用提交到仓库的 uv.lock,获得可复现的章节环境
uv sync --locked --extra ch1

# 未安装 uv 时:使用 pip 从 pyproject.toml 重新解析
python -m pip install -e ".[ch1]"

运行会调用模型的实验前,请按该实验 README 配置凭据:支持根目录配置的实验可复制 .env.example 为 .env 并填入至少一个提供商 Key;有些实验要求在自身目录放 .env 或直接导出环境变量。只有在实验 README 或 CLI 明确列出 ollama 时,才可启动本地 Ollama 并添加 --provider ollama。

安装后可从仓库根目录运行实验,例如:

uv run python chapter1/context/main.py
# 使用 pip 安装时也可直接运行:python chapter1/context/main.py

🔑 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 全球 + 中国大陆
Atlas Cloud https://www.atlascloud.ai/ 通过 OpenAI 兼容接口访问多个厂商的模型 全球
Krill AI www.krill-code.com 一站式访问全球及国内主流模型(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;克隆或安装源码不代表实验完成。

📦 附录 · 外部仓库获取

本附录列出第 6、7、8、10 章与实验直接映射的 22 个外部仓库,另含 1 个辅助训练 cookbook;它们不作为本书源码内置依赖(出于体积与版权),需要自行克隆到对应目录。部分训练项目还会按各自 README 拉取模型、数据集和模拟器依赖,不计入这 22 个直接映射。以下版本来自 2026-07-30 工作区 checkout 或同日只读上游审计;固定源码只建立复现起点,不代表训练、硬件、浏览器或多 Agent 实验已经执行。

一键克隆脚本

🔧 展开克隆命令(共 23 个 checkout:22 个实验映射 + 1 个辅助 cookbook)
# 第 6 章 · GUI 与机器人外部复现轨道
git clone https://github.com/anthropics/claude-quickstarts.git chapter6/claude-quickstarts && git -C chapter6/claude-quickstarts checkout --detach 9bcc95e316e5ef6542b4c9d0469f4078829eead5  # 实验 6-8 使用 computer-use-demo/
git clone https://github.com/browser-use/browser-use.git chapter6/browser-use && git -C chapter6/browser-use checkout --detach ec9277c5001f2cb78ee419c927775a3cfc227ff8  # 实验 6-9
git clone https://github.com/Vector-Wangel/XLeRobot.git chapter6/XLeRobot && git -C chapter6/XLeRobot fetch origin 3d14695e40c9c68229c0aacffca6053c75cd3eb6 && git -C chapter6/XLeRobot checkout --detach 3d14695e40c9c68229c0aacffca6053c75cd3eb6 && test "$(git -C chapter6/XLeRobot rev-parse HEAD)" = "3d14695e40c9c68229c0aacffca6053c75cd3eb6"  # 实验 6-10、6-12 共用
git clone https://github.com/Grigorij-Dudnik/RoboCrew.git chapter6/RoboCrew && git -C chapter6/RoboCrew fetch origin c749148f29bd14e61347f9fc3530c343fff0d994 && git -C chapter6/RoboCrew checkout --detach c749148f29bd14e61347f9fc3530c343fff0d994 && test "$(git -C chapter6/RoboCrew rev-parse HEAD)" = "c749148f29bd14e61347f9fc3530c343fff0d994"  # 实验 6-11、6-12;RoboCrew v0.3.1
git clone https://github.com/StoneT2000/lerobot-sim2real.git chapter6/lerobot-sim2real && git -C chapter6/lerobot-sim2real fetch origin 87d6c1d969f6e0ca4dc5697940804e231118a63a && git -C chapter6/lerobot-sim2real checkout --detach 87d6c1d969f6e0ca4dc5697940804e231118a63a && test "$(git -C chapter6/lerobot-sim2real rev-parse HEAD)" = "87d6c1d969f6e0ca4dc5697940804e231118a63a"  # 实验 6-14

# 第 7 章 · 评测基准
git clone https://github.com/google-research/android_world.git chapter7/android_world && git -C chapter7/android_world checkout --detach 0e95d641e244504c22087cc29b013f3b2428a261
git clone https://huggingface.co/datasets/gaia-benchmark/GAIA chapter7/GAIA && git -C chapter7/GAIA checkout --detach 682dd723ee1e1697e00360edccf2366dc8418dd9
git clone https://github.com/xlang-ai/OSWorld.git chapter7/OSWorld && git -C chapter7/OSWorld checkout --detach 8365edc975efd0477a0d62444a5beed562ab5a7b
git clone https://github.com/SWE-bench/SWE-bench.git chapter7/SWE-bench && git -C chapter7/SWE-bench checkout --detach 5cd4be9fb23971679cbbafe5a0ecade27cef99be
git clone https://github.com/sierra-research/tau2-bench.git chapter7/tau2-bench && git -C chapter7/tau2-bench checkout --detach 8d005b0e5b9e4af0bc055886fa7f95fc86d1710e
git clone https://github.com/laude-institute/terminal-bench.git chapter7/terminal-bench && git -C chapter7/terminal-bench checkout --detach 8384a179b1b8688f6ea5233a4d9d51218df1ac96

# 第 8 章 · 训练框架(bojieli/* 为本书适配的分支)
git clone https://github.com/bojieli/minimind.git chapter8/MiniMind-pretrain/minimind && git -C chapter8/MiniMind-pretrain/minimind fetch origin 8bdc5d97d5845a8c1ac2ed56a5b8b4c0d0fb0795 && git -C chapter8/MiniMind-pretrain/minimind checkout --detach 8bdc5d97d5845a8c1ac2ed56a5b8b4c0d0fb0795 && test "$(git -C chapter8/MiniMind-pretrain/minimind rev-parse HEAD)" = "8bdc5d97d5845a8c1ac2ed56a5b8b4c0d0fb0795"  # 实验 8-3
git clone https://github.com/bojieli/minimind-v.git chapter8/MiniMind-pretrain/minimind-v && git -C chapter8/MiniMind-pretrain/minimind-v fetch origin ead791c530fa5f9a3549dbfe9e11ec732d18d2e5 && git -C chapter8/MiniMind-pretrain/minimind-v checkout --detach ead791c530fa5f9a3549dbfe9e11ec732d18d2e5 && test "$(git -C chapter8/MiniMind-pretrain/minimind-v rev-parse HEAD)" = "ead791c530fa5f9a3549dbfe9e11ec732d18d2e5"  # 实验 8-4
git clone https://github.com/bojieli/AdaptThink.git chapter8/AdaptThink-original && git -C chapter8/AdaptThink-original checkout --detach 0033ad172dd53ac64004b763477407014f21b838  # 实验 8-10
git clone https://github.com/bojieli/SFTvsRL.git chapter8/SFTvsRL && git -C chapter8/SFTvsRL checkout --detach fef0a4a3367260a0934be1e40b01e4021698e023  # 实验 8-11、8-12
git clone https://github.com/bojieli/AWorld.git chapter8/AWorld && git -C chapter8/AWorld checkout --detach a52d61d6d483e66b22ef16970eae5bbf4f4ab2ec  # 实验 8-15
git clone https://github.com

ai-agent-book (bojieli/ai-agent-book)

pdf
Searching Database…

What is this?An open-source book by Li Bojie taking AI agents from design principles to engineering practice, built on the formula Agent = LLM + context + tools; text, figures and labs all live in this repo.
Is this a book you just read, or code you run?Both: the book has 10 chapters you can read as markdown on GitHub, as PDF/EPUB downloads, or in a web reader with full-text search, and it ships 109 runnable companion labs.
How do I get the companion labs running?Install uv, then from the repo root run uv sync --locked --extra chN for your chapter (ch1 through ch10); pip install -e '.[chN]' also works but skips the lockfile.
Besides Python, what does running a lab require?A model provider key: copy .env.example to .env at the repo root and fill in at least one provider's key; some labs want it in their own directory or as exported env vars.
Will every experiment run on a plain laptop?Not all of them. The 'all' extra is a CPU-friendly set without the local training stack; some chapter 8 components need Python 3.12+, and heavier runs need CUDA per the lab README.
Does any of this depend on my operating system?Reading is OS-independent. The labs target Python 3.11-3.13 and run on any OS; system extras like browsers, CUDA, FFmpeg, Ollama and Playwright are documented in each lab's README.
What do the ten chapters actually cover?It walks from the core formula through context engineering (KV cache, prompts, skills, compression), user memory and RAG, tools and MCP, coding agents, multimodal interaction, evaluation, post-training (SFT vs RL), continual evolution, and multi-agent collaboration.
Can I read it in English or other languages?Yes — 15 languages in total. English, Spanish, Indonesian, Russian, Japanese, Korean and more are community translations (book-en/ etc.) that may lag behind the Chinese original.
Why does the README pin 22 external repos like SWE-bench and OSWorld?Chapters 6, 7, 8 and 10 map experiments to 22 external repos plus a training cookbook. For size and copyright reasons they are not bundled; a clone script checks out pinned 2026-07-30 commits as reproduction starting points.
How do I know which experiments actually run end to end?docs/EXPERIMENTSTATUS.md tracks each lab's execution status, evidence and unfinished gates — cloning or installing the source does not mean an experiment has been completed.
Creator
bojieli
Size
777.1 MB
Stars
54.7K
Updated
CommitSep 30
Age
1y
Commits · 90 Days