跳转至

TACT: Mitigating Overthinking and Overacting in Coding Agents via Activation Steering

会议: NeurIPS 2026
arXiv: 2605.05980
OpenReview: https://openreview.net/forum?id=hjaYclWRk0
代码: 待开源
领域: 代码智能
关键词: 代码智能体, 激活引导, 智能体漂移, 表征工程, 软件工程

一句话总结

针对长轨迹代码智能体易陷入“重复推导已知信息(过度思考)”与“盲目调用工具检索多余信息(过度行动)”的漂移失效,TACT在测试期将推理-动作边界处的隐层激活投影至正交化的漂移表征轴,无需重训练或提示词修改即可自适应拉回校准区域,在SWE-bench Verified上取得最高+5.8个百分点的修复率提升并减少最多26%的执行步数。

研究背景与动机

基于大语言模型的自主代码智能体在处理真实软件工程任务(如 SWE-bench)时,必须跨越数十乃至数百个交互步长完成代码库导航、故障定位与补丁合成。然而,当推理轨迹不断拉长时,智能体在思考(内省推理)与行动(工具调用)之间的算力分配往往表现出极高的脆弱性,导致行为随步数增加发生严重退化,即所谓的“智能体漂移(agent drift)”。这种退化主要体现为两类典型失败模式:其一是“过度思考(overthinking)”,智能体反复基于已有信息空转推导,不仅浪费上下文窗口并延迟必要操作,更可能固化错误假设、推迟能证伪该假设的工具调用,最终在超时或用尽步数时无功而返;其二是“过度行动(overacting)”,智能体在未充分消化最新观察结果或未产生新证据需求的前提下频繁触发工具调用,造成重复检索文件与无效执行命令,用冗余观察淹没轨迹,使假设更新更加困难。

以往工作通常在模型外部行为层面尝试缓解此类问题,例如引入 Reflexion 自省、Tree-of-Thoughts 树搜索、Meta-reasoner 控制器或显式在提示词中注入规则提醒。然而,这些黑盒化方案要么在漂移错误已经完整生成并污染上下文后才被动修补,要么需要多轮重试导致采样步数成倍膨胀(如 AgentDebug 需要额外 1.4 至 1.7 倍的步数开销),且无法在测试期阻止模型产生失衡的内部决策倾向。更重要的是,从任务成功与否这一终端指标难以诊断轨迹中每一步的失衡成因——失败的终局完全可能由过早行动或过度审慎导致。

受到大模型表征工程(Representation Engineering)的启发,高阶行为倾向往往以线性方向编码于 Transformer 的残差流中。本文提出的切入角度是:智能体在决定“结束思考并开始调用工具”的关键决策时刻(即 </think> 词元位置),其内部隐层状态是否已经表征了过度思考与过度行动的偏离方向?如果能够在线捕获这一内部信号,就能在行为产生之前对残差流施加干预。本文的核心 idea 是:将智能体单步的思考-行动失调形式化为残差流中的可分离几何方向,利用正交化的对比漂移轴在测试期对越界隐状态执行免微调的前向钩子拉回校准,实现零额外生成开销的自适应行为引导。

方法详解

整体框架

TACT(Think-Act Calibration via activation sTeering)包含三个串行阶段:轨迹步级标注(Annotate)、残差流漂移轴提取(Extract)以及测试期双轴激活引导(Test-time Steering)。首先,利用具有滚动状态验证机制的 LLM-as-judge 对历史轨迹的每一步分类为过度思考(OT)、过度行动(OA)或已校准(CAL);其次,在单次前向传播中提取 </think> 决策词元处的隐藏层状态,利用平衡均值差与 Gram-Schmidt 正交化构建解耦的故障表征轴及校准区域统计量;最后,在推理运行时通过前向钩子实时检测隐状态投影,将偏离校准带的激活向量拉回阈值范围内。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["长轨迹代码智能体交互<br/>包含思考、动作与观察序列"] --> B["阶段1:基于验证滚动状态的步级标注<br/>维护KnownFacts与Progress,打上OT/OA/CAL标签"]
    B --> C["阶段2:残差流正交漂移轴提取<br/>在think结束词元处提取隐状态,计算平衡均值差并正交化"]
    C --> D["阶段3:推理期双轴残差流介入<br/>计算标量投影偏移量,超阈值时执行投影门控或截断拉回"]
    D --> E["生成校准后的高质量工具调用<br/>减少无效思考与冗余命令,高效解决代码缺陷"]

关键设计

1. 基于验证滚动状态的三阶段轨迹标注:消除长上下文中的状态感知盲区 针对无状态判定器无法区分“重读已知文件”与“检索新文件”的核心痛点,TACT 将智能体轨迹划分为大小为 \(W=10\) 的步长窗口,并在窗口间传递一个受审计的滚动状态。该状态细分为记录已读文件、活跃假设、补丁修改与测试结果的“已知事实(KnownFacts)”,以及记录排查阶段、停滞步数与重复计数器的“进展指标(Progress)”。标注管线串联三个专职智能体:状态维护者负责归纳当前窗口新获取的信息;状态审计者核验其是否存在幻觉(记录未执行动作)、遗漏(漏记关键修改)或矛盾(测试失败误记为通过),并在报错时触发反思修正;最终由标注员结合验证后的全局状态给出单步标签(OT、OA 或 CAL)与置信度。该机制保证了每一步的失常判断均严格锚定于智能体当前已知信息的演进上下文。

2. 正交化残差流漂移轴提取:解耦过度思考与过度行动的几何表征 针对智能体内部思考与行动偏离信号往往高度交织、直接干预易相互干扰的问题,TACT 在 </think> 词元位置提取各 Transformer 层的隐藏状态 \(\mathbf{h}_{t}^{(\ell)} \in \mathbb{R}^d\)。在各层中,基于各任务内样本类别平衡差计算过度思考对校准状态的方向 \(\mathbf{v}_{\text{OT-vs-CAL}}^{(\ell)}\) 与过度行动对校准状态的方向 \(\mathbf{v}_{\text{OA-vs-CAL}}^{(\ell)}\)。由于实验验证过度思考信号在验证集上具有更高且更具区分度的分类 AUC(最高达 0.91),TACT 将归一化后的 \(\hat{\mathbf{v}}_{\text{OT}}^{(\ell)}\) 作为主基准轴,并运用 Gram-Schmidt 正交化消除过度行动轴中与过度思考轴平行的投影分量,得到正交副轴 \(\hat{\mathbf{v}}_{\text{OA}\perp}^{(\ell)}\):

\[\hat{\mathbf{v}}_{\text{OA}\perp}^{(\ell)} = \frac{\hat{\mathbf{v}}_{\text{OA-vs-CAL}}^{(\ell)} - \left(\hat{\mathbf{v}}_{\text{OA-vs-CAL}}^{(\ell)} \cdot \hat{\mathbf{v}}_{\text{OT}}^{(\ell)}\right)\hat{\mathbf{v}}_{\text{OT}}^{(\ell)}}{\left\|\hat{\mathbf{v}}_{\text{OA-vs-CAL}}^{(\ell)} - \left(\hat{\mathbf{v}}_{\text{OA-vs-CAL}}^{(\ell)} \cdot \hat{\mathbf{v}}_{\text{OT}}^{(\ell)}\right)\hat{\mathbf{v}}_{\text{OT}}^{(\ell)}\right\|_2}\]

同时,以训练集校准样本的经验均值 \(\boldsymbol{\mu}_{\text{CAL}}^{(\ell)}\) 作为几何中心,并以各轴上的投影标准差 \(\sigma_{\text{CAL},a}^{(\ell)}\) 确立校准区间尺度,使得跨层的偏离度量具有统一的统计物理意义。

3. 推理期双轴残差流介入策略:自适应校准越界激活而不增加采样开销 为了在零提示词修改、零微调的前提下在测试期抑制漂移,TACT 在验证集 AUC 排名前 \(K=10\) 的 Transformer 层上注册前向钩子。当模型生成 </think> 词元时,钩子计算当前隐藏状态相对于校准中心的中心化投影 \(p_{t,a}^{(\ell)} = (\mathbf{h}_{t}^{(\ell)} - \boldsymbol{\mu}_{\text{CAL}}^{(\ell)}) \cdot \hat{\mathbf{v}}_a^{(\ell)}\)。根据设定的校准带宽阈值 \(\tau_{a,\ell} = k \cdot \sigma_{\text{CAL},a}^{(\ell)}\),论文设计了三种介入机制: - 双向截断(TACT-Cap):仅在投影绝对值超出阈值时启动,直接将超出边界的投影强行夹断回最近的阈值边界 \([-\tau_{a,\ell}, +\tau_{a,\ell}]\); - 全局加偏(TACT-Add):在每一个前向步直接施加固定步长 \(s\) 的反方向偏移向量; - 投影门控(TACT-Gate):兼顾选择性与修正强度,当激活溢出校准带(\(|p| > \tau\))时,按强度系数 \(\lambda\) 衰减溢出量并沿对应轴回退:

\[\mathbf{h}_{t}^{(\ell)} \leftarrow \mathbf{h}_{t}^{(\ell)} - \lambda \cdot \text{excess}(p_{t,a}^{(\ell)}, \tau_{a,\ell}) \hat{\mathbf{v}}_a^{(\ell)}\]

这种自适应介入机制既避免了对已经校准的正常步施加扰动,又能在模型出现空转推理或盲目发号施令倾向的微观瞬间将其引导回高效探索路径。

一个完整示例

以智能体在 Django 仓库中排查一个 QuerySet 递归报错为例: 1. 未干预基线状态:智能体在第 25 步通过 git grep 已经拿到了报错函数源码与异常栈,但在第 26 至 30 步(OT 状态),智能体在 <think> 中连续 5 轮反复咀嚼该函数的变量赋值逻辑而未发起任何有效验证命令;或者在第 31 步(OA 状态),未根据报错信息修改代码,而是连续多次重复运行完全一致的 pytest tests/test_query.py 命令,导致步数快速耗尽。 2. TACT 介入过程:在第 26 步前向传播生成 </think> 词元时,前向钩子检测到前 10 层 Transformer 残差流在 \(\hat{\mathbf{v}}_{\text{OT}}\) 轴上的投影值达到了 \(3.2 \sigma_{\text{CAL}}\),明显超出设定阈值 \(\tau = 2.0 \sigma_{\text{CAL}}\)。 3. 校准效果:TACT-Gate 自动从隐状态中沿漂移轴扣除溢出的特征分量。校准后的隐藏状态直接促使模型停止无意义的反复内省推理,在下一步立即针对核心定位文件生成精准的代码编辑命令,将原本长达数十步的无效游弋压缩为直接产出正确 git patch 的高效轨迹。

实验关键数据

主实验

实验在 Qwen3.5-27B(稠密模型)与 Gemma-4-26B-A4B-it(稀疏 MoE 架构)上展开,测试基准涵盖真实软件工程基准 SWE-bench Verified(SWE-V)、终端系统任务 Terminal-Bench 2.0(TB2)以及具有真实复杂工具环境的 CLAW-Eval(CLAW,报告 Pass@3)。对比基线包括前置提示词注入(Reminder、ReCAP)与事后反思重试(AgentReflect、AgentDebug)。

模型 方法 SWE-V 解决率 (%) ↑ SWE-V 步数 ↓ TB2 解决率 (%) ↑ TB2 步数 ↓ CLAW Pass@3 (%) ↑ CLAW 步数 ↓ 平均解决率 (%) ↑
Qwen3.5-27B Base Model 67.0 75.2 30.3 48.2 55.9 12.3 51.1
Reminder 66.2 78.0 29.8 50.4 55.5 12.7 50.5
ReCAP 67.9 75.8 31.1 49.5 56.4 12.5 51.8
AgentReflect 68.4 73.1 32.0 46.8 57.0 11.9 52.5
AgentDebug† 70.5 116.4 32.8 81.7 58.2 16.9 53.8
TACT-Cap (Ours) 69.1 55.7 32.6 36.5 57.8 9.4 53.2
TACT-Add (Ours) 73.0 67.5 35.9 42.7 61.2 11.1 56.7
TACT-Gate (Ours) 73.3 65.3 36.0 41.2 61.5 10.8 56.9
Gemma-4-26B-A4B-it Base Model 59.7 52.1 15.7 18.2 56.3 9.2 43.9
Reminder 60.0 53.2 15.9 18.6 56.8 9.3 44.2
ReCAP 61.0 52.5 16.7 18.4 57.6 9.1 45.1
AgentReflect 60.4 51.0 16.0 17.7 56.9 9.0 44.4
AgentDebug† 62.0 78.9 17.2 31.5 58.0 12.6 45.7
TACT-Cap (Ours) 61.6 38.6 17.0 13.9 58.2 7.0 45.6
TACT-Add (Ours) 65.2 46.2 18.9 16.5 61.0 8.4 48.4
TACT-Gate (Ours) 65.5 44.7 19.1 16.0 61.4 8.1 48.7

(注:† 标记的 AgentDebug 需要在失败后至少进行二次重试展开,导致步数开销增加 1.4-1.7 倍;TACT 所有变体均为单次单向展开)

消融实验

在 Qwen3.5-27B 上的 SWE-bench Verified 基准上对 TACT-Gate(\(\lambda=0.5\))的各核心设计组件进行消融测试:

配置变体 OT 漂移轴 OA 漂移轴 正交化 (Orthog) 介入层选择 解决率 (%) ↑ 增益 Δ 解决平均步数 ↓
Baseline (无引导) – – – – 67.0 – 75.2
Full method (TACT-Gate) ✓ ✓ ✓ Top-10 层 73.3 +6.3 65.3
去掉 OT 轴 (仅 OA 轴) – ✓ – Top-10 层 69.6 +2.6 71.5
去掉 OA 轴 (仅 OT 轴) ✓ – – Top-10 层 71.2 +4.2 69.7
去掉正交化处理 ✓ ✓ – Top-10 层 70.5 +3.5 70.0
全层挂载 (全 64 层) ✓ ✓ ✓ 全部 64 层 68.4 +1.4 73.9

关键发现

  • 双轴解耦正交化至关重要:单独引导 OT 轴可带来 +4.2% 提升,单独引导 OA 轴带来 +2.6% 提升;若同时保留双轴但不对 OA 轴执行正交化,提升仅有 +3.5%,而施加 Gram-Schmidt 正交化后提升进一步扩大至 +6.3%(高出未正交版本 2.8 个百分点),证明过度思考与过度行动在隐空间中存在非正交重叠,正交化彻底消除了双向调节间的串扰。
  • 浅层表征信号纯净,全层干预反而引入噪声:表征质量分析显示,OT-vs-CAL 分离度在第 3 层达到 AUC 峰值 0.91,且在前 20 层稳定高于 0.86,但到了深层迅速衰减至 0.70 以下。仅选取 AUC 最高的 Top-10 层介入相比全 64 层干预大幅提升 4.9 个百分点(73.3% vs 68.4%),避免了深层噪声特征破坏正常语义表达。
  • 截断模式极致降本,门控模式性能最优:TACT-Cap 变体虽然解决率提升相对温和(+2.1%),但将 SWE-bench Verified 上的求解步长削减了整整 26%(从 75.2 步骤降至 55.7 步),且几乎不破坏原有决策稳定性;TACT-Gate 则在保持显著压缩步数(65.3 步)的同时取得了最高的综合解题率(73.3%)。
  • 判定器模型泛化性与鲁棒性:将用于生成步级标签的裁判模型由默认的 GPT-5.4 替换为 Claude Opus 4.6 后,提取得到的引导轴在 SWE-bench Verified 上的最终解决率差异在 1 个百分点以内(72.7% vs 73.3%),验证了漂移几何方向具备内在客观性。

亮点与洞察

  • 将轨迹宏观失调锚定于微观决策词元:以往长程任务的失调多被视作黑盒语境疲劳,TACT 首次发现代码智能体在推理与动作的转折点(</think> token)上,过度思考与过度行动均在线性表征空间中与正常决策高度可分(AUC 达到 0.90 左右)。这一发现将复杂的长程控制问题优雅转化为局部的低维向量几何校准。
  • 免微调、零额外调用的测试期前向拦截:相比主流的自我反思、调试重试等提示词外部框架,TACT 完全在模型内部前向传播的残差流中以常数级时间完成读写操作,既不消耗额外的 API 令牌与上下文窗口,也不破坏模型预训练参数分布,实现了效率与效果的兼得。
  • 跨模型架构与长程域迁移潜力:方法在稠密模型(Qwen3.5-27B)与稀疏混合专家模型(Gemma-4-26B-A4B-it)上均表现出高度一致的性能飞跃与步数压缩,证明该残差流漂移结构具有普适性,其正交表征对齐机制易于拓展至其他长程复杂规划任务。

局限与展望

  • 开源白盒依赖:TACT 强依赖于直接访问 Transformer 隐层残差流并注册前向钩子,因而目前仅适用于开源权重模型,无法直接应用于仅提供黑盒 API 的商用闭源闭环(如 GPT-4o 或 Claude 3.7)。
  • 离线轨迹依赖与领域限定:漂移轴的提取依赖于离线采集的代码调试轨迹与 LLM 标注,当前轴向量主要在代码工程与终端交互中构建,尚未在开放网页检索、数学自动机等异构智能体场景中检验跨领域直接迁移能力。
  • 未来探索方向:未来可探索借助稀疏自编码器(SAE)将线性漂移轴分解为语义更为单义的细粒度特征,或探索更细粒度的动态词元级激活抑制机制。

相关工作与启发

  • vs Reflexion / AgentDebug (外部反思重试机制):Reflexion 等方法将模型视为黑盒,通过在外部提示词中注入错误反思或强制执行多轮重试来修补失误。TACT 则直接深入残差流几何表征,在错误行为生成前即完成校准,不仅规避了 1.4-1.7 倍的冗余交互步长膨胀,且在单次展开下即实现更高解题率。
  • vs Representation Engineering / ITI (表征工程与隐层干预):既往的推断期干预工作(如 ITI、Refusal 轴)主要面向单轮问答中的诚实性、拒绝应答或助手人格等单步静态属性。TACT 首次将表征工程推向长程交互智能体动态规划决策,针对上下文强相关的“过度思考”与“过度行动”建立了基于滚动状态的情境化线性解耦基底。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次将残差流激活引导引入长轨迹自主代码智能体的思考-行动失调治理,选题立意与几何建模新颖独特。
  • 实验充分度: ⭐⭐⭐⭐⭐ 涵盖 dense 与 MoE 架构、三大代表性基准、详细的层级与正交消融以及跨人类/跨裁判的鲁棒性审计,数据扎实。
  • 写作质量: ⭐⭐⭐⭐⭐ 动机阐述深刻,几何直觉清晰,公式符号精炼节制,实验论证环环相扣。
  • 价值: ⭐⭐⭐⭐⭐ 为解决长程智能体计算浪费与上下文漂移问题提供了一条免微调、低开销的内部控制新范式。