posts

《AI Agent 工程实战》 · 全书目录与章节索引(55 篇)

《AI Agent 工程实战》全 55 篇,把卷一手写的 Agent 引擎 minagent 装成一个能给别人用的研究助理服务 ResearchCopilot:从需求与架构、配置密钥、REST 与 SSE 接口、认证与租户隔离,经 Postgres 状态持久化、缓存限流、异步队列与并发控制,讲到 MCP 工具接入、记忆服务、评测质量门、可观测与 SLO、成本治理、安全护栏、容器部署与发布。示例以 Python 3.14 与 Node 26 在本机实跑,本页给出全书分章目录。

《AI Agent 工程实战》全 55 篇,是一套以把 Agent 引擎装成产品为主线的工程书:卷一的 minagent 在这里不再改动,而是被四层边界(引擎 / 服务 / worker / 存储)包起来,长成一个研究助理服务 ResearchCopilot——用户提问,Agent 多跳检索本地语料、调用工具(含本地 Postgres 查询)、生成带引用的报告,后台 worker 周期跑语料更新与日报。全卷按工程推进顺序展开:需求与验收标准、架构边界、配置与密钥、REST 与 SSE 契约、认证与租户隔离、Schema 与事务、查询优化、缓存与限流、异步队列、结构化并发、TS 流式前端、MCP 工具接入、记忆服务、评测与质量门、追踪与指标、延迟与成本、安全护栏、双栈镜像、compose 编排、CI/CD 与灰度、容量评审与故障演练。所有示例基于 Python 3.14(本机实测 3.14.6)与 Node 26(本机实测 26.5.0)实跑,默认走假模型路径,零凭据、零成本;Postgres 17.11 与 Redis 7.4.11 由本机容器提供。

本页是《AI Agent 工程实战》的全书目录:按章节顺序列出全部 55 篇,点击标题直达正文。也可以从各节末尾的「阅读导航」按顺序通读,或先看目录篇 里的三条阅读路径与六周计划。

全书概览

项目内容
书稿《AI Agent 工程实战》
篇数55 篇(目录篇 + 正文 18 章 54 节)
领域Agent 服务的工程化:从接口契约到上线交付
贯穿项目ResearchCopilot —— 一个由 minagent 驱动的研究助理服务,18 章逐步长大
阅读方式从目录篇 进入按顺序通读,或按症状跳读
实测版本Python 3.14.6、Node 26.5.0、PostgreSQL 17.11、Redis 7.4.11
依赖本卷放心使用工程库:pydantic-settings / FastAPI / psycopg / redis / mcp 等均为真装真用
前置建议先读卷一《AI Agent 开发入门》,本卷复用其核心契约
上级专题书稿专题

全书目录

前置

节文章核心内容
—目录与学习路径全书导航页:本卷怎么读、三条阅读路径与六周计划、六部分依赖关系与 54 节逐节索引、常见问题速查表

第一部分:项目地基(第 1–4 章)

节文章核心内容
1.11.1 需求与用例:3 个核心用例与验收标准定下三个用例与可判定的验收标准,明确「不做什么」,并给出用例与章节的映射
1.21.2 架构总览:引擎 / 服务 / worker / 存储边界划清四层边界与依赖方向,走一遍请求从进来到出结果的完整时序
1.31.3 仓库与工程骨架:monorepo + TS 包,CI 跑通 lint/test建 monorepo 目录树,本地真跑通 pytest 与 node –test,附 CI 形态
2.12.1 分层配置:pydantic-settings 加载与校验四级来源合并(默认 → 文件 → 环境变量 → 显式参数)与校验,配置靠注入而非全局读取
2.22.2 密钥管理:Anthropic key / DB / Redis 本地注入密钥不落库、不进镜像、不进日志三条线,缺失即 fail-fast,SecretStr 自动脱敏
2.32.3 模型路由与降级:真/假模型开关,离线默认假模型默认假模型零凭据可跑,主模型失败时按链降级且降级必须透明
3.13.1 REST 设计:session / run / message 资源建模为什么 run 是独立资源而不是 session 的一个动作,OpenAPI 契约的形态
3.23.2 流式接口:SSE 推送事件事件 envelope(id / event / data)设计,SSE 与 WebSocket 的取舍表
3.33.3 幂等、分页与统一错误契约Idempotency-Key 重复 POST 只建一次 run,游标分页与统一错误响应体
4.14.1 认证:JWT 与 API Key 中间件两种凭证并行支持,过期、篡改签名、无凭证各自返回什么错误码
4.24.2 授权与租户隔离:workspace 行级隔离跨租户访问返回 404 而非 403,以及 PostgreSQL 行级安全策略兜底
4.34.3 工具权限与审批:高危工具二次确认工具分只读 / 写入 / 危险三档,危险调用挂起等人工审批再继续

第二部分:数据与性能底座(第 5–6 章)

节文章核心内容
5.15.1 Schema 设计:会话/消息/运行/记忆表 + 迁移四张表的 DDL 与迁移版本表,消息体存原始 JSON 以保真
5.25.2 事务与并发:run 状态机原子更新、行锁防重复执行「先查再改」为什么会跑两遍,原子抢占与 SKIP LOCKED 怎么写
5.35.3 查询优化:EXPLAIN 定位慢查询并加索引五万行数据上的真实执行计划对比、部分索引与写放大的取舍
6.16.1 Redis 缓存:检索结果与嵌入缓存命中率缓存 key 必须带租户,穿透 / 击穿 / 雪崩在 Agent 场景的具体形态
6.26.2 语义缓存:相似问题复用与错配检测为什么阈值分不开对错,哪些类型的问题绝不能走语义缓存
6.36.3 限流与配额:按租户 token 预算的令牌桶Lua 原子限流与 token 预算扣减,被限流时 Agent 该怎么办

第三部分:异步与前端(第 7–9 章)

节文章核心内容
7.17.1 任务队列:run 丢给 worker 异步执行可靠队列与裸队列的区别,以及 202 返回后的完整生命周期
7.27.2 重试、死信与幂等指数退避加抖动、超过上限进死信并记录原因,重试必须配幂等
7.37.3 定时与延迟任务:周期语料更新与日报分布式锁的 token 校验与续期,延迟任务用有序集合实现
8.18.1 引擎内并发:并行工具与并行子 Agentasyncio.TaskGroup 真并发,结果按调用顺序而非完成顺序回填
8.28.2 背压与资源池:信号量限并发并发上限怎么估,生产快于消费时怎么让上游慢下来而不是无限堆积
8.38.3 取消、超时与泄漏:慢工具注入验证止损注入慢工具验证超时止损,以及游离任务与取消传播
9.19.1 事件协议:token/tool/step 统一 schema,TS 与 Python 共享类型TypeScript 判别联合类型与三种共享类型做法的代价对照
9.29.2 前端渲染:TS 最小聊天 UI 逐步显示纯函数归约器与渲染器,增量渲染与全量重渲染的取舍
9.39.3 断线重连:Last-Event-ID 续传不丢步服务端事件缓冲、缓冲淘汰后的 resync 全量重取降级

第四部分:生态、记忆与质量(第 10–12 章)

节文章核心内容
10.110.1 MCP 客户端接入:minagent 作为 client 连本地 Server远程工具适配成 Tool、命名冲突处理与错误映射,协议本身不展开
10.210.2 工具设计模式:读写分离、幂等、可观测描述即提示词、工具粒度、幂等键设计与调用留痕
10.310.3 工具沙箱:子进程/容器隔离高危工具子进程只能隔离崩溃,容器才能隔离权限;未部署的方案如实标注
11.111.1 写入流水线:抽取、去重、冲突消解抽取 → 去重 → 冲突消解,以及重放同一段对话不产生重复记忆
11.211.2 检索注入:长期记忆接入 run 并量化收益注入位置取舍,以及只改一个变量的对照实验与得分差异
11.311.3 记忆治理:TTL、隐私与按用户删除写入侧拒绝清单、级联删除与审计留痕
12.112.1 评测集与评分器:成功率/引用准确率/成本可版本化评测集的维护纪律与三个评分器,自动与人工打分分界
12.212.2 离线回放与夹具:假模型 + 录制样本确定性回归夹具回放机制,以及夹具失配必须报错而不是静默给错响应
12.312.3 CI 质量门:分数下降即拦截基线怎么维护、为什么不能只看均值、退化怎么被拦住

第五部分:可观测、性能与安全(第 13–15 章)

节文章核心内容
13.113.1 结构化日志与追踪:OTel GenAI 语义约定埋点span 树与上下文传播,字段名对齐 GenAI 语义约定
13.213.2 指标与看板:延迟/成功率/成本/工具错误为什么平均值会骗人、指标基数陷阱与看板四块布局
13.313.3 告警与 on-call:从 trace 到告警演练告警规则表、SLO 与错误预算、从告警到具体 trace 的排查动作
14.114.1 延迟剖析:模型/检索/工具各占多少分阶段计时与占比,以及同步阻塞拖垮异步服务
14.214.2 成本优化:缓存、路由、小模型降级 + 评测兜底三招降本、误判代价,以及降本必须过评测兜底
14.314.3 吞吐与并发压测:找容量上限与拐点四档并发找拐点,以及加超时后 QPS 虚高、错误率飙升的假象
15.115.1 输入侧:提示注入与越权工具拦截间接注入最危险,内容与指令必须分离,危险工具要白名单拦截
15.215.2 输出侧:敏感信息、越狱与幻觉引用校验引用存在不等于引用支持,校验必须回语料核对
15.315.3 审计与合规:不可篡改审计日志哈希链审计日志,以及它与「按用户删除」之间的张力

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

节文章核心内容
16.116.1 TS 落点三:Python + Node 双栈镜像瘦身多阶段构建与四个瘦身杠杆,为什么 latest 是坑
16.216.2 本地编排:compose 起 API/worker/postgres/redisdepends_on 不等于依赖就绪,healthcheck 加 service_healthy 才有用
16.316.3 配置注入、健康检查与优雅退出liveness 与 readiness 的区别,收到 SIGTERM 后要做什么
17.117.1 流水线:lint/test/评测/构建串联阶段顺序的代价权衡,评测必须在 CI 里用夹具回放跑
17.217.2 灰度与回滚:新提示/新模型小流量提示词也是可发布的配置,回滚必须演练过才算回滚
17.317.3 版本与迁移:不中断 schema 迁移演练expand–contract 五阶段,以及长事务锁表与并发建索引的坑
18.118.1 容量与架构评审清单五组带通过标准的评审清单与一份可执行的容量估算
18.218.2 故障演练:模型超时/DB 宕机/队列积压三个受控演练的注入方式、观测点与复盘问题
18.318.3 上线、观察与迭代 + 真实 API 端到端冒烟(可选)观察节奏、迭代闭环,以及需自备密钥的可选真实冒烟流程

怎么用这份索引

相关阅读

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

《AI Agent 工程实战》12.2 离线回放与夹具:假模型 + 录制样本确定性回归

CI 里调真模型不确定、要钱、要网络、会限流。本节把一次模型交互的请求与响应存成夹具,回放时按请求指纹匹配取响应:本机按 Anthropic Messages API 结构手工构造三条夹具真跑一遍完整 run,连跑两次逐字一致;再改问题制造夹具失配,验证回放器报错而非静默给错响应,最后给出夹具的存放与更新流程。

11 分钟阅读
AI Agent AI Agent 工程实战 离线回放
agent

《AI Agent 工程实战》12.1 评测集与评分器:成功率/引用准确率/成本

本节给 ResearchCopilot 建一个可版本化的评测集:JSON 存问题、期望要点与必须引用的来源,配套「加样本写理由、改期望留痕」的维护纪律;实现成功率、引用准确率、成本三个评分器,对 10 条样本真跑并打印逐条得分与汇总,最后给出自动打分与人工评审的分界表。

9 分钟阅读
AI Agent AI Agent 工程实战 评测集
agent

《AI Agent 工程实战》11.3 记忆治理:TTL、隐私与按用户删除

记忆是用户数据,写进来容易,管起来难。本节讲三件治理:用 TTL 让该过期的记忆自动清掉,用隐私分级和写入侧拒绝清单把密钥、卡号、证件号、健康信息挡在库外,用按用户级联删除让「删除我的数据」真的删干净并留下审计。真连本机 Postgres 跑一次完整的删除流程。

10 分钟阅读
AI Agent AI Agent 工程实战 记忆治理
agent

《AI Agent 工程实战》11.1 写入流水线:抽取、去重、冲突消解

卷一讲了记忆「怎么读」,本节讲记忆「怎么存」做成一条服务:从对话里抽取候选记忆,用文本归一化和向量相似度两档去重,再用时间戳加保留历史加标记取代来消解冲突。我们真连本机 Postgres 把 5 条候选走完整条流水线,验证同一条对话重放两次不产生重复记忆。

9 分钟阅读
AI Agent AI Agent 工程实战 记忆写入
agent

《AI Agent 工程实战》10.3 工具沙箱:子进程/容器隔离高危工具

Agent 会执行模型写出来的代码、SQL 与命令,必须隔离。本节讲三层隔离:进程内不可信、子进程加资源限制、容器加只读挂载与无网络。实现 sandboxed_python 真跑正常代码、死循环超时、写文件三例,如实说明 subprocess 不是安全边界,再用 Docker 只读无网络容器真跑对照。

8 分钟阅读
AI Agent AI Agent 工程实战 工具沙箱
agent

《AI Agent 工程实战》10.2 工具设计模式:读写分离、幂等、可观测

工具设计有五条可复用模式:读写分离(只读随便调、写入要审批加幂等键)、幂等、可观测、单一粒度、描述即提示词。本节先用假模型做「描述含糊 vs 描述具体」的选中率对照(实测 67% 对 100%),再用 pydantic 约束对照万能 sql 与专用工具的危险调用拦截率(实测 0/6 对 5/6)。

9 分钟阅读
AI Agent AI Agent 工程实战 工具设计
agent

《AI Agent 工程实战》10.1 MCP 客户端接入:minagent 作为 client 连本地 Server

本节把 MCP Server 当成工具源:写一个同步外壳的 MCPToolSource,连上本地 stdio Server、list_tools,把每个远程工具适配成 minagent 的 Tool 注册进 ToolRegistry,并讲清命名冲突、错误映射与连接生命周期;最后用假模型驱动 Agent 真跑一次 MCP 调用(Python 3.14.6 + mcp 2.3.0 实测)。

8 分钟阅读
AI Agent AI Agent 工程实战 MCP
agent

《AI Agent 工程实战》9.1 事件协议:token/tool/step 统一 schema,TS 与 Python 共享类型

把 3.2 的 SSE 事件抽成一份语言无关的 schema:一个 type 判别字段加各自字段。给出 TypeScript 判别联合类型与 Python pydantic 判别联合两份定义,用同一份 JSON 样本在两侧真跑解析;再对比手写双份、JSON Schema 生成、共享契约文件三种「共享类型」做法的代价。

8 分钟阅读
AI Agent AI Agent 工程实战 事件协议
agent

《AI Agent 工程实战》8.3 取消、超时与泄漏:慢工具注入验证止损

并发开得越大,越怕一个慢工具拖住整轮。本节用 asyncio.timeout 给每个工具调用设墙钟上限,演示用户断开时取消如何从 run 一路传到最内层的工具,剖析忘了 await 的 Task 与 TaskGroup 失败取消两种泄漏。真跑注入一个睡 10 秒的慢工具,验证 1 秒超时后整个 run 及时止损并返回明确错误,最后给出超时值的决策表。

8 分钟阅读
AI Agent AI Agent 工程实战 超时
agent

《AI Agent 工程实战》8.2 背压与资源池:信号量限并发

上一节把并发开到最大,这一节给它装刹车。无限制的并发会打爆下游:模型 API 限流、数据库连接池耗尽。本节用 asyncio.Semaphore 做并发上限,用手写最小连接池做资源复用,讲清背压「生产快于消费时必须让上游慢下来」,真跑 200 个任务并发上限 10 打印峰值并发与总耗时,并给出按下游 QPS 反推并发上限的估算方法。

8 分钟阅读
AI Agent AI Agent 工程实战 背压
agent

《AI Agent 工程实战》8.1 引擎内并发:并行工具与并行子 Agent

Agent 天生并发:一轮可以发出多个工具调用,一个任务可以拆成多个子 Agent。本节把卷一 4.3 的线程池写法升级成 asyncio.TaskGroup 的真并发版本,演示结果按调用顺序回填而非完成顺序,再并行跑多个子 Agent 汇总,用带 sleep 的假工具实测串行与并行的墙钟差,并给出并发安全边界表。

10 分钟阅读
AI Agent AI Agent 工程实战 并发
agent

《AI Agent 工程实战》7.3 定时与延迟任务:周期语料更新与日报

队列里除了用户触发的 run,还需要两类「自己动」的任务:每 N 分钟重建语料索引的周期任务,和 run 完成后延迟几分钟生成摘要的延迟任务。本节用 Redis 的 SET NX PX 加 token 校验做分布式锁,讲清多 worker 抢同一个定时任务时怎么保证只有一个执行、释放与续期为什么要比 token,并真跑两个并发 worker 争抢同一把锁。

11 分钟阅读
AI Agent AI Agent 工程实战 定时任务
agent

《AI Agent 工程实战》7.2 重试、死信与幂等

上游抖动让 worker 一次失败就判死太脆弱。本节复用卷一 14.1 的错误分类,给队列加上带指数退避与抖动的重试、超过上限进死信队列、以及「重试必须配幂等」的三件套:把 run id 当幂等键,已 succeeded 的 run 直接复用旧结果不重复执行。真跑注入一个「前两次必失败、第三次成功」的假模型打印重试轨迹,再跑一个永远失败的进死信并读回死信记录。

9 分钟阅读
AI Agent AI Agent 工程实战 重试退避
agent

《AI Agent 工程实战》7.1 任务队列:run 丢给 worker 异步执行

把一次 run 从同步请求改造成异步任务:API 只写库并入队、立刻返回 202,worker 在另一个进程消费。本节讲清裸 LPUSH/BRPOP 为什么会丢任务,改用 BLMOVE 把任务原子搬到 processing 做可靠队列,并真连本机 Redis 7.4.11 与 Postgres 17.11,跑出完整的 run 生命周期日志与同步/异步取舍表。

10 分钟阅读
AI Agent AI Agent 工程实战 任务队列
agent

《AI Agent 工程实战》6.3 限流与配额:按租户 token 预算的令牌桶

本节用 Redis 给 ResearchCopilot 加两道闸:按租户的令牌桶限流(Lua 脚本保证读-算-写原子),以及按消耗 token 计费的配额——不是限制请求数,而是限制烧掉的 token。真连本机 Redis 跑出连续请求直到 429 的每一步剩余令牌与剩余额度,并给出限流粒度表与「被限流时 Agent 该怎么办」的策略。

9 分钟阅读
AI Agent AI Agent 工程实战 限流
agent

《AI Agent 工程实战》6.2 语义缓存:相似问题复用与错配检测

6.1 的字面缓存只认逐字节相同的 key,可用户换个说法问同一个问题它就失灵。本节实现语义缓存:把问题向量化后按相似度阈值命中历史答案,用卷一 9.1 的手写哈希嵌入真跑三种情况——同义改写命中、无关问题不命中、相似但答案相反时误命中,贴出真实相似度数值,并重点讲错配检测与哪些问题绝不能走语义缓存。

11 分钟阅读
AI Agent AI Agent 工程实战 语义缓存
agent

《AI Agent 工程实战》6.1 Redis 缓存:检索结果与嵌入缓存命中率

本节给 ResearchCopilot 的检索结果与嵌入向量加一层 Redis 缓存:缓存 key 带上 workspace_id 以对齐 4.2 的租户隔离,真连本机 Redis 跑出「首次未命中回源、二次命中」的耗时对比与 70% 命中率,并给出检索、嵌入、会话三类 TTL 策略表,以及缓存穿透、击穿、雪崩在 Agent 场景下的具体形态与对策。

11 分钟阅读
AI Agent AI Agent 工程实战 Redis 缓存