贝叶斯Agent:当技能进化从「拍脑袋」变成「算概率」
> 你的Agent技能库越堆越多,但你真的知道每个技能有多可靠吗?IDEA Research团队把技能视为贝叶斯假设,用验证器输出的真实结果更新信念,让技能进化从「我觉得行」变成「后验概率告诉我应该探索、打补丁、拆分、压缩还是停用」。
---
一、一个问题:为什么Agent技能越堆越乱?
现代LLM Agent不只是一个模型,它是一个推理环境——prompts、工具接口、检索上下文、记忆、SOP、技能、harness反馈,所有这些外部条件共同决定了Agent的表现。
> "If a base model samples from P(X|θ), an agent samples from P(X|θ,C), where C contains the prompt, context, tools, memory, and harness feedback."
但这里有一个核心问题:这些外部条件(特别是可复用的技能和SOP)是怎么被更新和维护的?
现有方法有三条路线,但都有缺陷:
1. 启发式反思(如Reflexion):让LLM自己反思失败原因并修改技能。问题是——LLM的反思本身就是噪声,可能引入错误的编辑,损害后续任务。
2. 原始计数(如ExpeL、Voyager):把观察到的成功/失败当作可靠信念。问题是——Agent轨迹稀疏、非独立同分布,"成功3次"不等于"这个技能有75%可靠性"。
3. 无系统积累:很多Agent框架根本没有技能积累机制,每次都从零开始。
这篇由IDEA Research、香港科技大学(广州)和DataArcTech的Xiaojun Wu等人提出的Bayesian-Agent(arXiv:2606.08348),核心洞见是:把技能进化视为贝叶斯优化问题,而不是无校准的提示积累。
---
二、核心框架:技能是假设,验证是证据
2.1 问题形式化
冻结LLM参数不变,把Agent推理环境分解为四个模块:
$$C_t = (P_t, R_t, A_t, V_t)$$
- $P_t$:模型面向的提示和技能文本
- $R_t$:检索/记忆上下文
- $A_t$:工具和动作接口
- $V_t$:验证器或反馈通道
$$p_{k,t} = P(y_t = 1 \mid M_\theta, C_t, h_k, z_t)$$
其中 $z_t = g(e_t)$ 是从验证轨迹 $e_t$ 提取的离散特征向量。
2.2 轨迹证据建模
论文只信任验证器输出的真实执行结果,不对LLM自评估结果置信。每个轨迹记录:
$$e_t = (x_t, h_k, c_t, y_t, u_t, \tau_t, \ell_t, r_t, m_t)$$
| 字段 | 含义 |
|---|---|
| $x_t$ | 任务输入 |
| $h_k$ | 使用的技能 |
| $c_t$ | 任务上下文 |
| $y_t$ | 验证结果(0/1) |
| $u_t$ | 总token成本 |
| $\tau_t$ | 轮数 |
| $\ell_t$ | 经过时间 |
| $r_t$ | 验证器派生的失败模式 |
| $m_t$ | 短标量元数据 |
2.3 分类贝叶斯证据模型
Laplace平滑先验(λ=1):
$$\pi_{k,t}(\ell) = \frac{N_{k,\ell} + \lambda}{\sum_{\ell' \in \mathcal{Y}} N_{k,\ell'} + \lambda|\mathcal{Y}|}$$
因子化分类似然得分:
$$\tilde{p}_{k,t}(\ell|z) = \pi_{k,t}(\ell) \prod_{j=1}^{m} \theta_{k,j,t}^{(\ell)}(z_j)$$
归一化成功后验:
$$s_{k,t}(z) = \frac{\tilde{p}_{k,t}(1|z)}{\tilde{p}_{k,t}(0|z) + \tilde{p}_{k,t}(1|z)}$$
同时保留Beta-Bernoulli摘要(α, β)用于兼容性、审计和保守失败主导检查。
2.4 与频率主义的对比
论文尖锐批评了"计数即信念"的做法:
> "A frequency-style maintenance loop can count successes and failures after the fact, but sparse agent trajectories are rarely independent, identically distributed observations."
> "A single failure can be either a noisy accident or the first sign of a reusable failure mode."
频率估计:
$$\hat{p}_{k,t}(z) = \frac{\sum_{e_i} \mathbf{1}[y_i=1, g(e_i)=z]}{\sum_{e_i} \mathbf{1}[g(e_i)=z]}$$
缺陷:证据稀疏、上下文条件化、收集昂贵;单次失败可能是噪声或新失败模式的首次信号。
贝叶斯方法:把频率计数作为证据用于更新后验,而不是把计数本身当作信念。
---
三、五种后验引导操作:从概率到行动
后验不只是用来"看"的,是用来做决策的。
$$\pi(B_k) = \begin{cases} E, & |D_k| = 0 \\ R, & \beta_k \geq 4, s_k(\emptyset) < 0.45 \\ P, & \max_r F_k(r) \geq 2 \\ S, & |C_k| \geq 3, |D_k| \geq 4 \\ C, & |D_k| \geq 3, s_k(\emptyset) \geq 0.72 \\ E, & \text{otherwise} \end{cases}$$
| 动作 | 符号 | 触发条件 | 含义 |
|---|---|---|---|
| 探索 | E | 无观察或后验不确定 | 收集更多证据,不修改技能 |
| 停用 | R | β≥4 且成功概率<0.45 | 失败证据主导,技能不可靠 |
| 打补丁 | P | 同一失败模式出现≥2次 | 将重复失败转化为具体护栏 |
| 拆分 | S | ≥3个上下文且≥4个观察 | 一个宽泛技能覆盖异构情况 |
| 压缩 | C | ≥3个观察且成功概率≥0.72 | 保持可靠技能简洁,防止上下文溢出 |
3.1 真实案例:SOP-Bench 的补丁演化
失败模式:left_expected_output_blank(写完输出后留空)
观察计数:3 → 4
补丁内容:
> "After writing, re-read test_set_with_outputs.csv and confirm the target row's expected_output is non-empty."
> "If the target cell is empty, write the computed raw category string before finishing."
稳定守卫栏(7条,其中新增第7条来自补丁):
1. 读取 sop.txt、tools.py 和目标CSV行
2. 一索引行(header后),更新 rows[row_index - 1]
3. 验证 order_id、product_id、quantity_requested、customer_id、order_total
4. 仅计算目标行,仅写 expected_output 单元格
5. 使用 Python csv 模块,保留所有行/列
6. 写原始类别字符串(如 manual_review),不加 XML/Markdown/引号
7. 验证 expected_output 非空后再完成
这不是模糊的建议,是可执行的精确规则。
---
四、实验:三种基准 × 四种后端
4.1 三大基准
| 基准 | 测试能力 | 难度 |
|---|---|---|
| SOP-Bench | 多步骤工业SOP执行 | 中等 |
| Lifelong AgentBench | 终身学习、跨任务经验重用 | 中高 |
| RealFin-Bench | 隐含前提的金融推理 | 高 |
4.2 核心结果(deepseek-v4-flash)
| 基准 | GA基线 | BA-Full | BA-Inc | 修复失败数 |
|---|---|---|---|---|
| SOP-Bench | 80% | 95% | 95% | 3/4 |
| Lifelong AgentBench | 90% | 85% | 100% | 2/2 |
| RealFin-Bench | 45% | 52% | 65% | 8/22 |
1. BA-Inc(增量修复)比 BA-Full(全量在线演化)更稳定:
- Lifelong flash 上 BA-Full 从 90% 降到 85%——在线演化在证据稀疏时引入排序效应
- BA-Inc 只修复失败任务,token 消耗仅为 Full 的 12-15%
- 45% → 65% 是最大相对提升(+44%)
- 但仍有 22 个失败中只修复了 8 个,说明金融推理的隐含前提问题很难完全解决
- SOP BA-Inc: 153k token(仅修复)
- 对比 GA Full: 1.39M token
- 效率提升 71%(19.63 vs 11.47)
4.3 后端消融:跨框架验证
| 后端 | SOP flash | Lifelong flash | RealFin flash |
|---|---|---|---|
| Native BA | 100% / 100% | 100% / 100% | 70% / 72.5% |
| GenericAgent | 95% / 95% | 85% / 100% | 52.5% / 65% |
| mini-swe-agent | 95% / 100% | 95% / 100% | 55% / 70% |
| Claude Code | 100% / 100% | 100% / 100% | 80% / 87.5% |
Claude Code + flash 在 RealFin 上表现最强(80% → 87.5%),说明框架与后端质量有交互效应。
4.4 负面案例:为什么 BA-Full 有时反而更差?
Lifelong AgentBench + flash:
- GA: 90%
- BA-Full: 85%(↓5pp)
- BA-Inc: 100%
---
五、与现有方法的对比
| 维度 | Reflexion / ExpeL / Voyager | Bayesian-Agent |
|---|---|---|
| 更新机制 | LLM反思、原始计数、启发式规则 | 验证轨迹 → 贝叶斯证据 → 后验动作 |
| 信念表示 | 文本记忆、计数表 | 特征条件分类后验 + Beta-Bernoulli |
| 不确定性 | 无显式量化 | Laplace平滑、后验概率、保守阈值 |
| 可审计性 | 黑盒文本积累 | 可检查的后验审计轨迹、演化快照 |
| 失败处理 | 单次修复或忽略 | 重复失败模式 → 结构化补丁 |
| 技能质量 | 无显式退役机制 | 后验<0.45 → 停用(Retire) |
---
六、局限与边界
论文诚实列出了适用范围和局限:
最适用:
- 重复任务、有验证器、重复失败模式、有可注入技能文本的位置
- 一次性任务(无积累价值)
- 主观标签(无验证器)
- 高度非平稳环境(后验会过时)
- 缺失工具或数据导致的失败(非技能问题)
- 默认是因子化分类模型 + Laplace平滑,非完整贝叶斯结构学习
- 后端覆盖有限(4种Agent框架)
- 贝叶斯决策策略较保守,未来可 richer
七、结语:从「我觉得行」到「后验告诉我」
Bayesian-Agent 的核心贡献不是让 Agent 更聪明,而是让 Agent 的技能积累更诚实。
传统方法的问题是:Agent 做了一个任务,成功了,就把这个技能"记下来";失败了,就让 LLM 反思一下"修一修"。但 LLM 的反思不可靠,成功计数也不等于技能可靠性。
Bayesian-Agent 的做法是: 1. 只信任验证器——不依赖 LLM 自评估 2. 用特征条件化后验——不是"成功3次",而是"在上下文C、成本U、延迟L条件下,成功概率的后验是0.72" 3. 保守决策——证据不足时探索,失败主导时停用,重复失败时打补丁,可靠时压缩,宽泛时拆分 4. 可审计——每个技能的后验历史、失败模式计数、补丁演化全部保留
这不是一个更复杂的提示工程框架,而是一个认知架构——把 Agent 的技能库从「经验堆」升级为「概率化知识库」。
未来方向:
- 用更丰富的贝叶斯决策策略替代默认保守策略
- 通过后验适配器扩展到更多 Agent 框架
- 跨模型/跨部署共享技能信念
---
参考
- 论文:Wu et al., "Bayesian-Agent: Posterior-Guided Skill Evolution for LLM Agent Harnesses", arXiv:2606.08348 (2026)
- 机构:IDEA Research, 香港科技大学(广州), DataArcTech Ltd.
- 代码:开源(论文中提及 https URL)
- 模型:deepseek-v4-flash / deepseek-v4-pro
- 基准:SOP-Bench, Lifelong AgentBench, RealFin-Bench
- 后端:Native BA, GenericAgent, mini-swe-agent, Claude Code
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens