posts

《AI Agent 开发入门》 · 全书目录与章节索引(61 篇)

《AI Agent 开发入门》全 61 篇,以从零手写的 Agent 运行时 minagent 为主线,从消息协议与可编程假模型起步,经工具调用、推理模式、上下文工程、记忆与检索、规划与编排、多 Agent 协作,讲到错误重试、可观测性、评测与测试、服务化交付。示例以 Python 3.14 在本机实跑,默认走零凭据、零成本的假模型路径,本页给出全书分章目录。

《AI Agent 开发入门》全 61 篇,是一套以一个从零手写的 Agent 运行时为主线的入门书:从第 1 章定义 Message 与 Role 起,到第 18 章把引擎组装成端到端项目,minagent 会一路长大——二十行的朴素循环、可替换的模型接口、工具注册表与并行调用、三种推理模式、上下文裁剪、短期与长期记忆、本地可离线向量检索、任务分解与图编排、多 Agent 消息总线、错误分类与重试、span 追踪与成本核算、确定性测试与评测集、最后收敛成一个稳定的库接口与 HTTP 服务。所有示例基于 Python 3.14(本机实测 3.14.6)实跑,默认走假模型路径,零凭据、零成本、逐字节可复现。

本页是《AI Agent 开发入门》的全书目录:按章节顺序列出全部 61 篇,点击标题直达正文。也可以从各节末尾的「阅读导航」按顺序通读,或先看目录篇 里的三条学习路径与八到九周计划。

全书概览

项目内容
书稿《AI Agent 开发入门》
篇数61 篇(正文 18 章 54 节 + 目录篇 + 序 + 前言 + 附录 A–D)
领域AI Agent 引擎从零实现到可交付服务
贯穿项目minagent —— 一台从零手写的 Agent 运行时,18 章逐步长大
阅读方式从目录篇 进入按顺序通读,或按查漏场景跳读
实测版本Python 3.14.6(本机 Homebrew)、Node 26.5.0(第 17 章 TS 对照)
依赖正文第 1–16 章只用标准库;pydantic / httpx / anthropic / fastapi 仅在明确标注「可选」处引入
上级专题书稿专题

全书目录

前置

节文章核心内容
—目录与学习路径全书导航页:本卷怎么读、三条阅读路径与八到九周计划、六部分依赖关系与 54 节逐节索引
—序更高视角:为什么现在要学 Agent 开发、本书的写法取舍与常见误解
—前言本书怎么来的、写给谁、技术栈与版本口径、三卷结构、本书不写什么
附 A附录 A.minagent API 与模块速查Message / ToolCall / ModelResponse / Tool / ToolRegistry / run / Agent 的签名与语义速查,含 model.calls 断言法
附 B附录 B.FakeModel 脚本语法与测试夹具速查三种脚本元素(str / ToolCall 列表 / ModelResponse)的语义对照、四种脚本模式、调用序列断言、真实响应录制回放夹具
附 C附录 C.环境与离线复现速查Python 3.14 venv、依赖安装源、Node 26 可擦除语法约束、Docker 起 postgres/redis、零网络复现步骤
附 D附录 D.常见错误与 FAQ高频报错原文与最小复现:假模型脚本耗尽、工具参数不匹配、JSON 解析失败、SSE 断流、max_steps 撞线……每条给原因与修法

第一部分:引擎地基(第 1–3 章)

节文章核心内容
1.11.1 环境与仓库骨架建好 minagent/ 目录结构、配好 venv、理解全卷的代码组织与运行方式
1.21.2 Agent 的最小定义与消息协议定义 Message / Role / ToolCall,理解 Agent 的最小构成与消息的序列化回放
1.31.3 可编程假模型 FakeModel用脚本驱动的假模型替换真实调用,零凭据跑通第一轮对话
2.12.1 Model 协议设计用 Protocol 定义 Model,把「调用大模型」变成可替换抽象;EchoModel 与 ScriptedModel
2.22.2 真实供应商适配与离线替身写一个真实供应商适配器(可选),把真实响应录成夹具离线重放
2.32.3 Token 预算与截断策略估算 token、设定预算,在超限时按策略裁剪;BudgetedModel 装饰器
3.13.1 朴素循环:跑到没有工具调用为止写出第一个 run() 循环,理解「多轮」从哪来、RunResult 有哪三件东西
3.23.2 停止条件与循环上限五条止损线:自然收敛、max_steps、max_tokens、工具连续失败、重复动作;用 AgentLoopError 把异常终止变成数据
3.33.3 抽成 Agent 类:状态、步骤与回调把循环收进 Agent 类,暴露 on_step / on_tool_call 回调与 history 状态

第二部分:能力扩展(第 4–7 章)

节文章核心内容
4.14.1 工具即函数:schema 生成、注册表与分发用 Tool 与 ToolRegistry 把普通函数暴露给模型,自动生成 schema
4.24.2 参数校验与执行隔离校验工具入参、隔离异常,让错误以 {"error": ...} 结果而非崩溃呈现
4.34.3 并行工具调用与结果合并一轮里同时调用多个工具,按顺序合并结果;量化并发收益
5.15.1 ReAct:把「想—做—看」写进循环把思考、行动、观察三段式嵌进循环,并解释它为何只是同一个循环的变体
5.25.2 Plan-and-Solve:先出计划再执行让模型先给计划再逐步执行,减少来回试探与无效调用
5.35.3 Reflexion:失败后的自我修正失败后回看轨迹、生成反思,再重试一次;对照三种模式的代价
6.16.1 系统提示与指令分层把系统、开发者与用户指令分层,用 model.calls 验证分层是否真的落到消息里
6.26.2 上下文裁剪与摘要超预算时裁剪历史或用摘要压缩,保留 system 与最近上下文
6.36.3 结构化输出约束与解析兜底约束模型输出 JSON,解析失败时带错误重试一次
7.17.1 流式事件模型用 token / tool_call / step / error 事件流描述一次运行,让每一步都可被订阅
7.27.2 会话状态对象用 Session 承载多轮状态,隔离不同会话的历史
7.37.3 检查点与快照把状态存盘,崩溃后能从检查点续跑而不重头再来

第三部分:记忆与知识(第 8–10 章)

节文章核心内容
8.18.1 对话缓冲与摘要记忆用缓冲与摘要两种策略保存近期对话,权衡保真度与体积
8.28.2 记忆检索注入从记忆里挑出相关片段,注入到当前上下文而非全量塞入
8.38.3 记忆写入策略决定什么该记、什么时候记、记多细,以及如何按相似度去重
9.19.1 嵌入与向量存储:本地可离线方案手写一个可离线的嵌入与向量索引(仅第 9 章用到 numpy)
9.29.2 混合检索:关键词 + 向量 + 重排融合关键词与向量召回,再加一层重排,量化各自贡献
9.39.3 记忆即工具把记忆读写暴露成 recall / save_note 工具,交给模型自己决定何时用
10.110.1 文档加载与切分加载文档并按语义边界切成可检索的块,对本站文章目录跑切块统计
10.210.2 索引与检索工具提供 search 与 read 两个工具,让 Agent 自己查知识库
10.310.3 带引用的回答让答案附上来源引用,可追溯、可核对,并校验引用是否真的支持结论

第四部分:编排与协作(第 11–13 章)

节文章核心内容
11.111.1 任务分解:把大问题拆成子任务 DAG把目标拆成有依赖关系的子任务图,识别可并行的部分
11.211.2 计划执行器按依赖顺序执行子任务,汇总中间结果,支持串行与并行
11.311.3 重规划执行受阻时回看计划,局部重排而非全盘重来
12.112.1 状态机式编排手写一个最小图引擎:节点、边与状态流转
12.212.2 分支、合并与循环支持条件分支、并行合并与带出口的循环
12.312.3 人类在环在关键节点暂停,等待人工确认后继续,并保留可恢复的中间状态
13.113.1 角色与分工用 supervisor / worker 划分职责,各司其职
13.213.2 消息总线与共享状态用进程内消息总线连接多个 Agent,隔离与共享各自的边界
13.313.3 协作模式对照顺序、辩论、投票三种拓扑的步数 / 延迟 / 成本量化对照,判断何时值得上多 Agent

第五部分:可靠性与度量(第 14–16 章)

节文章核心内容
14.114.1 分类错误与重试把错误分类,只对可重试的做退避重试,不可重试的快速失败
14.214.2 超时、取消与结构化并发用 asyncio.TaskGroup 统一管理超时与取消,避免任务泄漏
14.314.3 幂等与副作用识别有副作用的工具,用幂等键让重试不产生重复影响
15.115.1 运行追踪把一次运行变成 span 树,记录完整的调用结构
15.215.2 结构化日志与关联 ID输出可检索的结构化日志,用关联 ID 串起全链路
15.315.3 成本与用量核算累计 token 用量,换算成可比较的成本,按模型与步骤归集
16.116.1 确定性测试用假模型与断言轨迹写出确定性测试,把「模型看到了什么」变成可断言事实
16.216.2 评测集与打分建一个小评测集,用引用可回溯与答案可支持两类信号打分
16.316.3 对比实验一次只改一个变量,用对比实验判断改动到底有没有让效果变好

第六部分:交付(第 17–18 章)

节文章核心内容
17.117.1 库的对外接口收敛出一个稳定的公开接口,隐藏内部实现,讲清版本策略与破坏性变更
17.217.2 HTTP 服务化用 FastAPI 与 SSE 把引擎暴露成可流式调用的服务
17.317.3 TS 落点一:同一协议的 TS 客户端用 TypeScript(Node 26 可擦除语法)写一个遵循同一协议的客户端
18.118.1 端到端组装工具、记忆、检索与编排,跑通从提问到带引用回答的完整任务
18.218.2 真实 API 冒烟(可选)可选地用真实供应商做一次冒烟验证,对照假模型与真模型的差异
18.318.3 回顾与路线回顾 minagent 的演进路径,给出进阶学习路线与进入实战卷的衔接

怎么用这份索引

相关阅读

全部文章 Golang Game Saas Rust Python Java 游戏开发 客户端开发 GameDev TypeScript
agent

《AI Agent 开发入门》7.3 检查点与快照

Agent 跑到一半崩溃,内存里的 history 与步骤全部蒸发,重启只能从头再来。本节把 Session(含消息、步骤、工具中间结果)序列化成 JSON 存到临时目录,崩溃后用 restore 从断点续跑。我们用假模型脚本化「跑到一半 → 存盘 → 新建对象 → 读盘 → 续跑」,真跑并打印续跑后的消息条数与「未重复已完成的工具调用」的证据,最后讨论检查点频率与体积的取舍。

10 分钟阅读
AI Agent AI Agent 开发入门 检查点
agent

《AI Agent 开发入门》7.1 流式事件模型

一次性返回把 Agent 变成黑箱:用户只看到最后那句话,中间的工具调用与进度全都看不见。本节给 minagent 定义统一的 Event 类型,让 Model 通过 stream() 逐 token 产出事件,并把 3.3 的两个回调升级成单一事件生成器——调用方用 for ev in agent.stream(...) 即可订阅全过程。用假模型脚本化 token 序列,真跑并打印完整事件流。

8 分钟阅读
AI Agent AI Agent 开发入门 流式输出
agent

《AI Agent 开发入门》5.3 Reflexion:失败后的自我修正

ReAct 与 Plan-and-Solve 都是「一次跑到底」,失败了不会回头。本节给循环外面再套一层 Reflexion:执行后由 evaluator 判定成败,失败就生成一段反思文本写回上下文,带着反思重跑,最多 N 轮。我们用 FakeModel 脚本化「第一次算错 → 反思 → 第二次算对」并真跑打印两轮轨迹,最后给何时值得 Reflexion 的决策清单。

10 分钟阅读
AI Agent AI Agent 开发入门 Reflexion
agent

《AI Agent 开发入门》5.2 Plan-and-Solve:先出计划再执行

ReAct 边想边做,Plan-and-Solve 则先谋后动。本节把循环拆成 Planner 与 Executor 两段:Planner 用结构化输出(JSON 数组)一次性产出子任务列表,Executor 顺序执行每一步且每步内部仍是一个完整小循环。我们用 FakeModel 演示一个三步计划,打印每步状态,并给出与 ReAct 的取舍表。

11 分钟阅读
AI Agent AI Agent 开发入门 Plan-and-Solve
agent

《AI Agent 开发入门》5.1 ReAct:把「想—做—看」写进循环

本节给 minagent 装上第一种推理循环 ReAct:把 Thought、Action、Observation 三元组显式写进每轮。我们说明现代 tool-use API 下 Thought 就是 assistant 消息的文本部分,实现一个 ReActAgent,用 FakeModel 脚本化「想—做—看」两轮后收敛的完整轨迹并真跑打印,最后给出与 3.1 朴素循环的差异表。

10 分钟阅读
AI Agent AI Agent 开发入门 ReAct
agent

《AI Agent 开发入门》3.3 抽成 Agent 类:状态、步骤与回调

上两节的 run() 是纯函数:配置靠参数传、状态散在局部、过程只能事后拿到。本节把它收进 Agent 类——构造时持有 model、registry、system 与 max_steps,run() 返回 RunResult,并新增 on_step 与 on_tool_call 两个回调钩子与 history 状态。我们用假模型演示回调如何逐步打印轨迹,并说明回调为何是流式输出的地基。

9 分钟阅读
AI Agent AI Agent 开发入门 Agent 类
agent

《AI Agent 开发入门》3.2 停止条件与循环上限

上节的 run() 只会跑到自然收敛,模型一卡住就束手无策。本节给循环装上五条止损线:无工具调用、达到 max_steps、stop_reason 为 max_tokens、工具连续失败、重复动作。我们用 AgentLoopError 把异常终止变成可诊断的数据,再用两个假模型分别制造死循环与原地打转,逐一验证每条止损线是否真的生效。

7 分钟阅读
AI Agent AI Agent 开发入门 停止条件
agent

《AI Agent 开发入门》3.1 朴素循环:跑到没有工具调用为止

本节给 minagent 装上第一个 Agent 循环:run() 反复调用 model.complete,把 assistant 消息与工具结果追加进同一个消息列表,直到某一轮不再产生工具调用为止。我们用 FakeModel 跑通 (2+3)*4 的两步收敛,打印每一步的 Step 轨迹、最终回答与消息条数,并讨论这个朴素实现留下了哪些坑。

9 分钟阅读
AI Agent AI Agent 开发入门 Agent 循环
agent

《AI Agent 开发入门》2.2 真实供应商适配与离线替身

本节给 Model 协议接上真实供应商:以 Anthropic SDK(anthropic 1.13.0)为例,把 minagent 的 Message 翻译成 SDK 入参、把 SDK 响应折叠回 ModelResponse,密钥只用 os.environ 读取、示例默认不真调。重点讲「录制夹具」:把一次真实响应存成 JSON,离线用 RecordedModel 重放,做到零凭据可回归。

7 分钟阅读
AI Agent AI Agent 开发入门 供应商适配
agent

《AI Agent 开发入门》1.2 Agent 的最小定义与消息协议

本节给 Agent 一个可执行的最小定义——模型 + 工具 + 循环 + 状态,并把它落成 minagent/types.py 里的 Role、ToolCall、Message、ModelResponse 四个类型;重点讲清 Message.to_wire() 如何把对象变成模型能消费的线格式,再用一段离线断言脚本实测「序列化到反序列化再回放」全程往返一致。

8 分钟阅读
AI Agent AI Agent 开发入门 消息协议