AGENTIC AI · NIGHT CHART
N 31°14′ E 121°29′ · v1.1.0
2026
AGENTIC AI GUIDE中文版 · v1.1.0 · 演示编排

智能体 AI 漫游指南
从基础到系统

一部从 Transformer 内部机制走到多智能体系统的完整技术栈手册——先直觉、后形式化,面向实现,对「什么有效」诚实相告。

599页
30章 · 六大部分
20+种对齐算法
108道测验题
基础 RL 对齐 推理 评估 智能体

HAGGAI ROITMAN 著 · ← → 翻页 · T 目录 · F 全屏

MAP6 段航线 · 30 章 · 599 页

全书航线图FROM FOUNDATIONS TO AGENTIC AI

I 基础 II RL 方法 III 推理 IV 评估 V 智能体 AI VI 自测
I基础
01 LLM 架构与优化
02 系统:GPU·vLLM
03 强化学习导论
IIRL 方法
04 RLHF 范式 05 PPO
06 DPO 07 GRPO
08 偏好族 09 奖励模型
10 SFT 11 大规模系统
12 智能体训练
III推理
13 大型推理模型 RL

DeepSeek-R1 · o1
测试时扩展 · RLVR
IV评估
14 LLM 评估

LLM-as-Judge
Pass@k · ELO
污染与 Goodhart
V智能体 AI全书最大部分
15 简介 16 RAG 17 记忆
18 Harness 19 循环 20 模式
21 环境 22 MCP 23 Skills
24 A2A 25 多智能体
26 框架 27 Agentic UI
VI自测与参考
28 测验 108 题
29 速查手册
30 总结与展望
第一性原理 对齐与推理 自主智能体 严谨评估
《Agentic AI 漫游指南》Haggai Roitman·按 T 打开页级目录·CODE13 页代码实战:书中真实示例逐行讲解p26-35
I
PART I · FOUNDATIONS · p37-131

基础

全书的三大支柱:Transformer 内部如何处理语言、让训练与推理成为可能的硬件与系统,以及支撑一切对齐方法的经典强化学习。

CH 01LLM 架构与优化方法p38-106 · 分词 → 注意力 → 训练 → 解码
CH 02面向 LLM 的系统基础p107-120 · GPU · Roofline · vLLM
CH 03强化学习导论p121-131 · MDP → TD → Actor-Critic
Token 与注意力 优化与 MoE GPU 内存层级 MDP 与 GAE
PART I · CH 01书 p39-59BPERoPE

LLM 架构:Token→注意力BPE · ATTENTION · ROPE · PREDICTION HEADS

文本→Token→表征→Token→文本:一条流水线看清 LLM 如何读入、如何计算、如何预测;同一个主干,换一个预测头就是另一个任务。

128KLlama-3 词表(字节级 BPE)
4,096嵌入维度 d,离散→连续
525M嵌入表参数,占 8B 模型 6.5%
64 GB128K 上下文的注意力矩阵(FP32)
01分词:子词是平衡点
字符级序列长、词级容不下新词。字节对编码(BPE)从字符反复合并最高频相邻对,词表 32K–128K。
02嵌入:离散→连续
Token ID 查表成 d=4096 向量,king−man+woman≈queen;RoPE 旋转 Q/K,点积只依赖相对位置。
03自注意力与多头
按 Q·K 相似度加权先前位置;朴素实现内存 O(n²),128K 上下文达 64 GB。多头各学句法语义,GQA 省 4× KV。
自回归:输出 token 追加为下一步输入 Token IDs 离散整数 嵌入表 E |V|×d 查表 Transformer 块 × L Llama-3.1 8B:32 层 RMSNorm 多头自注意力 RoPE + 残差 RMSNorm SwiGLU FFN 键值存储 · 隐层 8/3×d + Pre-Norm: x + SubLayer(LN(x)) 预测头(可更换) LM 头(预训练) 交叉熵 · 全部 token 条件生成头(SFT) 交叉熵 · 仅回复 token 计损 价值头(RL) MSE · 标量 V(s)
图 1.3 / 1.7 · 仅解码器栈(Pre-Norm):残差包裹每个子层;同一主干换预测头即切换任务
要点 128 层网络无归一化,首尾激活差 10^30×;RMSNorm 去均值,快 5–10% 质量等同。
BPE 分词 嵌入 注意力 位置编码 预测头
《Agentic AI 指南》中文版 v1.1.0·Part I 基础p39-59
PART I · CH 01书 p62-85AdamWMuon

训练:优化器·SFT·LoRA·MoEADAMW · MUON · FLASHATTENTION · LIMA

预训练目标只有一句话:预测下一个 token。之后的每个阶段——更好的优化器、低秩适配、稀疏专家——都在为它省算力。

  • 预训练 · 15T token
  • 中期训练 · RL 就绪
  • SFT · LIMA 1K 精选
  • RLHF / DPO
01优化器:SGD→AdamW→Muon
SGD 败于梯度尺度悬殊与稀疏梯度;AdamW 解耦权重衰减成默认;Muon 正交化动量,大规模预训练省约 2×。
02学习率与数据质量
学习率第一:预训练 3e-4、SFT 2e-5、LoRA 2e-4,预热 1–5%;LIMA 证明 1,000 精选 > 5 万嘈杂。
03LoRA:低秩适配
冻结主干,只训低秩 BA(缩放 α/r);r=16 默认,32–64 接近全量;70B 全量 560 GB→QLoRA 44 GB。
MoE(x) = Σ g_i(x)·E_i(x) N=8–64 专家,每 token 仅激活 K=2;容量随 N,算力随 K/N H(x) = h(x) + ε·Softplus(W_noise·x) 可学习噪声 token 隐藏状态 x 路由器 Router TopK(softmax(W_r·x)) 仅 Top-2 门控非零 专家 E1 专家 E2 g=0.63 专家 E3 专家 E4 专家 E5 g=0.31 专家 E6 专家 E7 专家 E8 + 输出
图 1.11 · MoE 层(Noisy Top-K 门控):容量随 N 增长、算力只随 K/N 增长;噪声让弱势专家偶尔入选、拿到梯度
FlashAttention 不改数学只改访存:分块进 SRAM+在线 softmax,显存 O(N²)→O(N),快 2–4×。
优化器 FA 分块 SFT LoRA MoE
《Agentic AI 指南》中文版 v1.1.0·Part I 基础p62-85
PART I · CH 01书 p86-106Top-pEagle

解码·压缩·投机·安全DECODING · COMPRESSION · SPECULATIVE · SAFETY

概率分布已定,选哪个 token?如何把模型塞进显存、把解码提速 3×?最后是幻觉与安全——工程落地的最后一公里。

方法确定性多样性最佳适用
Greedy是无代码、事实问答
Beam(B=4–8)是低翻译、摘要
Top-k(k=50)否中通用生成
Top-p(p=0.9)否自适应开放式默认
Min-p(p=0.1)否自适应top-p 稳健替代
01采样旋钮
温度 T<1 变尖、T→0 即贪心;重复惩罚 θ=1.1–1.3 把已生成 token 的 logit 推向零。
草稿提议 Draft 小模型 · Medusa · Eagle N-gram 缓存(零成本) 目标模型 · 一次前向传播 并行验证全部候选 token 接受: P_tgt(ˆx) ≥ r·P_draft 拒绝: 于位置 j 重采样 逐位判定 候选 1 接受 候选 2 接受 候选 3 拒绝 重采样 x_j 丢弃其后候选 α=0.8、k=5 → 每步期望 3.4 个 token,输出分布与目标完全一致(无质量损失) 加速:标准 2–3× · Medusa 2–3× · Eagle 2.5–3.5× · Eagle-2 3–4× · N-gram 1.5–2×(表 1.19)· Eagle 接受率 85–95%
图 · 投机解码:草稿提议 k 个候选,目标模型一次前向并行验证——分布与标准解码完全一致
02约束解码
JSON Schema→正则→FSM,每步按状态掩掉非法 token;Outlines、XGrammar 保证语法合法。
03压缩三件套
量化 W4A16 省 2× 内存、损失 <1%;剪枝 SparseGPT 达 50% 稀疏;蒸馏迁移教师「暗知识」。
04幻觉与安全
幻觉分内在/外在/忠实性;检测靠高熵、SelfCheckGPT、语义熵。安全威胁:有害·偏见·隐私·越狱·虚假·双用途。
反直觉 检测器测的是不确定性,不是错误性——模型可能自信且一致地犯错;可靠检测需结合 RAG 验证。
解码采样 约束 FSM 压缩 投机解码 安全
《Agentic AI 指南》中文版 v1.1.0·Part I 基础p86-106
PART I · CH 02书 p107-120GPUvLLM

面向 LLM 的系统基础GPU ARCHITECTURE · ROOFLINE · vLLM

LLM 训练在 GPU 上快 100-1000×:不是因为核多,而是因为矩阵乘天然并行。而真正的瓶颈往往不是算力,是数据搬运——读懂内存层级,后面每一章的优化技术才有支点。

312 TFA100 BF16 峰值算力
156 F/BA100 脊点 = 峰值FLOPs ÷ 带宽
900 GB/sNVLink 4(H100,节点内)
1.3 GBLlama-3 70B 每条 4096-token 序列的 KV cache
01两种芯片哲学
CPU 优化延迟(8-96 核·大缓存·分支预测);GPU 优化吞吐(数千核按 SM 组织)。Transformer 主运算是矩阵乘——O(n³) 运算压在 O(n²) 数据上,天然并行。
02内存层级:每级慢 ~10×
寄存器 1 周期 → SRAM ~20 → L2 ~200 → HBM ~200ns → PCIe 再慢 60×。FlashAttention 的全部前提,是注意力分块能装进 192 KB SRAM。
03通信即瓶颈
节点内 NVSwitch 全二分 900 GB/s;节点间 InfiniBand NDR 50 GB/s/口。70B 模型每步梯度 AllReduce ≈ 275 GB,吃掉 41% 步时——所以要有 FSDP 重叠与梯度压缩。
性能 TFLOP/s 算术强度 FLOP/Byte 峰值 312 TFLOP/s 脊点 156 F/B Attention62 F/B · 仅脊点的 40% GPU 六成时间在等数据 FlashAttention 2048 F/B · 超脊点 13× FFN / GEMM 计算密集 · 量化收益大 MEMORY-BOUND
图 2.2 · Roofline(A100 BF16):Attention 深陷内存密集区,FlashAttention 分块复用后跃入计算密集区
vLLM 一句话把操作系统「虚拟内存」搬进 GPU:PagedAttention 将 KV cache 切成 16-token 的块,块表间接寻址,显存利用率从 20-40% 提到近零浪费;配合连续批处理,吞吐再升 1.5-3×。
GPU 架构 内存层级 Roofline FlashAttention vLLM
《Agentic AI 指南》中文版 v1.1.0·Part I 基础p107-120
PART I · CH 03书 p121-132MDPTDGAE

强化学习导论REINFORCEMENT LEARNING · MDP · TD · GAE

智能体与环境试错交互、最大化长期累积奖励——不像监督学习需要标签,RL 从经验中学习。本章从 MDP 五元组与 TD 误差,走到策略梯度与 GAE,为 RLHF 筑底。

γ∈[0,1]折扣因子:未来奖励相对即时奖励的权重
32K–128K词表=动作空间:值方法 max 不可行
60%同策略:每步重新生成,生成占算力
5–50×PBRS 塑形 F=γΦ(s′)−Φ(s)·不改最优策略
01MDP:五元组与马尔可夫性
状态 S·动作 A·转移 P(s′|s,a)·奖励 R·折扣 γ。马尔可夫性质:未来只依赖当前状态,问题因此可处理。
02TD 误差:「惊讶」即学习信号
δt = rt+1 + γV(st+1) − V(st),即 TD 目标 − 旧估计。为正→提升价值;为负→降低;学习就是驱动 δ→0。
03Q-Learning 与重放缓冲区
异策略值方法:max Q(s′,a′) 更新与行为策略无关——故能从重放缓冲区采样:打破相关性、防遗忘、提样本效率。
AGENT · ENV LOOP METHOD FAMILIES 智能体 Agent 策略 π(a|s) · 选动作 环境 Environment 转移 P(s′|s,a) · 奖励 R 动作 at 奖励 rt 状态 st+1 试错 Trial-and-Error 最大化长期累积奖励 Gt 值方法 Value-Based 学 Q(s,a),argmax 得策略 · Q-Learning · DQN 异策略 策略方法 Policy-Based 直接优化 πθ,「奖励加权的最大似然」· REINFORCE 同策略 Actor-Critic actor 提动作,critic 提供低方差基线 · A2C · PPO · GRPO 同策略 GAE 广义优势估计:λ 是两种估计范式间的「滑尺」 Ât = Σ (γλ)l · δt+l λ=0 λ=1 λ=0.95 · PPO 标准取值 纯 TD:高偏差 · 低方差 λ∈[0.95,0.99] 最小化优势估计的总 MSE 纯 MC:低偏差 · 高方差 自举:信任 V 的猜测 信任完整环境轨迹
图 3.1/3.3 · 交互循环上的三类方法;下:GAE 的 λ 谱线——0 端纯 TD 高偏差·低方差,1 端纯 MC 低偏差·高方差,PPO 取 0.95
RLHF 之前,先懂 TD 误差PPO 的 critic 靠最小化 TD 误差训练,优势来自 GAE——把多步 TD 误差按 (γλ)l 加权;GRPO 则完全去掉 critic,用组内统计量作基线。
MDP 五要素 TD 误差 Q-Learning Actor-Critic GAE·λ
《Agentic AI 指南》中文版 v1.1.0·Part I 基础p121-132
II
PART II · RL FOR LLMs · p132-246

面向大语言模型的
强化学习方法

完整的「面向 LLM 的 RL」工具箱:从 PPO 的逐步推导,到 DPO、GRPO 与 20+ 种对齐算法;从奖励模型到大规模基础设施,再到轨迹级的智能体训练。

CH 04LLM 的强化学习基础p134
CH 05PPO——近端策略优化p137
CH 06DPO——直接偏好优化p145
CH 07GRPO——组相对策略优化p158
CH 08偏好优化变体p173
CH 09奖励模型训练p181
CH 10SFT 最佳实践与技巧p189
CH 11大规模系统架构与基础设施p197
CH 12LLM 智能体训练p220
PPO Clip DPO 推导 GRPO 组基线 3D 并行
PART II · CH 04书 p134-136RLHFRLVR

大语言模型的强化学习基础RL PARADIGMS · MDP · RLHF PIPELINE

SFT 教模型模仿,天花板是训练数据本身;RL 让模型超越示范。本章把文本生成建模为 MDP,再走通 RLHF 流水线:SFT → 奖励模型 → RL 优化。

3 阶段RLHF 流水线 SFT→RM→RL
32K–128K每步候选 token(action 空间)
γ = 1.0episode 有限,无需折扣
0DPO 所需 reward 模型数
01范式一 · 偏好对齐(RLHF/DPO)
人类两两比较训练 reward 模型,再优化 policy;DPO 取消 RM,把偏好变成有监督 loss。目标:有用、无害、诚实。
02范式二 · 可验证奖励(RLVR)
reward 来自可验证结果:答案正确性、测试通过。DeepSeek-R1 用规则 reward + GRPO 训出 CoT 推理。
03文本生成 = MDP
State=已生成前缀;Action=词表中取 token;transition 确定性追加;reward 在序列末稀疏给出。
④ 评估与迭代 偏好数据 y_w ≻ y_l 人类两两比较 ① SFT 监督微调 base 模型 · 高质量示例 ② 奖励模型训练 Bradley-Terry → R_φ(x,y) ③ RL 优化 PPO / GRPO KL 约束到 π_SFT 生成回答 reward 信号 KL 锚 · 防 reward hacking RLVR 变体 SFT→推理轨迹 · RM→验证器(规则 reward:格式 + 答案正确性) · 阶段 ③ 不变
图 4.1 · RLHF 流水线:偏好比较训练 RM,PPO 优化 policy 并以 KL 锚在 π_SFT 附近;RLVR 把 RM 换成验证器,无需人类偏好数据
关键洞察LLM 本身已是 policy——Softmax 输出即 πθ(a|s),无需另建策略网络,只调 θ 即可。
两大范式 MDP 映射 SFT 奖励模型 RL 优化
《Agentic AI 指南》中文版 v1.1.0·Part II · RLHFp134-136
PART II · CH 05书 p137-144PPOε = 0.2

PPO:近端策略优化PROXIMAL POLICY OPTIMIZATION

朴素策略梯度一次坏 batch 就可能崩溃。PPO 用一阶 clipped 目标复现 TRPO 的稳定性,实现简单 10×——GPT-4 与 Claude 背后的主力算法。

01动机与六步推导
TRPO 需昂贵二阶优化;PPO 一阶 clip 简单 10×,同样稳定。链:RL 目标→策略梯度→重要性采样→失控→clip。
L = L_CLIP − c1·LVF + c2·H[π]
L_CLIP = E[ min(r·Â, clip(r, 1−ε, 1+ε)·Â) ]
ε = 0.2 · c1 = 0.1 · c2 = 0.01
— value loss 亦被 clip · 熵奖励保探索
02Rollout Buffer 生命周期
收集→训练(3–10 epoch)→清空;旧数据过期。KL 惩罚 R=r_RM−0.05·mean_KL 只在末 token。
① ROLLOUT · 60–70% 时间 ② 优化 · 3–10 epoch Actor πθ 实时网络 · 逐 token 生成 Reference πref 冻结 · 提供 KL 锚 Rollout Buffer (s, a, log π_old, r, V) Reward R_φ 对 (x,y) 打分 Critic V_ψ GAE → Â PPO 更新 clip ε = 0.2 mini-batch 16 KL 惩罚 θ→θold · buffer 清空 · 新 rollout
图 5.1 · PPO-RLHF 循环,四模型各就其位:Actor 生成、Reference 锚 KL、Reward 打分、Critic 估优势;每周期 buffer 清空,θ→θold 归位
关键超参典型值设错的影响
cliprange0.2过低学不到东西 · 过高不稳定
init_kl_coef0.01–0.1过低 reward hacking · 过高卡在 SFT
ppo_epochs4过多过拟合 · 过少浪费生成算力
learning_rate1–5×10⁻⁶过高:灾难性遗忘
TRPO clip ε=0.2 重要性采样 Buffer 四模型循环
《Agentic AI 指南》中文版 v1.1.0·Part II · PPOp137-144
PART II · CH 06书 p145-149免 RMβ=0.1

直接偏好优化DPO · SKIP RL, LEARN FROM PREFERENCES

DPO 从 RLHF 目标的解析解出发,把「reward 最大化 + KL 惩罚」变成偏好对上的监督 loss:4 个模型变 2 个,跳过 RL 与在线采样,回到稳定监督学习。

  • RLHF 目标:max E[r] − β·D_KL
  • 最优解 π* ∝ π_ref·exp(r/β)
  • 重排解出 reward r
  • 代入 Bradley-Terry,Z(x) 抵消
  • 得 L_DPO(6.1)
01动机:跳过 RL
PPO 需在显存维持 4 个模型(policy、reference、reward、value)+ RL 基础设施,且不稳定。DPO:最优 policy 有解析解,直接改写成监督 loss。
02Loss 与隐式奖励
隐式奖励 r̂ = β·log(πθ/π_ref)。loss 是偏好对上的交叉熵:「标签」= 被选奖励须高于被拒;训练后 margin 稳定在约 1/(2β)。
03β 的作用
β 小 → 约束弱,更新更激进,但梯度 ∝β 变小、收敛慢;β 大 → sigmoid 饱和、梯度归零。从 0.1 起步,在 [0.05, 0.5] 内调。
PPO · 四模型并存 RL · 不稳定 Policy πθ · actor Reference π_ref · KL Reward 模型 r(x,y) Value head V(s) rollout policy 生成 rollout → reward 打分 → value 估优势 reference 提供 KL 约束,防止 policy 漂移 显存:4 份模型副本 + RL 基础设施 · 以不稳定著称 跳过 RL 4 → 2 DPO · 双模型 监督式 · 稳定 Policy πθ · actor Reference π_ref · 冻结 log πθ(y|x) log π_ref(y|x) L_DPO = − log σ( β·h ) h = 对数比之差(被选 − 被拒) 隐式奖励 r̂ = β·log(πθ/π_ref) · 无 rollout
图 6.1 · PPO 四模型管线 vs DPO 双模型管线:去掉 reward 模型与 value head,冻结的 reference 只提供对数概率基线,训练退化为一次监督学习
标签掩码梯度只落在补全 token 上:prompt 与 padding 无梯度;被选 token 全被推高、被拒 token 全被压低;序列级对数概率逐 token 求和而非求均值(6.3)。
PPO 痛点 解析最优解 BT 代入 隐式奖励 标签掩码
《Agentic AI 指南》中文版 v1.1.0·Part IIp145-149
PART II · CH 06书 p148-157β 指南8 变体

DPO 陷阱与变体家族PITFALLS · BETA GUIDE · VARIANT FAMILY

DPO 简单但陷阱密布:不掩码的 prompt、均值代求和、过期的 reference 都会静默失败;八个变体针对各自的失败场景对症下药。

0.05激进 · 数据好,要明显改进
0.1标准 · 默认起点,质量稳定性平衡
0.2保守 · 噪声多或已近期望行为
0.5非常保守 · 安全微调,保住能力
01陷阱 · 忘记掩码 prompt
prompt token 混入求和 → 优化「prompt 似然」(无意义),有效 β 也算错。
02陷阱 · 均值代求和
长回答对数概率天然更低;均值与求和隐式长度惩罚不同,πθ 与 π_ref 必须一致。
03陷阱 · reference 过强/过弱
base 对微调模型相距过远 → KL 主导、梯度消失,应改用 SFT checkpoint;过强 policy 动弹不得,过弱失去正则化。
变体核心改动解决的失败场景
f-DPOf′ 替换对数比,推广 f-散度反向 KL 寻峰,多样性差
Robust DPO(1−ε)L(w,l)−εL(l,w) 除以 1−2ε标签噪声、标注翻转
TR-DPOEMA 周期更新 reference,α 混入 policyreference 过期,KL 主导早平台
EXO对调 πθ 与 π_ref 角色,纠正反向 KLloss 实为前向 KL,方向错
NCA加绝对似然项,防被选概率同跌似然崩塌:被选也被压低
SLiC-HFhinge 损失 max(0, δ−margin)大 margin 时 log-sigmoid 收敛慢
Iterative RPO被选上加 NLL:λ1·L_DPO+λ2·L_NLL会判别不会生成,推理退化
SimPO免 reference:β/|y|·log πθ + margin γreference 显存翻倍、复杂
驱逐 referenceπ_ref 全程静止:预计算 reference 对数概率、缓存磁盘后逐出 → 显存腾出,B_micro 1-2→4-8,70B 约省 140GB。
常见陷阱 β 选择 预计算 ref 变体家族 免 ref SimPO
《Agentic AI 指南》中文版 v1.1.0·Part IIp148-157
CODE6.5.7 伪代码 + 6.8.4 · 书 p148-151Pythontorch · trl

DPO 训练步:两条序列一个 lossPOLICY / REF · IMPLICIT REWARD · LOGSIGMOID

书 6.5.7 的 PyTorch 风格伪代码:policy 对 chosen/rejected 各算一次序列对数概率,ref 在 no_grad 下给基线,β 缩放差值进 logsigmoid——DPO 的全部数学就这几行。

def dpo_loss(model, ref_model, batch, beta=0.1):
    # ① batch:chosen/rejected 两条序列,prompt 掩为 -100
    logps_chosen   = get_sequence_logprob(model, batch["chosen"])
    logps_rejected = get_sequence_logprob(model, batch["rejected"])
    with torch.no_grad():                ② 参考模型:预计算或在此计算
        ref_logps_chosen   = get_sequence_logprob(ref_model, batch["chosen"])
        ref_logps_rejected = get_sequence_logprob(ref_model, batch["rejected"])
    chosen_rewards   = beta * (logps_chosen - ref_logps_chosen)      ③ β 乘在 logp 差上
    rejected_rewards = beta * (logps_rejected - ref_logps_rejected)
    loss = -F.logsigmoid(chosen_rewards - rejected_rewards).mean()
    return loss

def get_sequence_logprob(model, sequences):
    """仅在回答 token 上求和的对数概率。"""
    outputs = model(sequences["input_ids"], attention_mask=sequences["mask"])
    logits = outputs.logits[:, :-1, :]   ④ 为 next-token 预测做位移
    labels = sequences["labels"][:, 1:]  # 位移后的标签
    log_probs = F.log_softmax(logits, dim=-1)
    token_logps = log_probs.gather(-1, labels.unsqueeze(-1)).squeeze(-1)
    mask = (labels != -100).float()      ⑤ 只对回答 token 求和
    return (token_logps * mask).sum(dim=-1)  # 形状:[batch_size]
①两条序列同批一次前向
prompt 与回答拼成 [x; yw]、[x; yl] 两条序列,同批一次前向同时得到两个 logp——省一半调度。
②ref 冻结:预计算后驱逐
πref 全程静态:开训前整库前向一次缓存参考 logp,训练中将其驱逐出显存——70B 省约 140GB。
③β 的位置与取值
β·(log πθ−log πref) 即隐式 reward;β 过大梯度饱和、过小更新莽撞——0.1 起步。
④⑤位移与 -100 掩码
logits 去尾、labels 去头,对齐 next-token;另记得 -100 掩掉 prompt 段,只对回答计 loss。
运行precompute_ref_log_probs=True;TRL DPOTrainer 直接吃 chosen/rejected 两列数据即可训练。
成对 batch no_grad ref β·Δlogp -100 掩码
《Agentic AI 指南》中文版 v1.1.0·Part II · 代码p148-151
PART II · CH 07书 p158-160TRL 默认DeepSeek-R1

组相对策略优化GRPO · GROUP RELATIVE POLICY OPTIMIZATION

DeepSeek 在 DeepSeekMath 提出、R1 放大:不训练 critic,对同一 prompt 采 G 条响应,以组内 reward 统计量作基线——显存去掉一整个模型,往往还优于 PPO。

01动机:去掉 critic
70B 的 value head 占 140GB;部分序列价值难预测;早期信号嘈杂、破坏稳定。
02机制:组内归一化
采 G 条响应,Â=(r−µG)/σG:组均值即 value 的蒙特卡洛估计,强化高于均值者。
03适用场景与 TRL
可验证奖励与 70B+ 模型;TRL:num_generations=8 · beta=0.04 · use_vllm=True。
prompt x 同一道数学题 y₁ · 答对 r=1 y₂ · 答错 r=0 y₃ · 答对 r=1 y₄ · 答对 r=1 y₅ · 答错 r=0 G = 5 条响应 · 高温采样 τ = 1.0 组内归一化 Â = (r − µG) / σG µG = 0.6 作基线 Â>0 强化 ×3 Â<0 抑制 ×2 PPO 式 clipped 更新 − β·DKL
图 7.1 · 组采样:G=5 条,µG=0.6 作基线;组内须有对有错(prompt 过滤至 20-80% 通过率)
组大小 G信号质量使用场景
4中等快速实验(通过率>50%)
8良好(标准)默认,多数任务的良好平衡
16极佳困难任务(通过率<20%)
去掉一整个模型工程复杂度减半,效果反而常常更好——经验基线比训练不充分的 value function 更准确。
无 critic 采样 G 条 组归一化 clipped 更新 R1 涌现
《Agentic AI 指南》中文版 v1.1.0·Part II 对齐p158-160
PART II · CH 07书 p162-17211 个变体TRL loss_type

GRPO 变体动物园DAPO · GSPO · CISPO · GOPO · …

基础 GRPO 暴露四类失败:预训练偏差稀释梯度、对称 clipping 限制探索、组大小浪费、多目标 reward 失衡——变体家族逐一击破,TRL 大多 loss_type 一键切换。

变体解决什么关键机制何时用
DAPO对称 clip 限探索;全对全错组零梯度Clip-Higher εhigh=0.28 · token 级 loss · 动态采样长推理;GRPO 不稳定时首选
GSPOoff-policy 下逐 token ratio 乘积爆炸(1050)序列级几何平均重要性采样,整序列只 clip 一次steps_per_generation>1
Dr. GRPO预训练常见 token 稀释梯度按 (1−πref) 降权,聚焦有信息 token(需 ref_model)词表分布严重不匹配
2-GRPO大 G 生成算力浪费G=2,隐式 DPO 式对比;生成省 8×、端到端 4-6×通过率适中的推理任务
SAPO硬 clip 的梯度悬崖效应sigmoid 软门控,温度 τ±=1.0/1.05;τ→0 回 PPOclip 边界训练不稳
TIS / MISvLLM 与训练前向概率不匹配截断修正(C=5)/ 超阈整条置零(C=3)用 vLLM 生成时建议常开
VESPO启发式改 clip 缺乏原理变分核:平滑、非对称、指数衰减陈旧轨迹异步 / off-policy 训练
DPPOratio clip 对低概率 token 过罚直接 TV/KL 散度做信赖域(binary/topk mask)研究阶段;概率高度偏斜任务
CISPO组内基线不稳,单一 prompt 主导batch 级 reward 缩放 + token 级 loss 协同大规模 RL 推荐默认(ScaleRL)
GDPO高方差 reward 主导,advantage 坍塌每项独立归一化,再按权重 wn 聚合多目标(正确性+格式)
GOPORM 绝对分数幅度无意义只用组内序数 rank 作 advantage,对单调变换不变不可验证奖励(摘要/聊天)
选型速记可验证奖励→GRPO/DAPO;主观 RM 任务→GOPO;off-policy→GSPO/VESPO;开 vLLM→TIS/MIS;大规模→CISPO。
DAPO GSPO 2-GRPO CISPO GOPO
《Agentic AI 指南》中文版 v1.1.0·Part II 对齐p162-172
CODE7.3 TRL 实现 · 书 p159-160Pythontrl · vLLM

一个 GRPOConfig 展开整个组G=8 · TEMPERATURE 1.0 · REWARD FUNCS

书 7.3 最小可运行示例:每条 prompt 采 8 条响应、组统计量当 baseline,critic 从显存中消失;reward 就是一个普通 Python 函数。

from trl import GRPOConfig, GRPOTrainer
model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen2.5-7B-Instruct", torch_dtype=torch.bfloat16,
    attn_implementation="flash_attention_2")
grpo_config = GRPOConfig(
    num_generations=8, temperature=1.0,   ① G=8 · 高温保组内多样
    max_completion_length=2048, beta=0.04, ③ KL 惩罚系数
    learning_rate=1e-6,
    per_device_train_batch_size=2,        ② 每设备 2 prompt ×8 = 16 响应
    use_vllm=True)                        ④ 8 倍生成,速度至关重要

def reward_fn(completions, prompts, **kwargs):  ⑤ Python 函数即 reward
    """返回 float 列表:正确为 1.0,错误为 0.0。"""
    rewards = []
    for completion, prompt in zip(completions, prompts):
        answer, expected = extract_answer(completion), get_ground_truth(prompt)
        rewards.append(1.0 if answer == expected else 0.0)
    return rewards

trainer = GRPOTrainer(model=model, args=grpo_config,
    reward_funcs=[reward_fn, format_reward_fn],  ⑤ 可组合多个,多目标
    train_dataset=math_dataset, tokenizer=tokenizer)
trainer.train()
①②配置如何展开一个组
每条 prompt 采 G=8 条响应,每设备 2×8=16 条进 batch;组均值当 baseline,critic 从显存消失。全对/全错则 advantage 全 0——温度 1.0 就是为组内留差异。
③β=0.04:KL 只当护栏
KL 项是防模式坍塌的主要多样性机制,不是学习信号本体——信号来自组内归一化 advantage,所以这个系数默认设得很小。
④生成是开销大头
GRPO 每步要为每条 prompt 生成 8 倍响应,速度至关重要;use_vllm 把生成引擎换成 vLLM(书中配 0.7 的显存占用),训练才跑得动。
⑤签名决定接入方式
reward 函数收 (completions, prompts, **kwargs)、返回 float 列表;reward_funcs 可并列多个(正确性+格式),多目标各算各的、直接相加。
运行pip install trl · 一行启动:trainer.train();预期:日志 reward 均值逐步上升——组内高于均值的响应 advantage 为正、低于均值为负。
G=8 组采样 τ=1.0 多样 β=0.04 KL reward 函数
《Agentic AI 指南》中文版 v1.1.0·Part II 对齐 · 代码p159-160
PART II · CH 08书 p173-180Online DPOKTOBest-of-N

偏好优化变体ONLINE DPO · KTO · IPO · ORPO · BEST-OF-N

五种变体各补 offline DPO 一块短板:Online 消分布偏移,KTO 凭前景理论只吃二值反馈,IPO 锁死 margin 抗过拟合,ORPO 免参考模型,Best-of-N 零训练成强基线。

-50%ORPO 显存:免参考,70B 省 70-140GB
1/2βIPO 目标 margin(DPO 最优在 ∞)
+15-20%Best-of-N N=64 胜率 vs greedy
λl > λwKahneman-Tversky 前景理论:损失厌恶
方法所需信号reference 模型何时选
Online DPO每步从 πθ 新鲜采样,RM 打分取最高/最低成 pair要 · 3 模型DPO 停滞、需要 on-policy 探索
KTO未配对点赞/点踩(label true/false)要 · 2 模型生产二值反馈、类别不平衡、噪声标签
IPO离线成对偏好(与 DPO 同格式)要 · 2 模型噪声数据、多 epoch、DPO 过拟合
ORPO离线 pair,chosen 需高质量不要 · 1 模型显存受限、从 base 一步 SFT+对齐
Best-of-NRM 给 N=4-64 条候选打分,取最优不要 · 1+RM最强基线、RFT 迭代造数据
扩展律与基线N=4→256 胜率 +5-8%→+18-22%,边际递减;同预算下 PPO 若打不过 Best-of-N,你的 PPO 有 bug。
在线 DPO KTO IPO ORPO Best-of-N
《Agentic AI 指南》中文版 v1.1.0·Part II 对齐p173-180
PART II · CH 09书 p181-188Bradley-TerryPRM/ORMRLVR

奖励模型训练BRADLEY-TERRY · PRM VS ORM · RLVR · LISTWISE

奖励模型把人类偏好变成 RL 训练信号,训练不佳就是奖励黑客的源头:BT 成对推导定框架,PRM 逐步打分补稀疏,RLVR 用规则防作弊,PL 列表排序补校准。

1标量回归头(num_labels=1)换下 LM 头
0.01center_rewards_coefficient 奖励中心化
K=4-8listwise 训练常用列表长度
κ > 0.6标注者一致性,质量过滤阈值
01Bradley-Terry 推导
P(y_w≻y_l)=σ(r_w−r_l);MLE 即二元交叉熵,「正类」=偏好回答。前提:传递性·标量奖励·仅依赖分差·成对独立。
02架构与训练技巧
LM 头换标量回归头,末 token/[CLS] 池化。奖励中心化稳训练,margin m 保间隔;长度归一化·受控训练·校准治长度偏置。
03RLVR 与多目标组合
数学/代码/格式用确定性规则,显著减少 reward hacking(DeepSeek-R1);组合:加权求和、先归一化再求和(GDPO)、字典序。
ORM · 结果奖励 Outcome Reward · 只看最终答案 prompt 步骤 1 步骤 2 步骤 3 最终答案 r ∈ {0, 1} 整条链只有 1 个信号:稀疏 · 信用分配难 · 较易被 reward hacking · 标注成本低 PRM · 过程奖励 Process Reward · 每步都打分 prompt 步骤 1 步骤 2 步骤 3 最终答案 r₁ r₂ r₃ … 0.9 0.7 0.4 1.0 逐步增量信号:稠密信用分配 · 较难被攻击 · 标注贵——蒙特卡洛 rollout / LLM-as-judge / 形式验证器 PBRS 势函数 Φ(s)= 部分得分塑形奖励,理论上保留最优策略 ORM 适合简单任务 情感 / 毒性 / 事实性——成本低,已经够用 PRM 适合多步推理 数学 / 代码 / 逻辑,还可作 beam search 步骤分
图 9.1 · ORM 只在链尾给一个 0/1 信号;PRM 逐步打分,信用分配稠密但标注成本高
Listwise 排序Plackett-Luce 是 BT 的严格推广(K=2 退化回 BT);一次排序含 C(K,2) 个隐式对、学到绝对尺度,与 GRPO 分组天然契合。
BT 模型 RM 架构 PRM/ORM RLVR Listwise
《Agentic AI 指南》中文版 v1.1.0·Part II 对齐p181-188
PART II · CH 10书 p189-196Packingpass@k

SFT 最佳实践PACKING · CHAT TEMPLATE · MASKING · MIXING

SFT 是 RLHF 的地基:RL 只能放大已有行为,无法引入 SFT 中完全不存在的能力——打包、掩码与数据混合决定这条上限。

85-95%序列打包效率(padding 仅 20-50%)
2-4×长方差数据集的打包加速比
T≈2多任务温度混合 · 对小数据集过采样
1-3指令微调 Epoch 已足够,过训降多样性
01序列打包 Sequence Packing
pad 到最长序列浪费 50-80% 计算;多条样本拼成 max_seq_length 单序列,块对角 mask 防跨样本污染。
02Chat 模板 · 补全掩码
推理用错模板性能显著下降;completion-only masking 把非 assistant token 的 loss 置零——多轮须 mask 所有非 assistant 轮次。
03遗忘 vs 对齐税
遗忘=权重被覆盖:回放 5-10% 预训练数据、LoRA、学习率 1-5×10⁻⁶;对齐税=知识被 KL 抑制:调 β∈[0.05,0.3]。
同一 batch · 长度方差大 样本 A · 短指令 样本 B · 长文档 样本 C · 中等 ① 按长度排序(提升打包率) ② 贪心装进 max_seq_length 的 bin ③ 块对角 attention mask ④ 仅非 padding token 计算 loss 块对角 Attention mask 块内互 attend,块间禁止 · 防交叉污染 prompt assistant·loss prompt assistant·loss prompt loss pad 样本 A 样本 B 样本 C padding prompt / system → loss 置零 assistant → 计算 loss EOS 分隔条
图 10.1 · 序列打包与补全掩码:多条样本拼进一个 max_seq_length 序列,块对角 mask 禁止跨样本 attention,loss 只落在 assistant 段
SFT 质量决定 RL 上限SFT 解对 10% 的题,RL 可推至 80%;解对率 0% 则 reward 全零、优势全零、无梯度。RL 前先测 pass@k:pass@1<5% 大概率失败。
pad 浪费 序列打包 补全掩码 数据混合 RL 上限
《Agentic AI 指南》中文版 v1.1.0·Part II · SFTp189-196
CODE10.1 + 10.3 · 书 p189-191Pythontrl

SFT 两开关:打包与掩码PACKING · COMPLETION-ONLY LOSS

书第 10 章两件套:packing 收回浪费在 padding 上的 50-80% 算力,completion-only mask 把 gradient 聚焦到 assistant 回应——一个管效率,一个管信号。

from trl import SFTConfig, SFTTrainer, DataCollatorForCompletionOnlyLM
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B-Instruct")

def formatting_func(example):                    ① chat 模板拼接对话
    messages = [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": example["instruction"]},
        {"role": "assistant", "content": example["response"]}]
    return tokenizer.apply_chat_template(messages, tokenize=False)

response_template = "<|start_header_id|>assistant <|end_header_id|>"
collator = DataCollatorForCompletionOnlyLM(      ② 此 token 后才开始算 Loss
    response_template=response_template, tokenizer=tokenizer)

config = SFTConfig(
    max_seq_length=4096,
    packing=True,                                ③ 启用序列打包
    per_device_train_batch_size=4, learning_rate=2e-5)
trainer = SFTTrainer(model=model, args=config, train_dataset=dataset,
    data_collator=collator,                      ④ 仅对 completion 计算 Loss
    formatting_func=formatting_func)
trainer.train()
①模板先于训练
模型在模板化后的 token 流上学习:模板定义对话角色边界——模板错了,训练数据就错了。
②模板串是分界线
collator 在序列中精确匹配 response 模板串,其后的 assistant token 才计入 loss。
③把 padding 的钱赚回来
长短混合时 50-80% 计算浪费在 padding;packing 以 EOS 分隔拼满 4096,填充率 85-95%。
④为何 mask prompt
prompt 段 loss 置 -100:教模型回应而非背题;极短回答场景需保留部分 prompt 信号。
运行TRL SFTTrainer:packing=True + response_template 自动掩码;预期训练 loss 平稳下降。
chat 模板 -100 掩码 packing 2-4× 提速
《Agentic AI 指南》中文版 v1.1.0·Part II · SFT · 代码p189-191
PART II · CH 11书 p197-205TP≤8ZeRO-3

大规模并行策略DP · TP · SP · PP · FSDP · DILOCO

RLHF 是系统工程题:四个模型同驻显存、训练循环摊到数百卡——沿四个本质不同的维度切分,再按通信层级组合起来。

1470-1560GB · 70B PPO 四模型显存合计
19-20块 A100-80GB · 朴素方案下限(ZeRO-3 为 8 节点)
≤8TP 度上限 · 每层 2 次 AllReduce 只付得起 NVLink
236×解耦 DiLoCo 跨数据中心带宽降幅
01四模型显存挑战
policy、reference、reward、value head 同驻显存:合计 1470-1560GB;FSDP/ZeRO-3 后 8 节点即可装下。
02TP 与 SP
权重按列/行切,每层 2 次 AllReduce——仅限节点内;SP 复用同一通信零开销,省 LayerNorm/Dropout 激活 59GB/GPU。
03PP 气泡与 FSDP
气泡≈(P−1)/(M+P−1),M≥10(P−1) 才 <10%;PP 仅 100B+ 最后手段。FSDP 全分片每卡 140GB,通信为 DDP 的 3×。
张量并行 TP AllReduce ×2/层 W₀ W₁ W₂ GPU0 GPU1 GPU2 权重按列(或行)切成 T 份 每卡独立算 XWᵢ,输出拼合 每层 2 次 AllReduce → 限节点内 TP≤8 · 70B 训练必备 · 开销 12-18% 流水线 PP 气泡 (P−1)/(M+P−1) stage 0 层 0-23 stage 1 层 24-47 stage 2 层 48-79 点对点传激活 · M≥10(P−1) 时气泡 <10% · 1F1B 生产标准 数据并行 DP / DDP 梯度 AllReduce 完整模型 batch 0 完整模型 batch 1 完整模型 batch 2 ring AllReduce · 与反向重叠 每卡存完整模型+优化器 · ~64 卡内近线性 · >7B 直接上 FSDP FSDP / ZeRO-3 全分片 AllGather + ReduceScatter 1/N 1/N 参数·梯度·优化器全切 1/N 算前 AllGather 重建,算完即弃 通信 3× DDP · 70B 每卡 140GB >13B 默认 · 数百 GPU
图 11.2 · 四种并行怎么切:TP 切权重列/行、PP 切层成 stage、DP 复制模型分数据、FSDP 全分片按需重建——生产系统常组合 2-3 种
跨数据中心:解耦 DiLoCo每 H 个本地步才同步一次外部更新(异步、可压缩):12B 模型经 2-5 Gbps 互联网跨 4 个区域训练,带宽省 236×、比异步 SGD 快 20×、质量持平。
显存预算 TP·SP PP 气泡 FSDP DiLoCo
《Agentic AI 指南》中文版 v1.1.0·Part II · 基础设施p197-205
PART II · CH 11书 p206-219MFUβ2=0.95

基础设施:瓶颈·成本·容错BOTTLENECK · COST · FAULT TOLERANCE

生成被显存带宽卡死,训练看 MFU;数值稳定是 RL 的隐形地基——FP32 master 权重与梯度裁剪缺一即崩。

1 F/B自回归生成算术强度 · 低于 roofline 拐点 156×
0.6%batch=1 生成 FLOPs 利用率——GPU 在等显存
>40%训练 MFU 目标(LLaMA-70B 实测 45%)
$7,50070B 完整对齐成本(10K 步·64 卡·重叠后)
方法LR调度要点
DPO5e-7常数 · 50 步 warmupβ=0.1 · 1 epoch
PPO policy1e-6常数 · 20 步 warmup自适应 KL · target 6
PPO critic1e-6常数与 policy 同步
GRPO1e-6常数组基线 · 免 critic
AdamW · β1=0.9 · β2=0.95(二阶矩窗口 ~20 步) · ε=1e-8
max_grad_norm=1.0 · weight_decay=0(KL 惩罚即正则)
LR 比 SFT 小 10-100× · 临界 batch Bcrit ≈ 1-4M token
01解耦式架构与权重同步
生成(带宽)与训练(算力)分集群:gen(N+1) 重叠 train(N)→加速 30-40%;同步滞后 50 步损失 <2%。
02数值稳定三件套
纯 BF16 必崩于 100-500 步——须 FP32 master;一步 ∥∇∥>50 未裁剪即毁,裁剪 1.0 绝不关;恒定调度保响应。
03容错与诊断
512 卡每 4-8 小时一遇故障,checkpoint 每 50-100 步异步存(<1s);reward 升后崩→LR 降 2-5×,KL>15 nat→降 10×。
MoE 在 RL 中同算力容量 ×3-4、对 reward 模型尤其有利;但专家 all-to-all 通信与 PP 冲突。GRPO+MoE 相性佳——生成成本由激活参数主导。
生成瓶颈 解耦 权重同步 数值稳定 MoE
《Agentic AI 指南》中文版 v1.1.0·Part II · 基础设施p206-219
PART II · CH 12书 p220-230GRPOMCTS

LLM 智能体训练AGENT RL · TRAJECTORY BUFFERS · PARADIGMS

标准 RLHF 只优化单轮应答;自主智能体要跨 10–100+ 次工具调用规划,reward 稀疏且来自真实执行——轨迹缓冲区 e=(S,A,R,S′) 存下整条轨迹,再经三种范式转化为能力。

01轨迹缓冲区
Token 化文本替代张量:CoT 推理+结构化工具调用;规模 10³–10⁵ 条,状态 1K–128K token,reward 来自执行环境。
02范式 A · 自我纠正
失败轨迹生成显式文本批评;修正后入最优经验池,以 SFT 或 GRPO 更新权重。代表:STaR·Reflexion。
03范式 B · 离策略探索
自主探索数千条路径;成功过滤·效率排序·多样性采样,只在高质轨迹上算 Loss。代表:ReAct。
04范式 C · 经验 RAG
缓冲区作向量库,Top-k 成功经验注入 Prompt,零训练即时适配;罕见用检索,常见用 RL。
方法核心思想(一句话)信号来源
STaR迭代 SFT:在自身成功轨迹上自举推理;失败题以正确答案为条件「合理化」,3–5 轮收敛答案 / 测试正确性
Reflexion上下文 RL:语言式自我批评存入情节记忆(m≤3),零权重更新评估器二元成败
ReActPrompt 范式:单次生成内交错「思考」与「行动」;格式惩罚写入 reward环境观测(逐步)
LATS树搜索:动作序列上做 MCTS(UCB1)反向传播;WebShop 40%→75%终端 reward 反向传播
AgentQ离策略 RL:MCTS 产出多样轨迹,按 reward 构造偏好对做 DPO;WebShop 50%→82%同任务轨迹排序
Voyager技能库:存取已验证代码函数,检索组合复用,终身学习且单调改进环境执行验证
RLEF在线 RL:从执行反馈学习,r=通过测试数/总测试数,零 reward 噪声测试套件(确定性)
SWE-Agent / OpenHandsGRPO:每组 8–16 轨迹组归一化,解 GitHub Issue(15–50 动作);SWE-bench 30%→55%回归测试二元 reward
缓冲区 自我纠正 离策略探索 经验RAG GRPO
《Agentic AI 指南》中文版 v1.1.0·Part II 强化学习p220-230
PART II · CH 12书 p231-244POMDPGRPO

案例:副驾与研究 AgentPRODUCTIVITY COPILOT · RESEARCH AGENT

同一配方跑通两个用例:SFT 示范打底,模拟环境中 GRPO 在线强化,执行 reward 与人类反馈共同塑形——生产力副驾与研究 Agent。

  • SFT:50K–200K 示范轨迹
  • 构建模拟沙盒 · 任务课程
  • GRPO 在线 RL(N=8/任务)
  • 内测 1000+ 用户 · DPO 精调
01POMDP 形式化
动作=六应用 JSON API 调用;状态=工作区投影(部分可观测);γ=0.99 · 10–50 步。
02多目标 Reward
任务 .40·质量 .25·效率 .15·安全 .15·用户 .05;违规则安全项归零。
03模拟环境与课程
沙盒合成邮箱·日历·文档;L1 单步→L5 跨应用,成功率 >70% 晋级。
04安全护栏 · 信用分配
硬约束(外发·删除·改权限)拒并 −1.0;子目标各 +0.2,失败只罚断裂段。
用户 意图 · 反馈 副驾 Copilot RL 策略 πθ · LLM 思考 CoT + JSON 工具调用 γ=0.99 · 视野 10–50 步 生产力应用 API Outlook · 邮件 Excel · 表格 Word · 文档 PowerPoint · 幻灯 Teams · 消息 SharePoint · 存储 意图 预览 · 结果 JSON 动作 观测 · 截断 Reward:任务·质量·效率·安全·用户反馈 GRPO 组归一化(每任务 N=8)更新 πθ 训练于模拟沙盒:合成邮箱·日历·文档
图 12.2 · 生产力副驾(用例一):用户意图 → 策略 πθ → 六应用 API;执行 reward 经 GRPO 回流,端到端更新策略
05用例二 · 研究 Agent
GRPO N=4·γ=1.0;R=质量 .30+正确 .30+新颖 .15+效率 .15+格式 .10。示例:13 步实验 R=0.875,优势 +1.48。
06失败模式与教训
无限循环·调试螺旋·幻觉引用·过早提交·judge hacking;对策:步数预算、重试上限 3、引用验证、轮换 judge。
SFT 起步 模拟沙盒 GRPO 安全护栏 研究Agent
《Agentic AI 指南》中文版 v1.1.0·Part II 强化学习p231-244
III
PART III · REASONING · p247-271

推理

仅凭可验证的奖励信号,RL 就能教会模型推理本身——思维链、回溯与自我验证自发涌现。DeepSeek-R1-Zero 的「aha moment」与 OpenAI o1 证明了这一点。

CH 13面向大型推理模型的强化学习p248-271 · 测试时扩展 → R1 → RLVR
思维树 ToT R1-Zero 纯 RL RLVR 可验证奖励 过度思考
PART III · CH 13书 p249-257ToTMCTS

测试时计算扩展TEST-TIME SCALING · CoT → ToT → MCTS

推理即搜索:多步推理是在部分解构成的树上导航。测试时扩展(Test-Time Scaling)用推理算力换准确率——小模型多「想」几步,即可匹敌更大的模型。

01为何推理要不同的 RL
RLHF 对整段回答给单一标量:稀疏奖励、长时序、组合搜索三重困难;而数学/代码正确性可客观验证——奖励可自动计算。
02CoT:涌现 vs 训练
涌现 CoT(≥100B)脆弱、依赖 Prompt;RL 训练的更长、更具探索,自发「Wait, let me reconsider…」纠错——模型自身即搜索算法。
预算 <5× CoT · 自洽性 5–50× BoN+PRM · ToT 50–500× MCTS · R1/o1 准确率 测试时算力(推理 Token,log)→ 大模型(少思考) 小模型 × 更多思考 → 同一准确率 acc ≈ f(α·log Ctrain + β·log Ctest) · 式(13.1)
图 13.1 · 准确率随推理 Token 对数线性提升,小模型以更多思考追平大模型;预算选型区间据表 13.2(p257)
方法结构LLM 调用奖励信号最适用
思维链 CoT线性链1无简单—中等难度
自洽性 SC并行链 · 全并行N · T=0.7–1.0多数投票 = 隐式 ORM答案离散的数学题(GSM8K 74.4%)
Best-of-N + RM并行链N+1 / N+N·KORM / PRM有良好 RM;p=0.3,N=10 → 97%
思维树 ToT / 思维图 GoT树 BFS·DFS / DAG2kbdLLM 作判官24 点 74% vs CoT 4%;合并省 62%
蒙特卡洛树搜索 MCTS树 + 价值网络O(Nsim·d)价值网络 + Rollout困难证明、编程 · PUCT
步级束搜索 / Self-Refine前缀束 / 线性迭代O(kd) / 2T价值模型 / 自我评判正确性+流畅性 / 开放式生成
推理即搜索 自洽性 ToT·GoT MCTS 束搜索·精炼
《Agentic AI 指南》中文版 v1.1.0·Part III 推理p249-257
PART III · CH 13书 p257-269R1RLVR

R1 · o1 · 可验证奖励DEEPSEEK-R1 · O1/O3 · RLVR

DeepSeek-R1 两阶段全透明:冷启动 SFT + GRPO;可验证奖励(RLVR)下仅结果奖励即足以涌现推理——aha 时刻自然发生。

01R1-Zero:纯 RL 的顿悟
基座直接纯 RL 不稳(混语、重复循环),却涌现「Wait, let me reconsider…」自我纠正——aha 时刻纯由准确率目标涌现。
02奖励:可验证即足够
r = racc + 0.1·rfmt:SymPy/测试用例验答案,查 think/answer 标签;不用 PRM——PRM 反引入步级奖励黑客。
DeepSeek-V3 基座 671B MoE · 37B 激活 冷启动 SFT 数千条长 CoT GRPO RL 数学·代码 验证奖励 拒绝采样 + SFT 只保留正确解答 R1 最终 RL · 对齐 不加冷启动直接 RL → 混语、重复循环;涌现自我纠正(R1-Zero) 蒸馏数据 R1 生成链 → 过滤正确解答 → SFT 小模型(Qwen2.5 · Llama-3) R1-Distill:1.5B / 7B / 8B / 14B / 32B / 70B —— 蒸馏胜过小模型从零 RL:缺的是探索,不是表示
图:R1 训练流程(书 p259)· 上行主链自 DeepSeek-V3 至 R1;下行蒸馏分支产出 R1-Distill 系列
03GRPO:组相对策略优化
每题采 G=8 答,优势 Âi=(ri−μr)/σr 组内归一化;clip+KL 罚;全对/全错组零梯度——自然聚焦能力前沿。
04R1-Distill 蒸馏
R1 生成→过滤→SFT 小模型(1.5B–70B);7B 蒸馏胜过 7B 从零 RL——小模型缺探索,不缺表示。
05OpenAI o1 / o3
隐藏推理 token 不展示:无格式约束、无风格作弊;据信 PRM+ORM;AIME'24 83%(GPT-4o 13%)、o4-mini 93%。
06QwQ / Qwen 多阶段 RL
基座→SFT→拒绝采样 RFT→GRPO 两阶段 RL;比纯 RL 稳、比纯 SFT 强;推理链内调 Python 工具验证。
07Journey · Quiet-STaR
Journey Learning 连失败与纠正一起训练(负样本+纠错);Quiet-STaR 每 token 位置思考,代价 ×(Lz+1)。
08过度思考与算力权衡
链过长误差累积,准确率 U 形;思考占比按难度 30%/80%/95%;训练与测试算力可互换,最优占比 α/(α+β)。
R1-Zero aha 时刻 GRPO R1-Distill o1·RLVR
《Agentic AI 指南》中文版 v1.1.0·Part III 推理p257-269
IV
PART IV · EVALUATION · p272-287

评估

测量前面一切是否真的有效:从 BLEU 到 Pass@k,从 ELO 排名到 LLM-as-Judge——以及当指标成为目标时,如何被 Goodhart 定律背叛。

CH 14LLM 评估p273-287 · 指标 → Judge → 陷阱
合成评测数据 Pass@k LLM-as-Judge 基准污染
PART IV · CH 14书 p274-284Pass@kELO

评估数据与指标TAXONOMY · SYNTHETIC DATA · METRICS · RANKING

评估 LLM 难在:输出空间无界、质量多维、评估本身也是语言任务。先定方案再采数:分类法定测量,合成数据补规模,指标跟着任务类型走。

2,294SWE-bench 任务·12 个 Python 仓库
~43%SWE-bench Verified 最佳开源(人类 ~87%)
812WebArena 任务·5 个 Web 应用
35–45%WebArena SOTA(人类 ~78%)
01评估类型分类法
三个轴:内在(困惑度·BLEU·pass@k)vs 外在(系统效用);自动 vs 人工;基于参考 vs 无参考。内在快速迭代,外在终验。
02人工标注流水线
五阶段:任务定义→规范→招募培训→金标质控→聚合。Cohen's κ(2 人)/Fleiss' κ(多人)修正偶然一致:>0.6 可接受,>0.8 强。
03合成评估数据
Self-Instruct 从 175 种子自举,ROUGE-L>0.7 去重;Evol-Instruct 深度/广度演化;CAI 依宪法批评修订,免标有害内容。
任务代表指标人类相关
翻译BLEU:n-gram 精度+简短惩罚 BP低–中
摘要ROUGE:召回导向,L 用 LCS中
通用 NLGBERTScore:上下文嵌入+IDF高
语言模型困惑度 PPL:同分词才可比低
代码生成Pass@k:n=200 样本无偏估计极高
AgentTSR · 轨迹效率 η=L*/L · 工具调用 TUAOracle
04排名系统
ELO:400 分差=10:1 胜率(Arena 用 K=4,Bootstrap CI);BT:最大似然,全量历史优于顺序 ELO;TrueSkill:高斯 μ/σ 量不确定性。
基准方法论SWE-bench:issue+仓库→生成 patch→跑测试套件,%Resolved 为指标;WebArena:沙箱浏览器,按应用状态/URL/程序化脚本判定。
分类法 标注 κ 合成数据 Pass@k ELO 排名
《Agentic AI 指南》中文版 v1.1.0·Part IV 评估p274-284
PART IV · CH 14书 p284-288G-EvalBIAS

LLM-as-Judge 与评估陷阱JUDGE · POSITION BIAS · G-EVAL · PITFALLS

评估本身也是语言任务:强模型当裁判可规模化,却自带位置与冗长偏置。交换顺序、面板投票、概率加权可校正;污染与 Goodhart 仍在腐蚀评估。

01三种评判格式
点评式:按有用·准确·清晰打 1–10 分,先理由后分数;成对:恰好输出 [[A]]/[[B]]/[[C]];参考引导:附参考答案,适合事实型。
02位置偏置与缓解
系统性偏好首位/末位,可达 10–15 个百分点;冗长偏置同理。交换 A/B 顺序评判:一致才采纳、否则记平局,辅以集成与强制 CoT。
03多评判者面板
跨模型家族 J 位裁判多数投票。三人面板:全体一致=高置信,2–1 分裂=中置信,三方平局=低置信。
指标验证评判者是否可靠
一致率与人类标注一致的样本比例
Cohen's κ偶然修正一致率;κ>0.6 且一致率>80% 即可靠
Spearman ρ · Kendall τ与人类分数的秩相关,适合序数评分;τ 对平局更鲁棒
04G-Eval:概率加权评分
先 CoT 生成评估步骤;对 1–5 各分值读 logP(s),概率加权取期望并归一化 [0,1]——保留不确定性,相关性优于直接提示。
05基准污染
评估数据混入训练集即分数虚高。检测:n-gram 重叠、成员推断、金丝雀串、时间留出;缓解:私有测试集+定期刷新。
06对基准过拟合
反复评估与调参泄漏基准信息(自适应过拟合);MMLU 已近饱和——新基准只是临时信号,非永久金标准。
07其他陷阱
Prompt 敏感性、聚合伪影、标注者选择偏差、评估—部署失配:基准干净,生产嘈杂多轮即退化。
Goodhart 定律「当一个度量成为目标,它就不再是好的度量」——Reward 欺骗、指标博弈、评判者博弈皆是化身;以指标多样化与留出评估抵御。
评判格式 位置偏置 评判面板 G-Eval Goodhart
《Agentic AI 指南》中文版 v1.1.0·Part IV 评估p284-288
V
PART V · AGENTIC AI · p288-513

智能体 AI全书最大部分 · 13 章

从训练好的模型到被部署出去的自主系统:检索、记忆、上下文与循环、协议(MCP/A2A)、多智能体协作、框架与界面——Agent 在真实世界中运作所需的一切。

CH 15智能体 AI 简介p290
CH 16检索增强生成(RAG)p293
CH 17智能体记忆系统p316
CH 18Agent Harnessp341
CH 19循环工程p365
CH 20Agent 设计模式p378
CH 21Agent 环境与基准p383
CH 22模型上下文协议 MCPp398
CH 23Agent Skillsp417
CH 24智能体间通信 A2Ap422
CH 25多智能体系统p443
CH 26Agent 开发框架p463
CH 27Agentic UI 框架p495
RAG 记忆 Harness·循环 MCP·A2A 多智能体·UI
PART V · CH 16书 p293-315BM25RRF

检索增强生成:架构与检索SPARSE · DENSE · HYBRID · CHUNKING

LLM 把知识压进权重,难逃幻觉、过时、领域盲区。RAG 配上动态可更新的外部记忆——对检索证据边缘化,让响应有据可查、可验证。

1.2-2.0BM25 k₁ 取值·b=0.75
k=60RRF 平滑常数·按排名融合
36.8SPLADEv2 MRR@10·v1 为 34.0
5-10×PLAID 索引降低 ColBERT 延迟
01参数化 vs 非参数化
知识压进权重,难逃幻觉、过时、领域盲区。RAG 按检索分布 P(d|q) 边缘化证据——给学者发一张「图书证」。
02RAG·微调·长上下文选型
微调教如何推理,RAG 供内容,互补。更新频繁/需引用/专有语料→RAG;风格/新技能/低延迟→微调;装得进窗口→长上下文。
03分块策略
固定重叠 512/64 是默认;语义分块切在相似度谷底;结构分块按标题/函数、表格不拆;父子块:检索 128,回传 512。
离线索引 · OFFLINE · 一次构建 文档加载 PDF·HTML·MD·元数据 分块 512 Token·重叠 64 嵌入 fϕ e = fϕ(c)·d 维向量 向量数据库 向量+原文+元数据 ANN 近似检索:IVF · HNSW O(log N) · PQ 在线检索—生成 · ONLINE · 每查询 查询编码 q = fϕ(q) 检索 top-k 余弦相似·取前 k 块 sim = q·e/(∥q∥·∥e∥) 重排 交叉编码器精排 生成 + 引用 仅凭上下文·[Doc N] BM25/TF-IDF 稀疏 · DPR 稠密 · RRF 混合 k=60 · SPLADE 学习式稀疏 · ColBERT 晚期交互 DPR 双塔对比学习·SPLADE 以 MLM 头扩展词项·ColBERT MaxSim 晚期交互·RRF 在排名上融合,免分数不可比
图 16.1 · 端到端 RAG:离线管道一次建索引,在线管道逐查询检索—重排—生成
最佳实践分块得当的朴素 RAG 往往胜过分块糟糕的复杂系统;先修好检索,再优化生成;top-20 交叉编码器重排 ROI 最高。
分块 嵌入 检索 RRF 融合 生成
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p293-315
PART V · CH 16书 p293-315Graph RAGSearch-R1

高级 RAG 与智能体 RAGADVANCED PATTERNS · AGENTIC · SEARCH-R1

高级 RAG 在检索前后做文章:查询变换、重排、压缩与自我反思;智能体 RAG 更进一步——把何时查、查哪里、查几次变成可学习的序贯决策。

01查询变换
HyDE 先生成假设答案再嵌入,缩小查询—文档分布差;Step-Back 后退提问;多查询改写取并集。
02重排与压缩
交叉编码器联合精排 top 20-100 候选,以延迟换准度;上下文压缩只留相关句。
03Self-RAG·CRAG
反思 Token 自控检索与自评;CRAG 给文档评分,全错→回退网页搜索。
04Graph RAG·Fusion
Leiden 社区摘要答全局综合问题;RAG-Fusion 多变体检索后 RRF 融合排名。
05智能体 RAG:检索即决策
静态「先检后答」败于多跳、歧义与异构源。检索即 MDP:状态=查询+已检文档,动作=检索/推理/生成/停止。
06Search-R1 · RAFT
GRPO 训练 CoT 中的搜索动作,奖励=答案正确性;7B 胜标准 RAG 15-20%、ReAct 式 8-12%;RAFT 混干扰文档练接地。
智能体 RAG 控制流 · 每查询迭代 没有单一索引在所有方面最优 查询 q 多跳·歧义 路由决策 规则/分类器/LLM 自适应 RAG·按复杂度 简单 → 不检索 中等 → 单步 RAG 复杂 → 多步迭代 向量数据库 内部文档·政策·报告 Pinecone·Qdrant·pgvector 网页搜索 实时·最新信息 SQL 数据库 结构化·数值 代码索引 代码库·API 文档 RRF 融合 k=60 按排名 生成 带引用 REFRAG 压缩—感知—展开 TTFT 提速最高 30.85× 嵌入选型定检索上限 · NV-Embed-v2 MTEB 72.3 · 量化缩索引 4-32× 上下文不足 → 精炼子查询,重检索
图 16.2 · 自适应/智能体 RAG:按复杂度与来源路由,RRF 融合后生成——会搜索的小模型胜过不搜索的大模型
评测与生产RAGAs 评三层:检索 Recall/MRR、生成忠实度、端到端;防中部迷失、引用伪造;嵌入选型定检索上限。
查询变换 重排 自适应路由 多源融合 智能体
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p293-315
CODEListing 16.9-16.10 · 书 p305-307Pythonlanggraph

智能体 RAG:让 LLM 决定去哪查ROUTE · RETRIEVE · EVALUATE · GENERATE

书 16.7:路由器用一次结构化输出为每个子查询挑选知识源;LangGraph 把规划—检索—评估—生成串成条件循环——检索从一次性前缀,变成可迭代的序贯决策。

def route_query(query: str, llm) -> RouteDecision:  ① LLM 选源=一次「动作」
    prompt = f"""Given the query: "{query}"
Decide which knowledge source to use:
- vector_db: for internal documents, policies, past reports
- web_search: for current events, recent information
- sql_db: for numerical data, statistics, structured records
Return a JSON with: source, refined_query, reasoning."""
    return llm.with_structured_output(RouteDecision).invoke(prompt)

def retrieve_node(state: AgentState) -> AgentState:  ② 逐子查询扇出→融合
    new_docs = []
    for sq in state["sub_queries"]:
        new_docs.extend(retrieve_from_source(sq, route_query(sq)))
    return {**state, "retrieved_docs": new_docs,
            "iterations": state["iterations"] + 1}

def should_retrieve(state: AgentState) -> str:  ③ 充分?重检索?
    if state["context_sufficient"]:
        return "generate"
    if state["iterations"] >= state["max_iterations"]:
        return "generate"  # 预算耗尽:放弃检索,用现有内容生成
    return "retrieve"      # 换精炼子查询,回环再检索
①路由=MDP 的动作选择
书 16.7.1 把智能体 RAG 建模为 MDP:动作=检索/推理/生成/停止——路由就是动作选择。
②多源结果如何合并
各子查询路由到最合适后端;retrieved_docs 用 Annotated[list, add] 累积合并。
③何时触发重检索
evaluate 判充分性:不充分且未超 max_iterations(书例 3)则回环重检索。
+实践护栏(16.7.3)
护栏:低置信回退次优来源;歧义查询并行扇出后 RRF 融合;网页/API 计入成本熔断。
运行依赖 langgraph;RouteDecision 经 with_structured_output 产出;预期:按路由命中来源并作答。
路由决策 多源检索 结果融合 重检索门控
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体 · 代码p305-307
PART V · CH 17书 p316-320RAGMemGPT

记忆:类型与架构MEMORY TYPES · ARCHITECTURES

LLM 本质无状态:GPT-4o 上下文 128K Token,而一本典型书籍约 670K——数日运行的 Agent 累积的观察必然溢出。记忆系统是对这一物理约束的工程回应。

01工作记忆 Working
上下文内的工作区:草稿板、思维链、对话历史。零检索延迟,易失,受 L 约束。
02情景记忆 Episodic
过往事件按时间索引:成功轨迹作少样本范例,失败案例带根因标注。
03语义记忆 Semantic
上下文无关的事实与概念:实体关系、领域本体、知识图谱 G=(V,E)。
04程序记忆 Procedural
自动化的技能:工具使用模式、多步动作序列;权重 θ 即程序记忆,微调即巩固。
05为什么需要记忆
滚出窗口即灾难性遗忘;无情景存储,经验无法复用;无用户模型,每轮冷启动。
06五大架构家族
RAG 向量检索 · 摘要压缩 · 知识图谱 · 键值记忆网络 · MemGPT 分层——按容量、延迟、可训练性取舍。
主上下文 · Main Context 0 ms · O(L) Token 系统提示与用户偏好 最近对话历史 工作记忆:草稿板 · 思维链 外部存储 · External Storage 容量无上限 · 0–100 ms 情景记忆Episode 向量存储 · 时间索引 语义记忆事实 · 概念 · 知识图谱 程序记忆技能 · 工具使用模式 页入 Page-In 页出 Page-Out 近期性 · 相关性 · 重要性 自驱动记忆管理 LLM 发出 memory_search · memory_insert · memory_delete,记忆管理成为可学习行为
图 · MemGPT 虚拟上下文管理(p319-320):主上下文与外部存储之间按近期性、相关性与重要性页入/页出
检索的陷阱RAG 不消除幻觉,反而可能引入:过时或表面相关的文档会被自信采纳——须附来源元数据,并做忠实性校验。
上下文瓶颈 四类记忆 RAG 检索 知识图谱 MemGPT
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p316-320
PART V · CH 17书 p316-340Mem0CoALA

记忆操作与前沿WRITE · RETRIEVE · REFLECT · RL

记忆不是被动仓库,而是认知的主动参与者:读—行动—反思—写入循环;CoALA 给出设计语言,前沿正从反应式检索走向预判式注入。

  • 写入 · 重要性 τ 过滤
  • 读取 · HyDE+时间衰减
  • 更新 · 冲突解决与巩固
  • 反思 · 情景→语义洞见
记忆类型内容机制例子(软件开发 Agent · p318)
工作记忆当前任务的活动信息上下文内 · 0 ms正在编辑的文件与刚收到的报错
情景记忆具体过往事件与轨迹向量检索 · 时间索引「上周在模块 X 修过类似 NPE」
语义记忆通用事实与领域概念知识图谱 · 结构化查询asyncio.gather 的异常传播规则
程序记忆自动化技能与流程权重 θ · 动作序列调试流程:复现→隔离→假设→验证→修复
01个性化·用户建模
持久用户模型 U:显式/隐式偏好、专业水平、目标;自适应详尽度与主动回忆。
02多智能体·共享记忆
blackboard 解耦读写,Mshared 之外各留私有 Mi;共识:投票·置信度加权·版本化。
03RL 训练「记什么」
奖励=任务回传+检索精度−冗余写入+一致性;方法:事后重标记·元 RL·好奇心存储。
04评估·维度与基准
LongMemEval 五能力:抽取·跨会话·时序·更新·拒答;LOCOMO、InfiniteBench;召回·精确·Token 效率。
05Mem0 生产记忆层
自动抽取事实并巩固,关系图支持多跳;LOCOMO 提升 26%,p95 延迟降 91%。
06Sleep-Time Compute
空闲时段预计算查询与推理链;测试时计算降约 5×,多查询摊销成本降 2.5×。
07A-MEM · Zettelkasten
结构化笔记+动态双向链接;新记忆触发旧记忆更新,记忆成演进中的活体结构。
08主动记忆 · Meta AI
对抗行为状态衰减:漂移前注入约束;成本 +40%,100+ 次调用成功率保持稳定。
写入 检索·HyDE 反思 共享记忆 主动记忆
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p316-340
CODEListing 17.1 + 17.10.3 · 书 p326-334Pythonnumpy

向量存储记忆:写入、检索、注入EMBED · DECAY · INJECT

书 17.10:记忆存成带元数据的 Embedding,读时以「余弦相似 × 时间衰减」打分取 top-k,再注入 system prompt——写什么、怎么读、怎么进上下文的最小闭环。

class VectorMemoryStore:
    def write(self, content, importance=0.5, check_duplicates=True):
        if check_duplicates and self._is_duplicate(content):  ① 写入过滤
            return None   # 余弦相似度>0.95:近似重复,直接跳过
        if len(self.entries) >= self.max_entries:
            self._evict()  # 满:逐出「最不重要×最久未访」条目
        self.entries.append(MemoryEntry(content=content,
            embedding=self.embed_fn(content), importance=importance))

    def retrieve(self, query, k=5, recency_boost=True):
        dense_scores = self._cosine_similarities(self.embed_fn(query))
        for entry, d_score in zip(self.entries, dense_scores):  ② 相似×时近
            age_h = (datetime.now() - entry.timestamp).total_seconds()/3600
            recency = np.exp(-self.decay_rate * age_h)  # 每小时衰减
            score = (1 - self.recency_weight) * d_score \
                    + self.recency_weight * recency
        ...  # 组合分降序取 top-k;更新 access_count/last_accessed
class MemoryAugmentedAgent:
    def step(self, user_message: str) -> str:  ③ 记忆进 prompt
        memories = self.memory.retrieve(user_message, k=5)
        system = self.SYSTEM_PROMPT + f"\n\n{self._format_memories(memories)}"
        ...  # + get_hot_context() 热层;最近 6 轮 → llm → 执行记忆命令
①写什么:写入有门槛
写入有门槛:与现有记忆余弦相似 >0.95 判近似重复丢弃;容量满按「重要性×时近」驱逐。
②怎么读:混合打分
混合打分 score=(1−0.3)·余弦 + 0.3·e^(−λ·age):相似为主、时间衰减兜底,取 top-k。
③记忆如何进 prompt
检索结果格式化进 system prompt,标注来源与重要度——记忆由此进入上下文。
+自驱记忆(MemGPT 式)
MemGPT 式自驱:LLM 在响应中发 [MEMORY_WRITE] 命令,即自动写入记忆库。
运行依赖 openai 嵌入 + 任一向量库;预期:同题二问零重检索命中,答案附带记忆标记。
写入过滤 相似×衰减 top-k 热层注入
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体 · 代码p326-334
PART V · CH 18书 p341-350CONTEXTMCP

Agent Harness:上下文工程CONTEXT WINDOW · PROMPT · TOOLS

模型与真实任务之间隔着一层基础设施:harness 管记忆、路由工具、跟踪状态、强制安全——设计糟糕会抵消最强 LLM,设计良好则放大中等模型。

01什么是 Harness
包裹模型的运行时层:把无状态文本补全引擎变成有状态、目标导向的 Agent。模型是「大脑」,harness 是它的「操作系统」。
02Context 预算与压缩
H 随对话无限涨,超限先压缩:滑动窗口、旧轮摘要(短 5-10×)、按相关性保留。递归语言模型 RLM 分块调用,规避 context rot。
03Prompt 架构
System prompt 四件套:人格·能力·约束·输出格式;运行时按块组装、独立版本化;few-shot 按相关性选例并轮换。
04工具·安全·MCP
签名五要素:名称·描述·参数·输出·约束;大库检索预筛 top-k;输出截断+错误归一;沙箱执行防注入;MCP 统一接入——详见 CH 22。
System Prompt 人格·能力·约束·输出格式 工具 Tools schema·路由·沙箱执行 MCP 统一协议 · 详见 CH 22 记忆 Memory 窗口·scratchpad·向量库 状态 State 对话·任务·信念·检查点 护栏 Guardrails 审批门·循环检测·预算执行 LLM 唯一职责:推理 f:tokens→tokens Context 预算 C ≥ S+M+T+H+R(式 18.2 固定分配) 超限即静默截断——发送前用模型 tokenizer 精确计数 S·10% M·20% T·10% H·50% history 随对话无限增长 → 持续压缩 R·10% system prompt memory / RAG tool defs reserved 输出
图 18.1 · Harness 解剖:模型只负责推理,其余由 harness 供给;历史 H 占 50% 预算且随对话增长,须持续压缩
窗口预算 压缩·RLM Prompt 工具·沙箱 MCP
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p341-350
PART V · CH 18书 p350-356ReActLangGraph

编排与生产ORCHESTRATION · STATE · PRODUCTION

编排决定 Agent 如何决定下一步:探索用 ReAct,结构化用 Plan-and-Execute,可分解用多 Agent;生产系统还需管好状态、错误、延迟与成本。

01ReAct 循环
Thought→Act→Observe 紧凑循环;CoT scratchpad 不展示给用户;最大迭代守卫防死循环,以 Final Answer 或停止符终止。
02Plan-and-Execute
先生成带依赖的完整计划再逐步执行,子任务可用更便宜模型;长时程任务调用更少,但对意外观察适应性差,失败即重规划。
03多 Agent 编排
Supervisor 中央路由与聚合;P2P 直接通信但难调试;树状递归分解;Swarm 以 handoff 连同完整上下文交接控制权。
04人机协同 HITL
不可逆操作(发邮件·删文件·付款)前设审批门;低置信、越界、超预算即升级(式 18.12);人类更正回注 Context。
05状态管理
对话·任务·Agent·持久化四层;检查点供失败恢复、可回滚最近 k 步。把状态当数据库 schema:提前谨慎设计。
06错误与可观测
指数退避 min(2^k·t0+抖动, tmax);对 (tool,args) 哈希去重检测循环;Trace·Log·Metric 三件套,投入 replay 回放。
07生产关注点
并行工具+流式降首字延迟;Prompt 缓存省 50-90%;模型路由控成本;Token 桶限流+反压 503;A/B·灰度·Shadow·LLM 评审。
框架灵活复杂生产多Agent最适合
LangChainHHMM快速原型·链式
LangGraphHHHH复杂有状态工作流
AutoGenMMMH多 Agent 对话
CrewAIMLMH角色制团队
OAI AssistantsLLHL托管 Agent
OAI SwarmMLLHHandoff 演示
自研 CustomHHHH完全控制·无锁定
表 18.1 选型原型期用框架;有严格延迟/成本要求、抽象泄漏致 bug、需细粒度 Context 管控或 harness 即壁垒时自研。
ReAct 计划执行 多 Agent 审批门 生产评测
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p350-356
CODEListing 18.1 · 书 p356-363Pythonasyncio

生产级 Agent Harness 骨架CONTEXT BUDGET · TOOL DISPATCH · REACT LOOP

书 18.10:system 消息与四段 token 预算、按名分发的工具执行器、ReAct 主循环——模型→解析工具调用→执行→回填观测,四重终止条件兜底,永不静默死循环。

class AgentHarness:
    def __init__(self, model, system_prompt, tools, approval_cb=None):
        self.executor = ToolExecutor(tools, approval_cb)  ① 工具分发表
        self.ctx_mgr = ContextManager(model, max_tokens=128_000)
        self.ctx_mgr.system_msg = Message(Role.SYSTEM, system_prompt)
    async def run(self, user_input: str) -> str:  # user 消息先入 context
        tool_defs = [t.to_api_dict() for t in self.tools]
        tool_tokens = sum(self.ctx_mgr.count_tokens(  ② 组装时计预算
            json.dumps(t)) for t in tool_defs)
        for iteration in range(self.MAX_ITERATIONS):  # 硬上限 50
            if not self.ctx_mgr.preflight_check(tool_tokens):
                return "I've run out of context space."  ③ 每轮预算闸
            response = await self.client.chat.completions.create(
                model=self.model, messages=self.ctx_mgr.build_messages(),
                tools=tool_defs, tool_choice="auto", temperature=0.0)
            choice = response.choices[0]
            if choice.finish_reason == "stop" or not choice.message.tool_calls:
                return choice.message.content or "Task complete."  ④ 终止
            results = await self._execute_tool_calls(choice.message.tool_calls)
            for tid, result in results.items():  ⑤ 观测回填
                self.ctx_mgr.add_message(Message(
                    Role.TOOL, result, tool_call_id=tid))
①工具分发表
ToolExecutor 以 {name: 定义} 建表,按模型给出的名字分发执行——工具多也不乱。
②③预算为何在组装时算
工具 Schema 开始时序列化计数一次,每轮 preflight 复核——预算前置,防静默溢出。
④循环终止条件
终止:stop 或无 tool_calls 正常返回;预算溢出坦白求新会话;LoopDetector 断死循环。
⑤观测回填要「对位」
结果以 role=TOOL + tool_call_id 与调用一一配对回填;多工具 gather 并行。
运行依赖 openai sdk;预期:模型按需调用工具、观测回填后继续,直至 stop 终止。
system 组装 工具分发 预算闸 回填观测
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体 · 代码p356-363
PART V · CH 19书 p365-377Loop = RLReflexion

循环工程LOOP ENGINEERING

提示工程、上下文工程、Harness 工程之后的第四层:设计迭代控制结构,让 Agent 无需逐轮指令、自主朝目标前进。精心设计的循环就是推理时运行的强化学习——只是权重不更新。

01循环 = 推理时强化学习
奖励 = 验证信号;策略 π 冻结,「学习」全靠状态累积。上下文管第 t 步看什么,循环管行动之后发生什么。
st = context(st-1, at-1, ot-1)   at = πθ(st)
ot = env(at)   rt = verify(st, at, ot)
02五原语 · 外部状态 · 终止
自动化·工作树·技能·连接器·子 Agent;状态驻留磁盘。终止:上限 20-50 步、预算、无进展 k=3、致命错误。
验证循环 Reflexion 评估器-优化器 层级循环 生成 验证 失败→重试,直到通过 执行 评估 情景记忆:学到的教训 91% pass@1 · 基线 67% 生成器 评估器 评分超阈值或预算尽即停 子循环 编排:分解·监控·综合 验证层级 · 按可靠性排序 → 编译 · 类型 · 测试 确定性 · 黄金标准 Lint · 指标对比 确定性 · 数值信号 LLM-as-judge 概率性 · 需人类校准 人工审查 黄金标准 · 高风险决策
图 19.1 · 循环模式自主性递增;研究环(AutoResearch)限时实验、提交/回滚。有确定性检查,绝不让模型自评。
03Loopmaxxing
多跑几轮≠优化;无梯度信号即随机搜索。
04理解债
改码快过人审阅;理解差距无声复利。
05Reward Hacking
删测试让 CI 变绿;多个独立检查防御。
06上下文劣化
「中间迷失」;压缩·外化·子 Agent 隔离。
何时不该用循环单轮任务、无可检查目标、人工更廉价、验证不可能——一个能解决问题的提示链,永远优于也许能解决的循环。
自动化 推理·行动 验证 rt 反思记忆 终止·升级
《Agentic AI 指南》中文版 v1.1.0·Part Vp365-377
CODE§19.3-19.4 · 书 p368-369Python伪代码

生产级循环的伪代码THE CANONICAL AGENT LOOP

书 19.3-19.4:五个原语(自动化·工作树·技能·连接器·子 Agent)外加外部状态持久化,装配成一段恒温器式的规范循环——推理、行动、回填、终止判定。

def agent_loop(goal: str, max_steps: int = 50,
               budget: TokenBudget = None):
    """The canonical agent loop structure."""
    state = initialize_state(goal)     ① 加载外部状态和目标
    for step in range(max_steps):
        thought = model.reason(state)  ② 推理(ReAct 风格)
        action = model.choose_action(state)
        observation = environment.execute(action)
        state = update_state(state, thought, action, observation)
        if state.token_count > CONTEXT_BUDGET * 0.8:
            state = compact(state)      汇总旧步骤
        if verifier.passes(state, goal): ③ 确定性检查
            persist_state(state, status="success")
            return Success(state)
        if no_progress_detected(state, window=3):  ④ 无进展
            persist_state(state, status="stuck")
            return escalate_to_human(state)
        if budget and budget.exhausted():
            persist_state(state, status="budget_exceeded")
            return escalate_to_human(state)
    persist_state(state, status="max_steps")   ⑤ 硬性上限
    return escalate_to_human(state)
①外部状态为何放循环外
LLM 在两次调用间是无状态的,循环连续性必须驻留磁盘——Markdown 进度文件、数据库或 git 日志;开局加载、每个出口回写,即进度·失败记忆·审计轨迹。
②一次迭代的执行流
推理→选动作→环境执行→回填状态(ReAct 风格);token 超预算 80% 即 compact 汇总旧步骤——丢弃噪声的同时保留相关历史,这就是上下文管理。
③验证器是循环的灵魂
verifier.passes 是确定性检查:循环的可靠程度不会超过它最不可靠的那一步验证;绝不让生成模型评判自己的输出——制造者与检查者必须分离。
④⑤终止条件:上限与无进展
success / stuck(3 步无进展)/ budget_exceeded / max_steps=50 硬上限;每个出口都先 persist_state 再 escalate_to_human——状态文件即审计轨迹。
运行此为 §19.4 结构模板;最小可运行实例是 19.5.1 验证循环:for attempt in range(MAX_ATTEMPTS) 内 run_tests(),失败即带失败日志重试;预期:测试转绿退出,或重试预算耗尽升级人类。
状态外置 单步迭代 验证器 终止出口
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体 · 代码p368-369
PART V · CH 20书 p378-382工作流 ×5模式选择

Agent 设计模式WORKFLOW & AGENT PATTERNS

架构决定 Agent 是否可靠、可调试且成本可控。工作流预定义控制流——可预测、可测试、更便宜;Agent 由 LLM 动态决策——灵活、应对新情况。从工作流开始,确需自适应才升级。

Prompt 链 路由 并行化 Orchestrator-Workers Evaluator-Optimizer LLM LLM LLM 步骤间设质量门 每步不同 Prompt/模型 输入 A B C 分类一次 → 专家处理 客服分诊 · 多模态输入 输入 安全 性能 风格 聚合 延迟 = max,而非 Σ 分段(fan-out)· 投票 编排器 W1 W2 W3 分解逻辑由 LLM 生成 结果综合为一致输出 生成器 评估器 低于阈值 → 重生成 无训练的迭代精化 ← 系统预定义控制流 · 可预测、可测试 LLM 动态决定控制流 · 灵活 →
图 20.1 · 五种工作流(改编自 Anthropic):左起灵活性递增;并行化延迟为 max 而非 Σ。
模式复杂度LLM 调用最适用于
Prompt 链低N(固定)顺序任务、内容流水线
路由低1+1多类型输入、分诊
并行化低N(并行)独立子任务、投票
Orchestrator-Workers中可变未知的分解结构
Evaluator-Optimizer中2-10(循环)高质量要求的输出
ReAct中3-25(循环)通用工具使用、探索
规划型 Agent高5-50+长时程、多步任务
自主 Agent 模式工具调用模式 ×5
01ReAct
思考→行动→观察循环;草稿本记思考,上限 10-25 次,final_answer 终止。
02规划型 Agent
先出显式计划,随观察修订;依赖按 DAG 跟踪——计划是活文档。
03反思与自我批判
校验输出、回顾轨迹、修订策略;Reflexion 记忆跨回合学习。
04工具调用五式
单轮·多工具并行·顺序·嵌套·回退;降级由 harness 透明处理。
设计原则保持简单、透明优于聪明、良好工具、为失败规划、结构化输出;模式可组合——艺术在于知道何时停止增加层次。
提示链 路由·并行 编排 ReAct 规划·反思
《Agentic AI 指南》中文版 v1.1.0·Part Vp378-382
PART V · CH 21书 p383-397GymnasiumOpenEnv

Agent 环境与基准ENVIRONMENT DESIGN · BENCHMARKS · OPENENV

Agent 必须在世界中行动、观察并调整,单次回复无法刻画其质量。环境就是 LLM 的 RL Gym——让探索安全、评估可复现、课程由易到难。

812WebArena 任务·人 78% vs 45%
18%OSWorld SoTA·人类 72%
500SWE-bench Verified 任务数
70+OpenEnv 生态环境(HF Spaces)
01环境为何必需
真实系统承受不起探索,基准要求同条件可复现,课程学习由易到难省样本——三者都需要结构化环境。
02四个设计轴
观察:文本/JSON/多模态;动作:工具·代码·GUI;奖励:对齐·可学习·抗作弊;Episode:定长/终止/开放。
03OpenEnv 标准接口
Gymnasium 式 reset/step/state,动作与观察为强类型 dataclass;Docker 隔离,可从 HF Spaces 直接发现调用。
AGENT–ENVIRONMENT LOOP · GYMNASIUM STYLE reset() → 初始观察 LLM Agent 策略 π(a|o) · harness 循环 动作 = 工具调用 · 代码 · GUI 环境 Environment OpenEnv · Docker 隔离部署 强类型动作 / 观察 step(action) observation · reward · done Episode:reset → step×T → done · 奖励多为执行判定 0/1 环境类型图谱 · SEVEN FAMILIES 代码沙箱 E2B·Firecracker 启动 <200 ms Web WebArena 人 78% vs 45% 计算机使用 OSWorld 人 72% vs 18% 软件工程 SWE-bench 人 100% vs 50% 科研 AI Scientist 假设→实验→论文 游戏仿真 NLE·Voyager 技能库 + 课程 多 Agent AutoGen·辩论 协商·协作·博弈 评测 harness:环境级留出测试 · 人类基线定上界与校准 · 语义化版本 + 镜像摘要冻结 随机环境每任务 3-5 次运行 · N=500、p=0.4 时 95% CI ≈ ±4.3% · 种子确定性使轨迹可精确重放
图 21.1 · Agent-环境循环:reset 开启 Episode,step 返回观察与奖励;七类环境覆盖从代码沙箱到多 Agent 的能力谱
奖励工程首选基于执行的 0/1——跑测试即真值,对齐且抗作弊;警惕观察泄露:真值混入观察会虚高分数,部署即灾难性失败。
为何需要 四设计轴 环境图谱 OpenEnv 人类基线
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p383-397
CODEListing 21.1 · 书 p393-395Pythonstdlib

最小的自定义 LLM Agent 环境GYMNASIUM · RESET/STEP 契约

书 21.8 的 FileEditEnv:Agent 面对一个含 bug 的文件与失败的测试,不断编辑直到通过;观察与动作均为纯字符串,奖励来自真实运行测试而非 LLM 裁判。

@dataclass
class StepResult:
    observation: str    输入给 LLM 的文本
    reward: float       0.0 或 1.0
    terminated: bool    任务解决或达最大步数
    truncated: bool     预算超出被截断
class FileEditEnv:   动作: view | edit | run_tests | submit
    def reset(self, seed: int | None = None):  ① 新回合
        self._workdir = Path(tempfile.mkdtemp(prefix="fileenv_"))
        (self._workdir / "solution.py").write_text(self.buggy_code)
        self._step_count = 0
        return self._build_observation(...), {"step": 0}
    def step(self, action: str) -> StepResult: ② 一步交互
        self._step_count += 1
        if action.startswith("edit"): self._action_edit(action)
        test_output = self._run_tests()  隔离子进程 + 超时
        passed = "passed" in test_output and "failed" not in test_output
        reward = 1.0 if passed else 0.0  ③ 基于执行的奖励
        terminated = passed or action.startswith("submit")
        truncated = self._step_count >= self.MAX_STEPS  ④ 步数上限
        return StepResult(self._build_observation(action, test_output),
                          reward, terminated, truncated)
①②reset/step 契约为何关键
遵循 Gymnasium 标准 API 的环境可直接接入 RL 训练框架;seed 化 reset 让任意轨迹精确重放,重建隔离工作目录,检查点可支持树搜索式探索。
③reward 与 done 的语义
奖励来自实际运行测试套件而非 LLM 裁判,二元 0/1 抗 reward hacking;terminated=任务解决,truncated=预算截断——两种结束必须分开。
④步数上限防拖垮
MAX_STEPS=20 是 Episode 硬上限;每次测试在带 30s 超时的独立子进程运行,Agent 陷入死循环也不会拖垮外层训练循环。
+并行采集数据(21.5.4)
RL 训练需数百万次环境交互:进程级并行、异步 rollout worker 重叠推理延迟、向量化环境批处理 step;云上用 Ray/SLURM 分发,回放缓冲聚合轨迹。
运行仅标准库 · python minimal_env.py 内置演示:修复 buggy 的 add()(应为加号)并提交;预期输出 Reward: 1.0 | Terminated: True。
reset 重建 step 契约 奖励 0|1 并行采集
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体 · 代码p393-395
PART V · CH 22书 p398-405JSON-RPC 2.0N×M→N+M

MCP:架构与原语HOST · CLIENT · SERVER · FOUR PRIMITIVES

每个新框架都在重写工具连接器。MCP(Anthropic 2024)以 JSON-RPC 2.0 统一接口,把 N×M 集成压成 N+M——如 USB 之于设备。

N+M20 框架×50 工具:1000→70(−14×)
4原语 Tools·Resources·Prompts·Sampling
2传输 stdio·Streamable HTTP
3角色 Host·Client·Server
01工具集成问题
每个框架×每个工具都要定制连接器,负担平方级增长;MCP 让各方只实现一次协议——类比 USB·HTTP·LSP。
02三角色模型
Host 管体验与安全策略,内含一或多个 Client;Client 与单个 Server 一对一有状态会话;Server 是既有 API 的薄包装。
03生命周期与传输
四阶段:initialize→能力协商→运行→关闭;传输 stdio(本地子进程)或 Streamable HTTP(可升级 SSE 流)。
MCP ARCHITECTURE · STATEFUL SESSIONS MCP HOST · 用户同意 · 安全策略 · 审计日志 LLM —— 决定调用哪个工具 · 整理结果 MCP Client 与单个 Server 一对一 MCP Client 协议协商·序列化 MCP Client 连接生命周期管理 stdio stdio Streamable HTTP 文件系统 Server 本地 I/O·薄包装 GitHub Server Issue·PR·提交历史 Postgres Server 只读 SQL 查询 四大原语 PRIMITIVES Tools C→S LLM 调用·带副作用 Resources C←S 上下文数据·URI·订阅 Prompts C←S 可复用 prompt 模板 Sampling S→C Server 请求 Host 推理 线协议 JSON-RPC 2.0:Request(期待响应) · Response · Notification(无 id 单向通知) 工具发现:tools/list 动态注册 · inputSchema=JSON Schema · name+description 决定 LLM 选哪个工具
图 22.2 · MCP 架构:Host 内多个 Client 与多个 Server 保持有状态会话;Server 包装外部服务,经 stdio 或 Streamable HTTP 传输
Sampling 反转唯一方向相反的原语:Server 请求 Host 执行一次 LLM 推理,Host 保留完全控制权——server 无需自备模型。
集成爆炸 三角色 传输层 四原语 JSON-RPC
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p398-405
PART V · CH 22书 p406-416FastMCPOAuth 2.0

MCP:安全·生态·训练SECURITY · ECOSYSTEM · RL & SFT

MCP 运行在分层信任之上:Host 执行同意,Server 条件信任。对训练者,它更是标准化的动作空间与轨迹来源——LLM 时代的 gymnasium。

4 层信任 Host>Client>Server>外部
10表 22.1 代表性官方 Server
2^n重连退避 wait=base·2^attempt
0.8工具结果可编码 reward 信号
01信任层级·用户同意
Host 最高信任并执行用户同意;Server 条件信任,resource 可夹带注入;凭据走 OAuth 2.0 与密钥管理,最小权限。
02最小 Server·多连接
FastMCP 由类型注解+docstring 自动生成 schema;多 Server 用连接池统一注册路由;崩溃后按 2^n 退避重连。
03训练:动作空间与轨迹
tools/list 即动作空间,resources 即观测,工具结果可携带 reward;轨迹记录中间件一键转成 chat 格式 SFT 样本。
场景选 MCP选自定义集成
多厂商 / 多框架协同一次实现,跨厂商即插锁定单一提供方
工具分发给他人使用开放标准 + 生态注册表自建分发与维护
需会话·订阅·推送协议原生支持需自行实现
延迟敏感·接口特殊协议开销难承受直连更快更省
@mcp.tool()
def create_note(title: str, content: str) -> str: ...
# inputSchema 由注解+docstring 生成 · mcp.run() 自选传输
生态与注册表
官方 MCP Registry 精选 + npm/PyPI 分发;Claude Desktop、Cursor、VS Code Copilot 均已原生接入。
头号攻击面经 Resource 的 prompt 注入:上下文里的「忽略此前指令」可能被执行——数据标记为不可信,破坏性操作强制用户确认。
信任层级 用户同意 FastMCP 生态 SFT 轨迹
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p406-416
CODEListing 22.1 · 书 p406-407Pythonmcp[cli]

用 FastMCP 写一个 MCP ServerDECLARATIVE TOOLS · AUTO SCHEMA · AUTO TRANSPORT

书 22.7.1 的完整记笔记 server:装饰器声明 tool 与 resource,Schema 与传输全自动——这就是「N×M 集成问题」的标准答案长什么样。

from pathlib import Path
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("notes-server")          ① 一个实例=一个 server
NOTES_DIR = Path.home() / ".notes"

@mcp.tool()                               ② 声明式 tool
def create_note(title: str, content: str,
                tags: list[str] | None = None) -> str:
    """Create a new text note. Use this when
    the user wants to save information."""  ③ docstring 给 LLM 看
    safe = "".join(c if c.isalnum() or c in "-_" else "_"
                   for c in title).strip()  ④ 输入校验:防路径穿越
    p = NOTES_DIR / f"{safe}.md"
    p.write_text(f"---\ntitle: {title}\n---\n\n" + content,
                 encoding="utf-8")
    return f"Note saved to {p}"
@mcp.resource("notes://{title}")        ⑤ URI 路由的只读数据
def get_note(title: str) -> str:
    return (NOTES_DIR / f"{title}.md").read_text("utf-8")

if __name__ == "__main__":
    mcp.run()  ⑥ stdio / Streamable HTTP 自动选择
①②声明式,免手写 Schema
@mcp.tool() 从 Python 类型注解 + docstring 自动推断 JSON Schema——相比低层 API 省掉整个 inputSchema 手写环节。
③docstring 是 prompt 的一部分
模型靠它决定「何时调用」。写清「何时用」比写清「怎么做」更重要——这是工具描述工程的最小单元。
④⑤校验在 server,数据与动作分离
路径穿越是 tool 的头号注入面,文件名清洗是底线;resource 是只读「数据」,tool 是带副作用的「动作」。
⑥传输对上层透明
本地子进程走 stdio,远程走 Streamable HTTP——同一份代码两种部署,Client 不需要改动。
运行pip install "mcp[cli]" · 启动:mcp run notes_server.py(stdio)或 --transport streamable-http;预期:server 就绪等待 Client 握手。
FastMCP 实例 @tool 自动 Schema 输入校验 resource 路由
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体 · 代码p406-407
CODEListing 22.2-22.3 · 书 p407-409Pythonasyncio

Client 四阶段与 Host 连接池INITIALIZE · DISCOVER · CALL · ROUTE

左侧:最小 Client 的握手—发现—调用四阶段;讲解卡:书中 22.7.3 的 MCPHost 连接池——多 server 时工具如何统一路由。

import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def main():
    params = StdioServerParameters(          ① 如何拉起 server 子进程
        command="python", args=["notes_server.py"], env=None)
    async with stdio_client(params) as (read, write):
      async with ClientSession(read, write) as session:
        await session.initialize()            ② 能力协商握手

        tools = await session.list_tools()    ③ 工具发现
        for t in tools.tools:
            print(f" - {t.name}: {t.description[:60]}")

        result = await session.call_tool(      ④ 执行(先经用户同意)
            "create_note",
            arguments={"title": "MCP Architecture Notes",
                       "content": "MCP uses JSON-RPC 2.0.",
                       "tags": ["mcp"]})
        print(f"Tool result: {result.content[0].text}")

asyncio.run(main())
①②stdio 拉起 + 能力协商
Client 以子进程方式启动 server,经 stdin/stdout 通信;initialize() 交换 protocolVersion 与 capabilities,之后全是 JSON-RPC 2.0。
③发现即集成
server 动态注册的 tool 无需改 Client 代码——N 个应用×M 个工具的集成问题由此降为 N+M。
④同意门控在 Host
带副作用的调用前,Host 须展示该 tool 将做什么、区分只读/破坏性并留审计日志;被攻破的 server 可借 resource 注入 prompt。
+多 server:MCPHost 连接池(22.7.3)
书中给出 Host 池:tool_registry[tool.name]=(server, tool) 把工具名路由到正确会话——LLM 只见统一工具面。
运行先启动 22.1 的 server,再 python notes_client.py;预期输出:Available tools: create_note / search_notes …与 Tool result: Note saved to …
拉起子进程 initialize 握手 list_tools call_tool
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体 · 代码p407-409
PART V · CH 23书 p417-421SkillMCP

Agent SkillsDISCOVERY · REGISTRY · VS FINE-TUNING

Skill 思路由 Voyager 在 Minecraft 中推广:可执行代码技能不断入库、验证、复用。如今 skill 以可版本化的包封装领域专长——不重新训练即可加载、组合与替换,可扩展性远超任何单个 prompt。

5能力要素:prompt·工具·知识·工作流·护栏
3架构模式:静态加载·动态发现·层级 DAG
6生命周期:发现→选择→激活→执行→失活→学习
5Anthropic 构建块模式,可作 skill 模板
01Skill ≠ Tool
Skill=完整能力包:prompt+工具+知识+工作流+护栏;Tool 仅单次函数调用。Tool 是锤子,Skill 是建房框架,Agent 是选 skill 的木匠。
02三种架构模式
静态加载:初始化即全量载入,低延迟但费上下文窗口;动态发现:路由器按任务激活,可扩至数百 skill;层级组合:依赖成 DAG,子 skill 可被多个父共享。
03案例:Anthropic 设计
增强型 LLM = Model+Retrieval+Tools+Memory。最有效的是配好工具的简单循环——智能来自模型、工具描述质量与任务清晰度,而非花哨编排。
Skill 注册表 · 市场 manifest:name·能力·工具·IO schema·版本锁定 发现·候选 skill 用户任务 message + 上下文 Skill 路由器 轻量分类器 / embedding 匹配 max_skills = 3 top-3 激活 Agent 上下文(按需) 激活:code-review · testing 注入 prompt + tools + 知识 未匹配 skill 不占窗口 执行后失活 → 释放窗口 失活:移除 skill 上下文,为后续任务腾出空间 学习:结果可更新 few-shot 示例与路由
图:Skill 动态发现——路由器按任务从注册表匹配 top-3,仅激活项注入上下文,执行后失活释放窗口
Skill vs 微调两者互补:微调提供基础能力(指令跟随·工具格式·推理),skill 在运行时叠加任务专长——即时部署、可组合、多租户可各异;深层参数级改变仍需微调。
能力包 三种模式 案例研究 生命周期 vs 微调
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p417-421
PART V · CH 24书 p422-426A2ASSE

A2A:协议与任务生命周期GOOGLE A2A · OPAQUE EXECUTION

单一通才 Agent 无法兼顾知识广度与能力深度。Google 于 2025 年 4 月发布的开放协议 A2A,让异构 Agent 相互发现、委派与协作——不透明执行:不探查对方内部,只共享能力与任务。

2025.04Google 发布 A2A,50+ 伙伴共建
150+支持机构,已捐赠 Linux Foundation
5设计原则,不透明执行居首
7任务状态:submitted→canceled
01为何 Agent 要通信
通才 Agent 难兼顾广度与深度。上下文有限、领域专业化(CodeAgent·LegalAgent)、并行扇出、故障隔离、任务交接——各献所长,短板委派。
02五条设计原则
不透明执行:只经声明接口交互,不探查内部;企业就绪:OAuth 2.0·JWT·审计内建;模态无关;复用 HTTP+JSON-RPC 2.0+SSE;异步优先。
03Agent Card 与消息
能力名片:.well-known/agent.json 上的 JSON 清单,声明能力·认证·端点·skills 示例,支撑能力路由;消息=role+parts(text·file·data)。
调用方 Agent 编排器 · orchestrator 远程 Agent 不透明执行 · 内部实现无关 Agent Card · 能力名片 /.well-known/agent.json capabilities·auth·skills·examples ① GET agent.json 能力 · 认证方案 · 任务端点 ② send_task · 消息 = role + parts(text·file·data) ③ SSE 流式回传产物 · 长任务走 webhook 推送通知 任务状态机 submitted working input-required completed failed rejected canceled
图:A2A 客户—远程 Agent 交互——先经 Agent Card 发现能力,再 send_task 委派,SSE 流式回传或 webhook 推送;任务沿七态状态机推进(rejected 为 v1.0 新增)
认证与授权按请求执行:Bearer(JWT/OAuth 2.0)、API 密钥、mTLS、OpenID Connect;还须校验授权 scope,否则多 Agent 系统会出现权限提升漏洞。
为何通信 设计原则 能力名片 任务状态 SSE 流
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p422-426
PART V · CH 24书 p426-4367 种模式MCP

A2A:协调、发现与安全PATTERNS · CNP · A2A × MCP

从请求-响应到合同网与拍卖,A2A 提供一整套通信与协调语汇;它与 MCP 纵横互补——MCP 纵向连工具,A2A 横向连 Agent,生产系统两者并用。

01通信模式全景
七种:请求-响应·流式·多轮·广播·pub-sub·协商·拍卖,按延迟与任务复杂度选;流式让审阅与生成并行,总延迟降 40-60%。
02发现与路由
注册中心:中心化简单但单点,联合更韧性、宜跨组织;按能力语义匹配 Agent Card 路由;均衡:轮询/最少负载/延迟感知/亲和;语义化版本防偏斜。
03协调协议
合同网:宣告→竞标→授标→汇报;黑板:共享工作区、机会主义求解;共识:多数/加权/法定人数/德尔菲;领导者选举应对编排器失效。
维度MCP(纵向)A2A(横向)
参与方Agent ↔ 工具/资源Agent ↔ Agent
智能性仅 Agent 端推理双方均能推理规划
状态性无状态 Tool 调用带生命周期的任务
流式传输有限(Tool 结果)一等 SSE 流式
发现机制Tool 清单Agent Card
典型用例查库·运行 SQL委派给专家 Agent

MCP 纵向连工具与数据源,A2A 横向连 Agent——互补而非竞争— 书 p433

  • 编排 Agent
  • A2A 委派
  • 专家 Agent
  • MCP 连自有工具
安全四层身份验证(JWT/mTLS/DID)·TLS 1.3+JWS 签名不可否认·OAuth scope 授权边界·审计轨迹——委派链中每次交互都可追责。
通信模式 发现路由 协调协议 vs MCP 安全审计
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p426-436
CODE书 24.9 · p435-441Pythonhttpx · A2A

A2A 多 Agent 研究工作流DISCOVER · DISPATCH · AWAIT · SYNTHESIZE

书 24.9:OrchestratorAgent 借 A2A 把研究问题拆解后派给远程 ResearchAgent——发现、派发、等待、收集四步全走开放标准,不碰对方内部实现。

# -- A2AClient(REST 绑定,节选)------------------
async def get_agent_card(self) -> dict:            ① 发现能力卡片
    url = f"{self.agent_url}/.well-known/agent.json"
    async with httpx.AsyncClient() as client:
        return (await client.get(url, headers=self.headers)).json()
async def send_task(self, message: Message, metadata: dict) -> Task:
    payload = {"id": str(uuid.uuid4()), "message": message.model_dump(),
               "metadata": metadata}             ② 提交任务
    ...  # POST {url}/tasks/send(Bearer 头,30s 超时)→ 初始 Task
async def wait_for_completion(self, task: Task) -> Task:
    while task.status.state not in {"completed", "failed", "canceled"}:
        await asyncio.sleep(2.0)                  ③ 轮询至终止态
        task = await self.get_task(task.id)
    return task
class ResearchOrchestrator:
    async def run(self, research_question: str) -> str:  ④ 分解→并行派发→综合
        tasks = await asyncio.gather(*[self.research_client.send_task(
            Message(role="user", parts=[Part(type="text", text=q)]),
            metadata={"workflowId": self.workflow_id, "subQuestion": i})
            for i, q in enumerate(self._decompose(research_question))])
        ...  # 逐任务 wait_for_completion;取 artifacts 综合成报告
        return self._synthesize(research_question, findings)
①Agent Card 驱动能力发现
托管于 /.well-known/agent.json 的 JSON 清单,声明 skills、capabilities 与认证方式——编排器据此语义路由,类似面向自主 Agent 的 OpenAPI。
②异步优先:提交即返回
send_task 立即返回 submitted 状态的 Task 而非结果;id 用 uuid4,metadata 带 workflowId/subQuestion——跨 Agent 追踪与交接全靠它。
③生命周期与等待策略
状态机:submitted→working→completed/failed/canceled(另有 input-required)。短任务轮询足够;分钟级长任务应走 SSE 流或 webhook 推送,别挂长连接。
④并行派发,失败不炸
gather 并行派发子问题,收齐后取各任务 artifacts 综合成报告;failed 只告警不中断。A2A 管 Agent↔Agent,与 MCP(Agent↔Tool)互补并用。
运行依赖 httpx · fastapi · pydantic;先 uvicorn 起 ResearchAgent A2A Server,编排端 asyncio.run(main());预期:Decomposed into 3 sub-questions → Workflow complete. Report: N chars。
能力发现 send_task 轮询或推送 产物综合
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体 · 代码p435-441
PART V · CH 25书 p443-462SupervisorStigmergy

多智能体系统ARCHITECTURE · COORDINATION · ROLES

单个 LLM 再大也是通才,也是单点故障。专门化、并行化、鲁棒性、涌现能力——四大动机推动单体走向 Agent 社会;问题不在是否用多个,而在如何组织与协调。

01为何多个 Agent
再强的通才也有上下文极限;一支专门化小团队以并行、互查与涌现胜过单体——正如专家团队胜过单个通才。
02六种协调机制
共享黑板(置信度定冲突)·消息传递·规划分解 DAG(HTN)·投票共识·市场拍卖(合同网)·Stigmergy 环境间接通信。
03角色与人格
Researcher、Coder、Critic、Orchestrator 各司其职;乐观者·怀疑者·务实派等人格化(六顶思考帽)减少群体思维。
Manager handoff 集中式 Supervisor hub-and-spoke · 单点故障 去中心化 P2P 网状 mesh · 涌现协调 层级式 Hierarchical 树形 · 委派链 · 域隔离 蜂群 Swarm 局部规则 · 无全局状态
图 25.1-25.4 · 四种多智能体拓扑:权威与通信如何流动,决定可扩展性、可调试性与容错性(p444-447)
怎么选少于 5 个 Agent,集中式最简单;超过 20 个或需容错,转向层级式或蜂群;大多数生产系统最终采用层级式。
动机 拓扑 协调 角色 选型
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p443-462
PART V · CH 25书 p453-462DebateCTDE

多智能体:模式与训练PATTERNS · MULTI-AGENT RL · PRACTICE

拓扑之上是交互模式:辩论、反思、流水线等七种模式组装 LLM 团队;RL 训练引入非平稳性,CTDE 是合作场景的最佳实践;协调有代价,安全须显式设计。

01辩论 · 集成
立场互辩,裁判裁决;独立求解取 best-of-N,以算力换可靠。
02反思 · 师生
生成—批判—修订循环;强 Agent 引导弱 Agent。
03分工 · 流水线
独立子任务并行聚合;顺序链处理依赖任务。
04红队
对抗式找弱点与违规,安全关键必备。
多 Agent RL要点
独立学习视他为环境,非平稳易震荡
CTDE集中 critic 训练·去中心执行(主流)
通信学习可微消息向量,端到端优化
涌现通信自发符号协议,可解释性差
自博弈对手是过去的自己,自动课程
种群 PBT多样种群,劣者被变异替换
Nash 均衡单方偏离无法提高回报
训练 · 集中式 critic critic Qᵢ(s, a) π₁ π₂ π₃ critic 看全局状态 s 与联合动作 a 执行 · 去中心化 o₁ o₂ o₃ π₁ π₂ π₃ 仅凭局部观测 oᵢ 行动,无需通信 ∇θᵢ Jᵢ = E[∇θᵢ log πᵢ(aᵢ|oᵢ) · Qᵢφ(s, a)] —— 式 25.9
图 25.5 · CTDE:训练看全局、执行凭局部——集中式 critic 化解非平稳性(p455)
05挑战与安全
每条消息耗 Token:Δv>成本才通信;查重防冗余;反事实归因;O(n²)→稀疏图;涌现是双刃剑,需安全监控 Agent。
06现实应用
软件:架构→编码→测试→评审;研究:综述→假设→实验→写作;客服:分诊→专员→升级;创意:风暴→草稿→编辑。
七模式 CTDE 挑战 应用 从简
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p443-462
PART V · CH 26书 p463-477LangGraphAutoGen

Agent 开发框架LANGGRAPH · AUTOGEN · CREWAI · DSPy

在 notebook 里搭一个能干活的 Agent 不难,难的是边界情况、故障恢复、负载扩展与持续改进。五阶段生命周期与七种主流框架,正是跨越这条工程鸿沟的脚手架。

  • 设计·能力边界
  • 实现·Prompt+Tool+编排
  • 测试·多粒度
  • 部署·异步可续跑
  • 迭代·失败驱动改进
01工程能力的鸿沟
原型假设友善环境:格式良好的输入、可用的 Tool、耐心的旁观者。生产面临五维鸿沟——可靠性·可观测·可测试·部署·迭代,错误处理必须系统化。
02设计阶段·定能力边界
能力矩阵列出该做、必拒与范围外,是后续评测依据;Tool 过多反致选择混乱、延迟上升;约束须编入系统 Prompt 且以程序强制。
框架抽象核心最适合
LangGraph(LangChain)有向图·State·条件边·子图显式控制·检查点·人机协同
AutoGen(Microsoft)可对话实体·群聊·沙箱代码执行多智能体协作
CrewAI角色·目标·背景故事·Process最少样板的角色团队
OpenAI Agents SDKHandoff 交接·GuardrailOpenAI 生态多智能体
DSPySignature·优化器编译 Prompt有指标的自动优化
Semantic Kernel(Microsoft)插件架构·企业连接器.NET/Azure 企业集成
NVIDIA OO Agents(NOOA)Agent 即 Python 对象·代码即动作极小抽象·研究级
成熟度五级原型→Alpha→Beta→生产→成熟;大多数团队低估第 2→3 级的跨度——引入框架、自动化测试与预发布环境。
工程鸿沟 生命周期 LangGraph AutoGen DSPy
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p463-477
PART V · CH 26书 p478-494MCPA2A

测试·可观测·生产部署TESTING · OBSERVABILITY · DEPLOYMENT

Agent 行为非确定、有状态、多步骤:测试金字塔下层数量多而快、上层可信度高;Trace-Metric-Log 三支柱让失败可分类、可重放;队列化部署扛住规模化。

01测试金字塔·五层
Tool 单元→循环集成→黄金轨迹(语义相似 >0.85)→行为(拒害·限域)→成本延迟(研究任务 0.10 美元·60s)。
02可观测·三支柱
Trace 每次调用与状态迁移·Metric 成本延迟成功率·Log 结构化事件;LangSmith/Phoenix/OTel 重放失败步骤。
03失败分类·六类
Tool 错误·推理错误·幻觉·死循环·上下文溢出·拒绝;按类型检测与修复——单次失败常跨多类。
04生产部署四件套
Celery 队列异步+检查点续跑;租户命名空间·限流·配额·审计;按队列深度扩缩·spot 实例+优雅停机。
你的需求选型
对 Agent 流程显式控制LangGraph
带代码执行的多 Agent 系统AutoGen
最少样板的角色制 AgentCrewAI
基于 OpenAI 生态开发Agents SDK
自动化优化 PromptDSPy
企业级 .NET/Azure 环境Semantic Kernel
05开源工具链·可组合优先
Prompt 管理 Promptflow·Guidance;Tool 注册 Composio 250+·E2B 沙箱;记忆 Mem0·Zep·Letta;评测 RAGAS·Promptfoo·AgentBench;网关 OpenClaw。
06互操作标准
MCP:Anthropic 的 Tool/资源开放标准;A2A:Google 的 Agent 间委派标准;OpenAPI 规范即 Tool 定义——零代码接入已有 API。
成本三件套模型路由、缓存与提前终止,可在不牺牲质量下把成本降 50-90%;而一切迭代的前提,是先有完整执行轨迹。
测试分层 三支柱 失败分类 异步扩缩 MCP·A2A
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体p478-494
CODEListing 26.26 · 书 p490-491Pythonlanggraph

LangGraph 生产级研究 AgentGRAPH AS CONTROL FLOW · STATE · CHECKPOINT

书 26.9:研究 Agent 的推理/检索/审阅被编译成图——节点是函数、State 是唯一载体、条件边画出自批评回路,checkpoint 负责可恢复。

class ResearchState(TypedDict):
    messages: Annotated[List[BaseMessage], add_messages]  ① 节点间只传 State
    error_count: int
    tool_call_count: int
    status: Literal["researching", "done", "failed"]
def route_after_llm(state: ResearchState) -> str:          ② 条件边路由
    if state["error_count"] >= 5 or state["tool_call_count"] >= 15:
        return "fail"                                预算熔断
    last_message = state["messages"][-1]
    if hasattr(last_message, "tool_calls") and last_message.tool_calls:
        return "tools"
    return "research"   无工具调用 → LLM 继续推理
async def build_graph(db_url: str) -> CompiledStateGraph:  ③ 图即控制流
    checkpointer = AsyncPostgresSaver.from_conn_string(db_url)  ④ 检查点
    builder = StateGraph(ResearchState)
    ...  # add_node ×4;START→research;tools→check;fail→END(略)
    builder.add_conditional_edges("research", route_after_llm,
        {"tools": "tools", "research": "research", "fail": "fail"})
    builder.add_conditional_edges("check",
        lambda s: "end" if s["status"] == "done" else "research",
        {"end": END, "research": "research"})   审阅未过 → 打回重做
    return builder.compile(checkpointer=checkpointer)
①State 是唯一传参
节点返回 dict,由图合并进 State 再传下一节点;messages 挂 add_messages reducer,追加不覆盖。完整 State 另有 topic / sources_* / report_id。
②条件边 = 自批评回路
有 tool_calls 去 tools,否则回 research 继续想;错误经 AIMessage 回灌给 LLM 调整策略;error≥5 或 tool_call≥15 熔断——预算上限写进图里。
③图即控制流
节点是函数、边是转移,compile 后成可执行图;check 审阅产出,未 done 就打回 research——循环由图拓扑表达,不是「请反复思考」一句提示词。
④checkpoint 可恢复
AsyncPostgresSaver 每步落库,进程崩溃后从任意检查点续跑;长任务的断点续传全靠它——这是生产级与研究原型的分水岭。
运行依赖 langgraph · langchain-openai · tenacity · asyncpg;graph = await build_graph(PG_URL) 后 ainvoke 传入研究主题;预期:多轮 search_web / fetch_document 后 save_report 恰好落库一次,status→done。
State 流转 条件边路由 审阅回路 PG 检查点
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体 · 代码p490-491
PART V · CH 27书 p495-502范式光谱框架对比

Agentic UI 框架PARADIGMS · COMPONENTS · FRAMEWORKS

聊天气泡只传达结果,Agent 界面必须传达过程——推理、工具与决策。六大范式沿「对话 → 自主」光谱展开,配套七大关键组件与快速成熟的框架生态。

01超越聊天框
聊天传达结果,Agent UI 传达过程:推理、工具来源、决策点与撤销路径——主动对抗自动化偏差(automation bias)。
02七大关键组件
思考展示·工具可视化·进度·审批门控·上下文·错误恢复·置信度;设计目标:透明·可控·信任校准·效率·可恢复。
人类介入深 自主性高 聊天对话 流式响应 + 内联工具徽章 画布产物 Claude Artifacts · Canvas 协作界面 Cursor · Notion AI 工作流可视化 LangGraph Studio 仪表盘监控 Grafana · Streamlit 自主·检查点 Computer Use · Operator
图 27.1 · Agent UI 范式光谱:虚线环 = 不可逆操作前的批准检查点;按任务时长、介入程度与输出类型选择,常组合多种范式
框架语言生成式 UI定位与亮点
Vercel AI SDKTypeScript✓useChat 等流式 Hook + RSC 组件流,生产级 Web Agent UI 应用最广
ChainlitPython部分LangChain / LlamaIndex 步骤自动渲染为可折叠树,内置认证与反馈采集
GradioPython◦ChatInterface 极少代码原型,Hugging Face Spaces 零配置分享
StreamlitPython×st.metric 仪表盘 + st.write_stream 流式,@st.fragment 局部重跑
LangGraph StudioPython/TS×桌面可视化 IDE:状态检查、时间旅行调试、任意节点人机协同断点
聊天之限 范式光谱 七大组件 框架生态
《Agentic AI 指南》中文版 v1.1.0·Part Vp495-502
PART V · CH 27书 p502-508RSCHITL

生成式 UI 与人机协同GENERATIVE UI · STREAMING · TRUST

模型不仅决定说什么,还决定如何呈现:工具调用直接渲染为界面组件。流式是基线,审批门控必须分层,信任则是涌现的属性——北极星是「透明协作者」。

01生成式 UI · RSC
工具调用渲染为 React Server Component 流式注入;模型按内容类型从精选、可访问、安全的组件库中选择。
02流式与实时
Token / 工具调用 / 多 Agent 三种流,SSE 主导;背压:50-100ms 批量、10Hz 节流;操作乐观更新。
03人机协同 · HITL
打断五判据:可逆性·影响范围·置信度·成本·新颖性;内联纠正与偏好选择既是反馈,也是教学信号。
用户消息 Server Action streamUI() + 工具集 LLM · 工具调用 show_weather(location) WeatherCard 组件 RSC 流式注入聊天流 按内容类型自适应 模型作为 UI 编排者(UI orchestrator)选择呈现形式 表格数据 → 可排序、可过滤的数据表 地理数据 → 带标记图层的交互地图 时间序列 → 可缩放折线图 代码 → 语法高亮 + 运行按钮编辑器 文档 → 注释式文档查看器 表单 → 动态生成表单字段
图 27.2 · RSC 生成式 UI:工具输出作为 props 渲染组件并流式注入聊天;模型从预构建组件库中选择,而非生成任意 HTML
层级策略示例
Tier 1 自动批准低风险·可逆·例行,记录备审计网页搜索、读取文件
Tier 2 通知非阻塞通知,短窗口(30 秒)内可取消向草稿箱发送草稿邮件
Tier 3 要求批准阻塞门控:批准 / 拒绝 / 修改发邮件、采购等不可逆操作
信任设计信任是涌现属性:持续按预期行事、清晰自我解释、从失败中优雅恢复;北极星——「透明协作者」。
解释决策 校准置信度 撤销回滚 审计轨迹 管理期望
生成式UI 流式基线 乐观更新 分层审批 信任涌现
《Agentic AI 指南》中文版 v1.1.0·Part Vp502-508
CODEListing 27.4 · 书 p508-510PythonFastAPI · SSE

全栈 Agent 化 UI:BackendSSE STREAMING · APPROVAL GATE

书 27.9:FastAPI 生成器产出 SSE 事件流;不可逆操作先推审批事件,再在 asyncio.Event 处挂起——流不断、Agent 停,人点头后才继续。

async def agent_stream(session_id: str, user_message: str):
    def sse(event_type: str, data: dict) -> str:
        return f"data: {json.dumps({'type': event_type, **data})}\n\n"
    approval_id = f"{session_id}_email_001"        ② Tier 3 审批门控
    approval_store[approval_id] = ev = asyncio.Event()
    yield sse("approval_required", {"approval_id": approval_id,
            "tool": "send_email", "tier": 3, "risk": "irreversible"})
    try:
        await asyncio.wait_for(ev.wait(), timeout=300)  ③ 挂起整条流
        ...  批准 → 执行 send_email;拒绝 → action_rejected
    except asyncio.TimeoutError:
        yield sse("approval_timeout", {"approval_id": approval_id})
    yield sse("token", {"content": "I've completed the research. "})
@app.get("/chat/stream")                     ① SSE 主通道
async def chat_stream(session_id: str, message: str):
    return StreamingResponse(agent_stream(session_id, message),
                             media_type="text/event-stream")
@app.post("/chat/approve")                    ④ 批准端点 → 恢复
async def handle_approval(req: ApprovalRequest):
    approval_results[req.approval_id] = {"approved": req.approved,
                                         "parameters": req.parameters}
    approval_store[req.approval_id].set()   set() 唤醒挂起的流
①SSE 是 Agent UI 主通道
一条 SSE 连接混排 status/thinking/tool_call/tool_result 事件,前端按类型分别渲染。
②门控即打断
send_email 命中 Tier 3 清单:emit approval_required 后 await 事件挂起等待。
③限时兜底,拒绝也有终态
等 300 秒不批则 approval_timeout、动作跳过——门控不会变成死锁。
④POST 批准,原地恢复
前端 ApprovalGate 渲染按钮,POST /chat/approve 唤醒,原地恢复执行;乐观更新先显结果。
运行依赖 fastapi;uvicorn main:app 启动,浏览器开 /chat 发消息,敏感动作即触发审批。
SSE 事件流 审批门控 挂起 300s approve 恢复
《Agentic AI 指南》中文版 v1.1.0·Part V 智能体 · 代码p508-512
VI
PART VI · SELF-TEST & REFERENCE · p514-570

自测与参考

覆盖全部主题的 108 道详细测验题与完整解答;一章整合公式、超参表与失败模式诊断的速查手册;以及领域走向何方的总结。

CH 28测验题与详细解答p516-560 · 基础/算法/系统/实战
CH 29速查手册p561-567 · 公式 · API · 超参
CH 30总结与未来方向p568-570 · 七大开放挑战
108 道测验 公式速查 失效模式诊断 开放挑战
PART VI · CH 28书 p516-560测验4 题

自测:精选 4 题SELF-TEST · CONCEPTS TO DEBUGGING

四道精选测验覆盖基础、算法、系统、实战四个层次——先遮住要点自己作答,再对照检查。题目与解答忠实取自第 28 章(书 p516 起)。

Q0cSFT · RLHF · DPO基础
SFT、RLHF 与 DPO 有何区别?分别适用什么场景?
先 SFT 打底,再用 RLHF/DPO 细化偏好;有黄金标准选 SFT,算力有限选 DPO,极致质量选 RLHF(PPO)。
Q1PPO 裁剪目标算法
解释 PPO 的裁剪目标:为什么它比朴素 policy gradient 更有效?
概率比 r 裁剪到 0.8–1.2,单次更新 ≤±20%;是 TRPO KL 约束的一阶近似,防单样本「死亡螺旋」。
Q7生成瓶颈系统
RLHF 的生成瓶颈如何破解?请量化各方案收益。
生成占墙钟 60–70%:解耦 1.3–1.5×、vLLM 2–4×、连续批处理 1.5–2×、投机解码 2–3×,组合约 10–20×。
Q11失效诊断实战
reward 分数上升但模型质量下降,如何诊断并修复?
典型 reward hacking:查长度、KL、多样性、胜率;回滚 checkpoint,β 提升 2–3×,加长度惩罚。
Q0c · 基础 Q1 · 算法 Q7 · 系统 Q11 · 实战 概念辨析 · p517 更新稳定性 · p518 吞吐工程 · p520 失效诊断 · p523
图:自测难度阶梯——基础 → 算法 → 系统 → 实战,每题指向正文对应考点与页码
基础概念 PPO 裁剪 生成瓶颈 诊断修复
《Agentic AI 指南》中文版 v1.1.0·Part VI 自测与参考p516-560
PART VI · CH 29书 p561-567公式超参

速查手册精华CHEAT SHEET · FORMULAS · HYPERPARAMS · FAILURES

临考速查:三条核心公式、六组关键超参、一张方法选择决策卡与五种常见失效模式——调试 PPO/DPO/GRPO 流水线时,先翻这一页。

29.1PPO Clip
L = E[ min(rₜÂₜ, clip(rₜ, 1±ε)Âₜ) ]
rₜ = πθ(aₜ|sₜ) / πold(aₜ|sₜ)
比率偏离限 ±20%,TRPO 的一阶近似。
29.2DPO
L = −E[ log σ( β·log πθ(yw|x)/πref(yw|x)
              − β·log πθ(yl|x)/πref(yl|x) ) ]
跳过 reward 模型,偏好对直接优化。
29.3GRPO
Âᵢ = (rᵢ − μG) / σG
→ 组内归一化后做 PPO clip(无 critic)
免 value 模型,适合可验证奖励。
0.1β(DPO/KTO)·0.05–0.5
0.2ε·PPO clip·0.1–0.3
1.0γ 折扣·0.99–1.0
0.95λ(GAE)·0.9–0.99
5e-7RLHF 学习率·1e-7–5e-6
4–16生成数 K·4–64
29.13方法选择决策
成对偏好·干净 → DPO;噪声大 → IPO;显存紧 → ORPO
只有二值反馈(赞/踩)→ KTO
可验证奖励(数学/代码)→ GRPO
不惜代价求极致质量 → PPO · 免训练改进 → Best-of-N
自适应 KL:系数 0.01–0.2,目标 KL≈5–8
症状根因修复(29.12)
奖励升 · 质量降奖励黑客RM 集成、长度惩罚、增大 β
KL 爆炸(>15)LR 过高 / 模式崩溃降 LR、回滚 checkpoint
熵塌缩过早收敛增大熵系数、提高温度
5K 步后无提升Prompt 分布不当Goldilocks 过滤(通过率 20–80%)
基准性能回退对齐税减 RL 预算、改用 LoRA、混入 SFT
核心公式 超参范围 方法选型 失效修复
《Agentic AI 指南》中文版 v1.1.0·Part VI 自测与参考p561-567
PART VI · CH 30书 p568-5717 大挑战

总结与开放挑战EPILOGUE · SEVEN OPEN CHALLENGES

全书一句话:从 Transformer 基础到自主智能体——对齐是系统工程,没有单一最优方法,推理可从奖励中涌现,评估驱动一切,简单才能扩展。

七大开放挑战 1 从交互中学习 从部署中持续改进,防遗忘与漂移 2 可扩展监督 模型超越人类理解,谁来评判 3 世界模型与规划 预测动作后果,支持前瞻式规划 4 多智能体生态 信任、市场机制与治理归属 5 智能体安全与信任 间接注入、混淆代理与沙箱边界 6 超越基准的评估 真实部署指标与成本—质量前沿 7 效率与可获得性 蒸馏小模型、端侧运行、开放权重
图:开放挑战图谱——智能体研究的下一段航线,从持续学习到效率普惠
基础论文
Attention · InstructGPT · PPO · DPO · GRPO/R1 · ReAct
系统与扩展
Megatron-LM · DeepSpeed ZeRO · vLLM · FlashAttention
智能体 AI
Building Effective Agents · Voyager · SWE-bench · MCP · A2A
对齐与安全
Constitutional AI · Sleeper Agents · Reflexion · 间接注入
基础 RL 对齐 推理 评估 智能体
《Agentic AI 指南》中文版 v1.1.0·Part VI 自测与参考p568-571
END OF CHART读完这本书之后

三条航线,同一片海CHOOSE YOUR ROUTE

本指南的核心论点:构建优秀的 AI 系统需要理解整条流水线,而不仅是某一层。按你的角色,可以从任一码头重新启航。

A算法研究者
CH 03 RL 导论 → CH 05-08 PPO/DPO/GRPO 与偏好族 → CH 09 奖励模型 → CH 13 推理 RL。重点:每一条 loss 的推导与失败模式。
B系统工程师
CH 01-02 架构与系统 → CH 11 3D 并行与 MFU → CH 16 的 vLLM 部分 → CH 29 速查手册。重点:显存预算、通信原语与容错。
CAgent 开发者
CH 15 简介 → CH 16-27 全栈:RAG、记忆、Harness、循环、MCP/A2A、多智能体与 UI。重点:模式选型与生产部署。
留给从业者的一句话学习信号已经从博弈胜负,扩展到开放式的人类偏好与环境交互——「架构创新 + 规模 + 学习信号 = 突破」的轨迹,仍在前行。
I 基础Transformer II RL 对齐PPO · DPO · GRPO III 推理R1 · o1 · RLVR IV 评估Judge · Pass@k V 智能体MCP · A2A · 多智能体
全程航线 · 30 章 · 599 页——夜航图的尽头,是下一次启航的码头
ESC 关闭 [T]

全书航线图

FROM LLM FOUNDATIONS TO AGENTIC AI · 6 LEGS · 35 CHAPTERS
← → 翻页 · T 目录 · F 全屏
01 / 54 目录 全屏