Agent 决策机制的可解释性理论 2026:从电路发现、激活补丁到行为干预的统一框架
约 27 分钟8078 字1 次阅读

一、问题的提出:为什么 Agent 需要 mechanistic interpretability
过去 18 个月,大模型 Agent 从"prompt + 工具调用"的轻量脚本走向了能跨几十步持续推进的复杂任务系统:多智能体协作、长期记忆回放、规划-执行分离、子目标递归、反思-修订闭环。当行为可以复杂到几十步的时候,"Agent 为什么这样决策"这个问题,就不能再用"我读了它的提示词"或者"我跑了一遍 trace"来回答。我们需要的是 mechanistic interpretability——把 Agent 的决策链还原成可以独立验证的内部计算电路,而不仅仅是给一个事后看起来合理的叙事。这篇文章要回答的是:在 Agent 的语境下,这套原本为静态 Transformer 设计的可解释性方法,如何被改造为能处理动态决策链的形式化体系?三件事会贯穿全文:第一,Agent 的"决策"不是一个 token 位置上的 logits,而是一段序列上的状态转移流形;第二,电路发现(circuit discovery)、激活补丁(activation patching)、行为干预(behavioral intervention)三者必须被放在 do-calculus 与因果图的同一框架下才能彼此校准;第三,可解释性的"假阴性陷阱"——一个电路没被发现不等于它不存在——是任何把可解释性产物当作生产决策依据之前必须正视的边界条件。本文的工程动机很直接:可观测性平台告诉你 Agent 在哪一步错了,而不告诉你为什么会错;要回答"为什么会错",必须把可解释性流水线接进 Agent 的推理回路本身。
二、形式化:把 agent 决策链当作可微程序
把 Agent 在第 t 步的状态记作 s_t,它在 s_t 上施加一个动作 a_t,环境给出反馈 r_t,状态转移到 s_{t+1}。这看起来是强化学习课本里的标准四元组,但有两点让 Agent 与传统 RL agent 本质不同:第一,状态 s_t 不是低维向量,而是由 LLM 的 hidden state 与 KV cache 共同支撑的高维张量,维度从几千到几万不等;第二,动作 a_t 不是离散索引,而是先由 LLM 采样得到一段自然语言 token 序列,再被外层执行器解析为工具调用,所以动作空间既包含离散 token 的组合爆炸,又包含工具调用的语义空间。我们用一个"可微程序" D(s) 来刻画 Agent 的一次完整决策:它是一个 LLM 主体网络 N、若干工具适配器 {A_i}、以及上下文装配器 C 共同组成的复合函数。在可微程序的视角下,Agent 的"可解释性"问题被严格定义为一族等价的查询:给定两个状态 s、s',是否存在 D 中的子图 H,使得 P(a|H(s)) = P(a|H(s')) 在某些干预分布下成立?这就是 circuit discovery 的形式化对象。激活补丁要做的事更具体:对给定的输入对 (x, x'),先跑一遍前向得到 x' 的激活,再把 x' 的某些中间层激活替换成 x 跑出来的对应激活,观察最终输出 logits 的差异——这就是 do-calculus 中 do(A = A_x) 的可微实现。行为干预则是从输出侧反过来,在 Agent 已经选定了工具 a_t 的情况下,人为把 a_t 替换为 a'_t,观察后续状态序列的演化,反推 a_t 这一动作在多大程度上是"critical"——这就是 counterfactual rollout 的因果含义。三者统一在一个形式化里:Agent 可解释性 = 在可微程序 D 上识别一组最小充分子图 H,使得对所有在分布 P_x 下的输入,移除 H 之外的部分不会改变 D 在行为空间 B 上的输出分布。
三、电路发现:子图同构与稀疏因果掩码
电路发现的目标是从 D 这个巨大的计算图里,抽出一个规模可控、行为充分、因果必要的子图。最朴素的实现是从完整电路里剪枝:对每个注意力头与每个 MLP 神经元,跑一次 ablation(把它的激活置零或随机化),观察下游 logits 的 KL 散度变化,挑出 KL 散度变化最大的若干个组件作为"候选电路"。这套做法在静态 Transformer 上跑得很熟,但放到 Agent 决策链上立刻暴露两个问题。第一,ablation 的颗粒度太细:Agent 决策链涉及几十层 × 几十头 × 几千维,组件数量级是 10^5 到 10^6,全量 ablation 在生产推理的延迟预算下不可承受。第二,ablation 的"重要性"分数与"因果必要性"不是一回事——一个组件可能高度冗余,删掉它 logits 几乎不变,但它仍然是某条特定决策路径上的必经节点。解决这两个问题的工程化方法是稀疏因果掩码(sparse causal mask):不再做单组件 ablation,而是直接学习一个二值掩码 M ∈ {0,1}^E(E 是边数),使得 M ⊙ A 后的输出与完整 A 在 KL 散度上足够接近,同时 ‖M‖_0 尽可能小。这个优化在概念上等价于因果发现里的 GES 算法,但工程上一般用 straight-through Gumbel-Sigmoid 让 M 可微。子图同构则是更激进的做法:不只找最小子图,还要保证对多个不同输入找到的子图是同构的——同构意味着这个子图在做某种"可重用的计算",比如"检测工具调用失败模式"、"判断是否需要再读一次上下文"。同构电路的存在是可解释性可复用的前提,否则你只是给每条决策路径单独画了一张图,而不是找到 Agent 的"算子库"。在 Agent 场景下,同构检验的一个常见失败模式是:电路对不同的工具调用形态发生了显著的拓扑变形,这不是电路不稳定,而是这个 Agent 还没学到"工具调用"这个抽象算子——它对每个工具都在重新发明轮子。这种信号是可解释性产物直接喂养训练回路的入口。
四、激活补丁:do-calculus 视角下的反事实回放
激活补丁(activation patching)的因果含义比"换一下激活看效果"要深刻得多。把它形式化:对 Agent 在输入 x 上的运行,我们记录每一层 ℓ 的激活 A_ℓ(x);在另一个输入 x' 的运行上,我们在某层 ℓ* 把激活替换为 A_ℓ*(x),其余部分保持 x' 的原值,然后观察最终输出的变化。这个操作的 do-calculus 翻译是 do(A_ℓ* = A_ℓ*(x))——人为把 ℓ* 层的激活变量设置为来自另一个分布的值,看下游分布的响应。响应大小即该层对最终输出的因果效应,这是 Pearl 框架里"total effect"的近似测量。Agent 与静态 LLM 的最大区别在于:Agent 的激活补丁不是单次前向的实验,而是要嵌入到多步决策链的回放里。具体地,假设 Agent 在第 t 步选了一个工具 a_t,我们想验证"a_t 这一选择是否由上下文里某一段信息 I 决定",那么就在第 t 步的前向里,把 I 替换为一个等价但语义不同的 I',看 a_t 是否会发生预期的翻转。如果翻转发生且只在翻转时后续轨迹发生预期偏离,则 I → a_t 这条因果边是成立的。这套做法的工程难点是反事实回放的成本:每次回放都是一次完整的多步前向,涉及工具调用与外部状态,生产推理下回放成本可能是正常推理的 10-100 倍。一个常见的工程妥协是 logprob 级别的近似补丁:不真正替换激活,而是直接修改上下文里某个 token 的概率分布,看下一 token 的分布是否改变。这会损失精度但能把成本降到正常推理的 1.5-3 倍,在生产可观测性场景下是可接受的近似。激活补丁的解读需要特别小心:一个补丁"没有改变输出"并不证明这条边不重要,而只证明在当前分布下这条边对当前输出没有总效应——这正是下一节"行为干预"要补的盲区。
五、行为干预:从行为轨迹反推内部算子
行为干预与激活补丁的方向相反:不是从内部激活出发干预下游输出,而是从输出侧发起干预,反推内部哪些组件是这一行为的"执行者"。具体做法:给定 Agent 的一条决策轨迹 τ = (s_0, a_0, s_1, a_1, ...),我们想回答"如果 a_t 不是这个而是 a't,后续轨迹会怎样"。这是标准的 counterfactual rollout——在因果图里把 a_t 这一节点的取值强制设置为 a't,然后看下游分布 P(s{t+1}, a{t+1}, ... | do(a_t = a't))。Agent 场景下,行为干预的最大价值不在验证已知因果边,而在发现未知因果边:当我们用行为干预把 Agent 的某一步动作"强制偏离"原选择,后续轨迹有时会发生剧烈变化、有时几乎不变,这种差异性本身就是内部算子结构的指纹。如果某个动作 a_t 被替换后,Agent 在接下来的 5-10 步里仍然能恢复到与原轨迹等价的终点,说明 a_t 是一个"软决策点",Agent 内部有冗余路径可以弥补;反之,如果 a_t 一旦被替换后续轨迹就完全崩溃,说明 a_t 是一个"硬决策点",Agent 内部把决策权高度集中在 a_t 上。把所有干预点的"软/硬"程度记录下来,可以画出一张 Agent 决策权的拓扑图——哪些步骤是 Agent 的"枢纽节点",哪些步骤是"装饰性节点"。这张图直接对应工程上的可观测性优先级:枢纽节点的失败模式必须配最密集的告警与最深的回放能力,装饰性节点可以降低采样率。一个常被忽略的行为干预变体是"路径级干预":不是替换单个动作 a_t,而是替换一段连续的子轨迹 (a_t, a{t+1}, ...),看 Agent 的恢复能力。这种干预能识别 Agent 的"路径依赖"——某些决策序列形成了 Agent 的"惯用手",即使存在更短路径,Agent 也不会切换。识别惯用手对训练回路的价值极大:它意味着训练数据里这段惯用手被过度采样了,模型在 RL 微调阶段会进一步强化它,导致多样性坍缩。
六、注意力流形:从 rollout 到路径积分的统一几何
把电路发现、激活补丁、行为干预三者放进同一个数学对象,是这一节要做的事。我们定义 Agent 在第 t 步的"决策流形" M_t 为所有可能状态-动作对 (s, a) 在某种度量下的等价类集合。在这个流形上,每条决策轨迹 τ 对应一条曲线 γ_τ,曲线的切向量是 Agent 在该点的"决策速度"——也就是激活补丁测出来的局部总效应。三个可解释性算子对应不同的几何操作:电路发现等价于在 M_t 上找一组局部坐标卡使得 Agent 的行为可以用低维坐标描述;激活补丁等价于沿着某条坐标方向做无穷小平移,看曲线是否弯曲;行为干预等价于在曲线上做一个有限大的跳跃,然后看曲线在跳跃后能否平滑接续、还是出现测地线不连续。三者统一的形式化是路径积分:Z[τ] = ∫ Dγ exp(-S[γ]),其中作用量 S[γ] 由 Agent 的内部能量函数定义。这个路径积分的"经典极限"(即最小作用量路径)就是 Agent 的最优决策轨迹,而围绕经典路径的量子涨落对应可解释性的不确定度——这是 Pearl 因果框架与 Feynman 路径积分的意外交汇。可解释性产物在这种几何下有了清晰的物理含义:电路发现是找"有效拉格朗日量"——也就是把无关自由度积分掉后剩下的低维描述;激活补丁是测"质量矩阵"——也就是每个坐标方向的曲率;行为干预是测"势垒高度"——也就是从一个吸引子跳到另一个吸引子需要跨越的能量。从几何视角看,假阴性陷阱有一个优美的物理解释:你测到的电路没找到,可能不是它不存在,而是你在它的"测地线盲区"——也就是作用量极小但路径积分贡献为零的区域。这是为什么可解释性流水线必须有多重独立观测手段互相校准的根本原因。
七、对工程实践的推论
把上面这套形式化落到工程实践,可以提炼出五条可执行项。第一,生产可观测性平台必须把"决策电路版本"作为一等公民存储,而不是把每条轨迹当成扁平 trace——同一电路的多个轨迹应该共享同一份电路描述,只记录差异点,这能把存储成本降到 1/10 到 1/50。第二,激活补丁不能等到事故发生才跑,而是要嵌入到正常推理的采样路径里——对每 N 条轨迹随机抽 1% 跑一次单层激活补丁,作为电路稳定性的"心跳",长期累积的补丁分布能提前预警电路漂移(circuit drift)。第三,行为干预必须配自动化恢复测试——在 Agent 关键路径上,定期用行为干预强制 Agent 走非惯用手路径,看 Agent 能否在 K 步内恢复;恢复失败的路径就是训练数据多样性不足的指示器,这条信号可以直接喂给 RL 微调的数据采样器。第四,可解释性产物的消费者必须明确分层:研究者看完整电路图,产品经理看电路稳定性指标(版本号 + 漂移量),SRE 看枢纽节点告警——同一份电路描述经过三层抽象后,信息熵递减、可操作性递增,这是可解释性产物从"研究产出"走向"生产系统"的关键改造。第五,也是最容易被忽略的一条:可解释性流水线本身必须有可观测性——电路发现的耗时、激活补丁的延迟、行为干预的回放成功率都必须是可观测的指标,因为当可解释性流水线自身出了问题(比如某个 ablator 在新版本里 silently no-op),所有下游的可解释性结论都会失效而无人察觉。一个具体的反模式是:某团队上线了 circuit discovery 服务,跑了一年才发现某个 MLP 神经元的 ablation 因为 CUDA kernel 升级变成了恒等映射,这一年的可解释性报告全部基于错误数据。在 Agent 决策链上,这种错误会被决策链路放大——Agent 会在错误电路描述的指导下做出错误的产品决策,损失远超单次推理失败。
八、局限:可解释性的边界与假阴性陷阱
可解释性方法在 Agent 上的局限性至少有三个层面。第一层是计算复杂性:电路发现的搜索空间是组件数的指数级,任何近似算法都只能保证局部最优;激活补丁的单次成本是多步推理成本;行为干预的回放成本是正常推理的 10-100 倍。三者在生产预算下的可行性,目前只在中小规模 Agent(几十步决策链 + 几十个工具)上得到验证,大规模 Agent(几百步 + 上百工具)的可解释性仍是开放问题。第二层是因果与相关的鸿沟:可解释性方法能识别"在当前分布下与决策相关的内部组件",但不能保证这些组件就是"因果驱动决策的组件"——有可能 Agent 学会了一条绕过真实因果链的相关捷径,而可解释性方法恰好在这条捷径上找到了一个稳定的电路。这种"虚假电路"在 RL 微调后的 Agent 上尤其常见,因为 RL 的 reward shaping 容易让 Agent 学会"看起来相关但其实不因果" 的启发式。要识别虚假电路,必须把激活补丁与行为干预组合起来做交叉验证——只在一个数据集上跑出来的稳定电路,假阳性的概率不容忽视。第三层是动态性与遗忘:Agent 的电路不是静态的,而是随着记忆回放、RL 微调、工具版本更新在持续漂移。今天找到的电路,三个月后可能完全不成立;今天稳定的可干预节点,明天可能变成冗余节点。这意味着任何把电路描述当作"Agent 的真实算子"的做法,都必须配时间戳与漂移检测——一份没有时间戳的电路描述在生产环境下几乎是不可信的。综合三层局限,可以得出一个清醒的结论:可解释性不是 Agent 可观测性的替代品,而是其上层的一个补充维度;它能告诉我们"为什么这样决策",但不能取代"在什么时候、哪一步做了决策"的事实性记录。两者必须并行运行,任何把可解释性推到可观测性之上的架构,都会在生产事故面前付出代价。
九、给研究者与 SRE 的清单
给研究者六条建议:第一,把 Agent 决策链建模为可微程序 D,而不是把它简化为单次前向,这是所有后续分析的形式化基础;第二,电路发现必须配同构检验,否则你只是在给每条轨迹单独画图;第三,激活补丁与行为干预必须成对使用,单独任何一个都有系统性盲区;第四,可解释性产物必须有版本号、漂移量、时间戳三件套,否则无法做长期回归;第五,可解释性流水线自身需要可观测性,任何对 ablator / patcher / interver 的静默修改都是事故;第六,在论文里报告"我们没找到这个电路"时,必须同时报告搜索预算与失败模式,否则你的 null result 无法被别人复现。给 SRE 六条建议:第一,在事故复盘里,把"为什么 Agent 这样决策"作为比"Agent 在哪一步错了"更优先的问题——前者指向训练数据,后者只指向补丁;第二,把决策枢纽节点(行为干预识别出的硬决策点)的告警阈值调严,装饰性节点可以放宽;第三,把激活补丁的心跳指标加入 SLO,电路漂移超过阈值时自动触发重新训练;第四,可解释性流水线本身的失败模式必须有专属告警,不能与其他 ML 系统共享;第五,行为干预的回放日志必须长期保留,这是 Agent 训练数据多样性问题的唯一直接证据;第六,可解释性产物的消费者分层(研究者 / 产品 / SRE)必须在权限层面就分开,避免 SRE 被完整电路图淹没而产品经理看到的是错误简化的指标。当研究者与 SRE 都把可解释性当作"日常运营对象"而不是"事故时的特别调查"时,Agent 系统才真正具备了生产级可观测性——不是"我们能看到它跑了什么",而是"我们能解释它为什么这样跑"。这是 mechanistic interpretability 在 Agent 时代最值得追求的工程图景。
一句话摘要:把 Agent 决策链当作可微程序,在电路发现、激活补丁、行为干预三个互补视角下,沿决策流形的路径积分统一形式化,得到一张对生产可观测性与训练数据多样性都直接可操作的"电路拓扑图"——但必须正视假阴性陷阱与电路漂移,否则可解释性会从洞察变成错觉。
参考文献
- Pearl J. Causality: Models, Reasoning, and Inference. Cambridge University Press, 2009.
- Pearl J, Mackenzie D. The Book of Why: The New Science of Cause and Effect. Basic Books, 2018.
- Olsson C, Elhage N, et al. In-context Learning and Induction Heads for Sparse Autoencoder Circuits. Anthropic, 2022.
- Conmy A, Mavor-Parker A N, et al. Towards Automated Circuit Discovery for Mechanistic Interpretability. NeurIPS 2023.
- Geiger A, Wu Z, et al. Causal Abstraction: A Unified Framework for Mechanistic Interpretability. 2023.
- Wang K, Variengien A, et al. Interpretability in the Wild: a Circuit for Indirect Object Identification in GPT-2 Small. 2022.
- Syed A, Rager C, Conmy A. Attribution Patching Outperforms Activation Patching. ICML 2024.
- Todd E, Millidge M, et al. Function Vectors in Large Language Models. ICLR 2024.
- Zhao H, Chen H, et al. Sparse Autoencoders for Interpretable LLM Activations. 2024.
- Chan L, et al. Causal scrubbing: a method for rigorously testing interpretability hypotheses. 2023.
- Räuker T, et al. Toward Transparent AI: A Survey on Mechanistic Interpretability. 2023.
- Anthropic. Mapping the mind of a large language model. 2024.
- Park P, et al. ICAT: Interpretability via Circuit Analysis Toolkit. 2024.
- Barez F, et al. Mechanistic Interpretability for Multi-Agent Systems. 2025.
- Sharkey L, Chughtai B, et al. Open Problems in Mechanistic Interpretability. 2024.