大模型 活跃维护

ai-agent-book

bojieli/ai-agent-book

《深入理解 AI Agent:设计原理与工程实践》(李博杰 著)开源主仓库:全书正文、编译版 PDF 与按章配套代码

50077
Stars 标星
5612
Forks 分支
186
Watchers 关注
10
Open Issues
Python
主要语言
Apache-2.0
开源协议
785.3 MB
仓库大小
17 小时前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:bojieli/ai-agent-book
git clone https://github.com/bojieli/ai-agent-book.git
git clone git@github.com:bojieli/ai-agent-book.git
README.md main

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。

深入理解 AI Agent:設計原理與工程實踐

📥 下載 PDF / EPUB(推薦)— 推薦使用 PDF / EPUB 離線閱讀,排版最佳;也可線上閱讀(支援多語言切換、章節摺疊、螢光標記與筆記,每次 main 分支推送後自動重新構建)。

Agent = LLM + 上下文 + 工具——本書圍繞這個核心公式,用 10 章把 AI Agent 從原理講到工程實戰。全書正文、配圖、93 個配套實驗全部開源,歡迎親手把實驗跑一遍。

📚 姊妹篇《深入理解 AI Infra:量化分析與系統設計》已開源發布,歡迎閱讀:github.com/bojieli/ai-infra-book

要開發好基於模型的應用,還需要理解這類應用賴以運行的基礎設施。姊妹篇討論的就是支撐模型訓練與推理的 AI Infra:參數和上下文狀態存在哪裡,計算怎樣執行,多個加速器怎樣協作。

📢 2.0 版變更(相較 1.4 版):2.0 版將原第四章中的「非同步互動」部分與原第九章中有關「多模態 Agent」的內容合併,重組為新的第六章「互動:觀察與動作空間的擴展」。原第六章「Agent 的評估」、第七章「模型後訓練」和第八章「Agent 的持續進化」依次後移一章,現分別為第七、八、九章。

如果你看到的是舊版 PDF,建議下載最新版 PDF。新版還包含許多內容修正與調整,請以最新版為準。

📚 10 章 正文,從基礎到生產 📂 93 個 配套專案(70+ 可獨立執行) 🌐 15 種 語言:中 / 英 / 西 / 印尼 / 阿拉伯 / 繁體中文(台灣) / 俄 / 泰米爾 / 越 / 日 / 土耳其 / 韓 / 匈牙利 / 希伯來 / 葡萄牙語(巴西)

📖 電子書

📥 直接下載(推薦,全書正文,開源免費)。以下連結始終指向 main 分支的最新建置;固定版本見 Releases

🌐 也可線上閱讀 — 支援多語言切換、章節摺疊、螢光標記與筆記、配套實驗直達,每次 main 分支推送後自動重新構建。

中文正文原始碼位於 book/;英文/西班牙語/阿拉伯語/繁體中文(台灣)/俄語/泰米爾/越南語/日語/土耳其語/韓語版本為社群貢獻(可能滯後於中文原版),分別位於 book-en/book-es/book-ar/book-zhtw/book-ru/book-ta/book-vi/book-ja/book-tr/book-ko/

🔧 想自行編譯 PDF / EPUB?(PDF 需 pandoc / xelatex / ElegantBook)
  • EPUB:使用統一的建置腳本,詳情請參閱 EPUB 建置說明
  • 正文原始碼book/introduction.md(引言)、book/chapter1.md ~ book/chapter10.md(第一至第十章)、book/afterword.md(後記)
  • 編譯:安裝 pandoc、xelatex、ElegantBook 文件類與相關字型後,執行

    cd 书 & & bash build_pdf.sh

    圖表以 SVG 檔案存於 book/images/,編譯時直接使用;排版細節見 book/preamble.texbook/*.lua

📑 內容速覽(第 1–10 章)

全書圍繞核心公式 Agent = LLM + 上下文 + 工具 展開,十章層層遞進:

主題 一句話核心 正文 程式碼
1 🚀 Agent 基礎知識 Agent = LLM + 上下文 + 工具;Harness 工程才是競爭力 4
2 🎯 上下文工程 上下文決定能力上限:KV Cache、提示工程、Agent Skills、上下文壓縮 9
3 📚 使用者記憶和知識庫 跨會話記住使用者、接入外部知識:使用者記憶、RAG、結構化索引、知識圖譜 12
4 🛠️ 工具 工具是 Agent 的雙手:MCP 協議、感知/執行/協作三類工具、事件驅動非同步 Agent、主動工具發現 8
5 💻 Coding Agent 與程式碼生成 程式碼是「能創造新工具的工具」,生產級 Coding Agent 全景 13
6 🎙️ 互動:觀察與動作空間的擴展 從模態與時序兩個維度擴展 Agent 的觀察與動作空間:非同步與事件驅動、語音互動、Computer Use 和機器人操作 14
7 🎯 Agent 的評估 把表現變成可比較訊號:評估環境、指標、統計顯著性、評估驅動選型 13
8 🧠 模型後訓練 預訓練/SFT/RL 三階段:何時選 SFT、何時選 RL,工具呼叫內化、樣本效率 19
9 🔄 Agent 的持續進化 從執行軌跡獲得學習訊號,更新知識、指令、程式與參數 9
10 🤝 多 Agent 協作 群體智慧高於個體:協作框架、上下文共享/隔離、湧現的「Agent 社會」 7

💡 = 在 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 並填入至少一個 provider key;有些實驗要求在自身目錄放 .env 或直接匯出環境變數。只有在實驗 README 或 CLI 明確列出 ollama 時,才可啟動本機 Ollama 並加入 --provider ollama

安裝後可從倉庫根目錄執行實驗,例如:

uv run python chapter1/context/main.py
# 使用 pip 安裝時也可直接執行:python chapter1/context/main.py
  • uv 安裝方法見官方文件pip 仍受支援,但不會使用鎖定檔。
  • 各實驗現有的 requirements.txt 在遷移期間繼續有效,適合只執行單一專案或需要特殊版本約束的情況。
  • all 是不含本機訓練堆疊的 CPU 友好組合,並不代表每個實驗;uv sync 每次都會精確同步目前選擇,使用特殊 extra 時請合併到同一條指令,例如 uv sync --locked --extra ch2 --extra vllmuv 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-code.com 一站式訪問全球及國內主流模型(OpenAI、Claude、Gemini、Grok、Kimi、GLM、DeepSeek、Qwen、Minimax) 全球 + 中國大陸
OpenRouter https://openrouter.ai/ 一站式訪問全球及國內主流模型(GPT、Claude、Gemini、Kimi、GLM、DeepSeek、Qwen 等) 全球

❓ 常見問題

Q:有 PDF / EPUB 嗎?需要自己編譯嗎? 不需要。電子書一節列出了 15 種語言的 PDF / EPUB 下載連結,始終指向 main 分支的最新建置;也可以線上閱讀。只有想修改書稿並重新排版時,才需要自行編譯。

Q:閱讀本書需要哪些前置知識? 引言的「前置知識」一節有完整說明:能讀懂並修改中等複雜度的 Python 程式碼;用過 ChatGPT、Claude 等 LLM 產品;熟悉至少一款 AI 輔助程式設計工具(Claude Code、Codex、Cursor 等);了解命令列、Git、JSON、REST API 等軟體工程常識。除了第八章的後訓練之外,全書對數學和機器學習的要求很低。

Q:知識點很多,讀完就忘,該怎麼消化? 不要只讀正文。建議的方式是搭配每章實驗親自動手——不是去看配套程式碼,而是讀懂書中的設計原則後,借助 coding agent 從頭實作一遍,觀察輸出、排查不符合預期的地方;每章末尾的思考題也是很好的自我檢測。更有系統的路徑請見學習建議。一位讀者的總結很貼切:先把書讀薄,再把書讀厚,再把書讀薄。

Q:實驗程式碼需要逐行搞懂嗎? 不需要。本書的配套程式碼全部由 coding agent 依據書稿生成,作者也不會逐行閱讀。關鍵是把架構、核心元件和設計原則想清楚,然後讓 AI 去寫程式、跑測試、修 bug,人負責最初的設計和最終的驗收。

Q:思考題有參考答案嗎? 有:book/reference-answers.md線上版)。它們只是參考,不是標準答案,歡迎在 Discussions 裡討論你的不同看法。

Q:讀完之後有什麼可以落地的實作專案? 推薦從頭做一個像 Claude Code、Codex 那樣的 coding agent:第 1–5 章足以做出一個可用的 coding agent;第 7、9 章幫它建立評估集,並從失敗案例中持續改進;第 8 章介入模型本身;第 6、10 章為它加上語音、Computer Use 等互動方式與多 Agent 協作。評測、觀測、可靠性這些工程環節,可以從第 7 章的評估實驗入手:先為自己的 agent 建一個十幾條任務的小型評估集,再圍繞失敗案例做改進。

Q:哪裡提問和討論?

  • 書稿勘誤、實驗 bug、翻譯問題:請開 Issue,並註明章節、小節和原文句子。
  • 閱讀疑問、思考題討論、經驗分享、資料推薦:請使用 GitHub Discussions

Q:發現錯誤想修改,該怎麼做? 歡迎直接提 PR。中文版 book/ 是正本,其餘語言皆由中文同步:修改正文時只需改中文版並在 PR 裡說明,翻譯會在合併後統一同步。詳見貢獻

💎 贊助商

感謝 Krill AI 贊助本專案!Krill 提供 GPT / Claude / Gemini / 多款國產模型的官方穩定極速 API 中轉服務,支援企業級客製、報銷開票、7×16h 專屬技術支援,更有獨家適配的 WebSocket 連線方式,暢享極速首字速度。

Krill 為本書讀者提供特別優惠:使用此連結註冊並在儲值時填寫優惠碼「ai-agent-book」,首次購買 Codex 套餐可享 77 折優惠!

🧪 配套實驗的執行狀態、證據與尚未完成的驗收門檻,另行記錄於 EXPERIMENT_STATUS.md;克隆或安裝原始碼不代表實驗已完成。

📦 附錄 · 外部倉庫獲取

第 6、7、9、10 章的評測基準、訓練框架、機器人平台等 23 個外部倉庫未內建(出於體積與版權),需要自行克隆到對應目錄。

一鍵克隆指令碼

🔧 展開克隆命令(共 23 個外部倉庫)
# 第 6 章 · 評測基準
git clone https://github.com/google-research/android_world.git         chapter6/android_world
git clone https://huggingface.co/datasets/gaia-benchmark/GAIA          chapter6/GAIA
git clone https://github.com/xlang-ai/OSWorld.git                      chapter6/OSWorld
git clone https://github.com/SWE-bench/SWE-bench.git                   chapter6/SWE-bench
git clone https://github.com/sierra-research/tau2-bench.git            chapter6/tau2-bench
git clone https://github.com/laude-institute/terminal-bench.git        chapter6/terminal-bench

# 第 7 章 · 訓練框架(bojieli/* 為本書適配的分支)
git clone https://github.com/bojieli/minimind.git                      chapter7/MiniMind-pretrain/minimind      # 實驗 7-3 從零訓 LLM
git clone https://github.com/bojieli/minimind-v.git                    chapter7/MiniMind-pretrain/minimind-v    # 實驗 7-4 從零訓 VLM(投影層)
git clone https://github.com/bojieli/AdaptThink.git                    chapter7/AdaptThink-original
git clone https://github.com/bojieli/AWorld.git                        chapter7/AWorld
git clone https://github.com/bojieli/SFTvsRL.git                       chapter7/SFTvsRL
git clone https://github.com/bojieli/verl.git                          chapter7/verl
git clone https://github.com/bojieli/SandboxFusion.git chapter7/SandboxFusion && git -C chapter7/SandboxFusion fetch origin 4a0d573ebd64c98234c190a9d1d49e4276199a0c && git -C chapter7/SandboxFusion checkout --detach 4a0d573ebd64c98234c190a9d1d49e4276199a0c && test "$(git -C chapter7/SandboxFusion rev-parse HEAD)" = "4a0d573ebd64c98234c190a9d1d49e4276199a0c"  # Exp 7-15 code sandbox
git clone https://github.com/thinking-machines-lab/tinker-cookbook.git chapter7/tinker-cookbook
git clone https://github.com/19PINE-AI/rlvp.git                        chapter7/RLVP/rlvp                       # 實驗 7-14 RLVP 論文程式碼
git clone https://github.com/PRIME-RL/SimpleVLA-RL.git                 chapter7/SimpleVLA-RL/SimpleVLA-RL       # 實驗 7-13 視覺-語言-動作 RL

# 第 9 章 · 瀏覽器自動化與 Claude 示例
git clone https://github.com/browser-use/browser-use.git               chapter9/browser-use
git clone https://github.com/anthropics/claude-quickstarts.git         chapter9/claude-quickstarts
git clone https://github.com/Vector-Wangel/XLeRobot.git chapter9/XLeRobot && git -C chapter9/XLeRobot fetch origin 3d14695e40c9c68229c0aacffca6053c75cd3eb6 && git -C chapter9/XLeRobot checkout --detach 3d14695e40c9c68229c0aacffca6053c75cd3eb6 && test "$(git -C chapter9/XLeRobot rev-parse HEAD)" = "3d14695e40c9c68229c0aacffca6053c75cd3eb6"  # Exp 9-7/9-9 shared
git clone https://github.com/Grigorij-Dudnik/RoboCrew.git chapter9/RoboCrew && git -C chapter9/RoboCrew fetch origin c749148f29bd14e61347f9fc3530c343fff0d994 && git -C chapter9/RoboCrew checkout --detach c749148f29bd14e61347f9fc3530c343fff0d994 && test "$(git -C chapter9/RoboCrew rev-parse HEAD)" = "c749148f29bd14e61347f9fc3530c343fff0d994"  # Exp 9-8/9-9; RoboCrew v0.3.1
git clone https://github.com/StoneT2000/lerobot-sim2real.git chapter9/lerobot-sim2real && git -C chapter9/lerobot-sim2real fetch origin 87d6c1d969f6e0ca4dc5697940804e231118a63a && git -C chapter9/lerobot-sim2real checkout --detach 87d6c1d969f6e0ca4dc5697940804e231118a63a && test "$(git -C chapter9/lerobot-sim2real rev-parse HEAD)" = "87d6c1d969f6e0ca4dc5697940804e231118a63a"  # Exp 9-11

# 第 10 章 · 雙 Agent 架構(已獨立為 TalkAct 專案)+ 斯坦福 AI 小鎮
git clone https://github.com/19PINE-AI/TalkAct.git                     chapter10/use-computer-while-calling
git clone https://github.com/joonspk-research/generative_agents.git    chapter10/generative_agents             # 實驗 10-5 斯坦福 AI 小鎮

各專案 README 如標註了特定 commit,請按說明 git checkout 到對應版本以保證復現一致。第 10 章 use-computer-while-calling 已發展為獨立維護的 19PINE-AI/TalkAct,本倉庫不內建該目錄,用上面的克隆命令獲取。

🤝 貢獻

本書與配套程式碼全部開源,非常歡迎社群透過 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/)的組織方式

提交前建議先把相關實驗親手跑一遍、確認可復現;也歡迎先提 issue 討論想法。

📄 許可證

本專案採用 Apache License 2.0 開源許可證,詳見 LICENSE 檔案。部分子專案可能包含各自的許可證資訊,請以子專案中的說明為準。

⭐ Star History

scripts/gen_star_history.py 生成,GitHub Actions 每日自動更新 · 點選圖片檢視即時資料

本站来源与版权声明
  • 本文标题:ai-agent-book - 《深入理解 AI Agent:设计原理与工程实践》(
  • 本文链接:https://www.cn121.com/llm/bojieli-ai-agent-book.html
  • 原项目:bojieli/ai-agent-book 版权归原作者 bojieli 及贡献者所有
  • 收录信息:本站于 2026-09-23 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 Apache-2.0查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。本站对原文仅作排版与图片地址适配, 并保留原项目的 NOTICE 与署名要求。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 bojieli/ai-agent-book。
  • 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。