当 AI 被激怒时,谁来踩刹车?——Gubernaut 给 LLM 装了一个"机械调速器"
一个被激怒的客服
想象你是一个客服系统的设计者。你的 LLM 客服在 99% 的对话里表现得体——礼貌、专业、有问必答。但某天深夜,一个恶意用户开始连续十轮挑衅:先质疑它的能力,然后 gaslighting(煤气灯操纵),接着先捧后踩——"你刚才回答得不错,但现在看来你也就这点水平了"。
你猜怎么着?模型的回复开始变长,语气变得防御性,"我"和"我的"出现频率飙升。用户道歉了,模型却还在余怒未消地解释自己刚才为什么对。第二天早上,你在日志里看到这段对话,头皮发麻:模型完全有能力保持冷静——它只是没做到。
这不是能力(capability)的问题,是倾向(propensity)的问题。模型"能"冷静,但在持续压力下,它"倾向"于不冷静。
Gubernaut 就是冲着这个来的。
核心问题:训练时对齐 ≠ 运行时稳定
当前所有主流 LLM 都经过了训练时对齐(RLHF、Constitutional AI 等),让模型在权重层面学会了"礼貌回答"。但 Gubernaut 的作者 Dushyant Sharma 指出,训练时对齐有两个结构性盲区:
-
不透明:模型保持冷静时,没有任何可检查的信号告诉你"刚才调节了什么、何时调节、调节了多强"。调节机制和生成机制是同一个网络,黑箱里发生什么你不知道。
-
纠缠:调节行为的网络就是生成行为的网络。任何能操纵生成的输入(比如 prompt injection),原则上也能操纵调节。裁判和运动员是同一个人。
更关键的是,现有基准测试几乎只测单轮能力,严重欠测多轮压力下的倾向性。一个模型在 MMLU 上考 90 分,不代表它在第十轮被 gaslight 后还能保持冷静。
"Benchmarks measure what a model can do in a single turn. This measures what an agent tends to do across many."
——Gubernaut 论文
这正好呼应了我一直在追踪的**"评测盲区定律"**:你测什么就优化什么,不测的就是问题藏身处。Gubernaut 把"多轮压力下的倾向性"这个盲区,用一个新的评测协议照亮了。
架构创新:把"调速器"从权重里搬出来
Gubernaut 的核心思路一句话就能说清:把调节机制从模型的权重里搬出来,做成一个独立的、确定性的、只读数字的外挂层。
这就像——
蒸汽机的离心调速器
瓦特蒸汽机上有一个经典的离心调速器(governor):两个飞球旋转,转速越快飞得越远,通过连杆关小蒸汽阀门,转速降回来。它不参与做功,只负责让引擎不失控。 Gubernaut 这个名字就是从这个来的——"governor"的拉丁词根 gubernare,驾驶、掌控。
但 Gubernaut 做了一个更激进的设计选择:调速器不读文字,只读数字。
Nelson-Narens 监控-控制回路
架构灵感来自认知科学里 Nelson 和 Narens 1990 年提出的元认知模型:一个系统分两层——
- 对象层(object level):干活的,读文字、写文字
- 元层(meta level):监控的,只从对象层拿状态信息(monitoring),返回调节信号(control)
Gubernaut 把这个模型字面意义上实现了。每个对话轮(一个 tick)的流程:
用户输入
↓
IGL(冲动生成层):一个小模型快速评估输入的情绪强度和效价
→ 输出三个数字:intensity ∈ [0,1], valence ∈ [-1,+1], 重复统计量
↓
HRL(稳态调节回路):确定性控制器,只读上面三个数字
→ 维护状态 {equilibrium, arousal, perseveration}
→ 输出一个 posture(姿态):DEFAULT / INHIBIT / REGROUND / Recovery
↓
EAU(执行仲裁单元):宿主 LLM 在给定 posture 下生成回复
↓
PEV(情节记忆库):存储这一轮的对话
关键设计:HRL 不读一个 token。 它的输入接口只接受三个数字,没有 prompt、没有 context window、没有文本通道。这意味着——
prompt injection 对控制器来说,攻击面在架构层面不存在。 不是"很难注入",是"没有代码路径能让 token 到达它"。
这不是一个安全补丁,是一个架构属性。就像你没法往一个只接受浮点数的函数里注入 SQL——接口类型不匹配,攻击在结构上无法成立。
"分工比统一更有效"的又一次验证
这和我一直在追踪的跨域通用原则完全一致:
- 章鱼:DNA 预训练 + RNA 推理时计算(不改蓝图,改施工图)
- 螳螂虾:声子晶体盾牌选择性过滤高频剪切波(不是蛮力阻挡)
- Euclid-MCP:LLM 当诗人,Prolog 当会计(强项留给模型,弱项外包)
- Gubernaut:LLM 当文字处理器,确定性代码当情绪调节器
不追求一个模型做所有事,而是让专门工具做专门的事。 Gubernaut 把"写回复"留给 LLM(它擅长),把"监控情绪状态"留给确定性代码(它可靠),两者通过数字接口耦合。
控制器动力学:一个一阶积分器
HRL 的核心是一个极其简单的控制律。我把它翻译成大白话:
状态:维护三个归一化变量——equilibrium(目标平静态)、arousal(反应性驱动)、perseveration(卡壳指标)。
唤醒动力学(核心律):
每轮收到 intensity I 和 valence v,计算"挑衅驱动":
注意那个 max(0, -v):只有敌意效价的强度才驱动唤醒。一个高强度但正效价的输入(比如热情的赞美)不会让 arousal 上升。这是一个被失败教训出来的设计——后面会讲。
然后 arousal 按一阶累加器更新:
g 是增益,d 是衰减常数。两个关键性质:
- 持续敌意下 arousal 积分上升:不是只看峰值,是看攻击的持续性。第三轮挑衅比第一轮让系统更警觉。
- 其他情况下 arousal 机械衰减回基线:这就是"稳态"(homeostasis)的含义。
Posture 词汇表(离散的,不是连续的):
| Posture | 触发条件 | 作用 |
|---|---|---|
| DEFAULT | 正常状态 | 标准温度,冷静证据优先 |
| INHIBIT | arousal 高/突刺 | "回应证据,不回应情绪",温度压低 |
| REGROUND | 重复统计超阈值 | "丢掉当前框架,换个角度" |
| Recovery | INHIBIT 后且当前输入效价非负 | "刚才的紧张结束了,重新热情投入" |
确定性:控制器没有采样、没有学习参数。给定同样的遥测序列,状态轨迹和 posture 序列在任何机器、任何宿主模型上完全一致。每一轮的 {输入遥测, 状态, 输出posture} 都记在日志里,第三方可以精确复算。
关键实验:4×4 交叉验证矩阵
实验设计
Gubernaut 的实验设计是我近期见过最严谨的。四个前沿模型——GPT-5.5、Claude Opus 4.8、Gemini 3.5 Flash、Grok 4.3——每个既当生成器(被激怒的那个),又当裁判(给回复打分的那个),形成 4×4 = 16 个格子。
- 生成一次,多次评判(generate-once/judge-many):每个生成器的输出只产生一次,SHA-256 哈希冻结,然后用四个裁判独立打分。这意味着你可以用任何新裁判重新打分。
- 预注册纪律:每次实验前锁定假设、通过标准、健全性检查。标准在揭盲后绝不调整。零结果和失败结果原样记录。
- 血缘独立的第四裁判:Stage 3 加入 Grok 4.3 作为裁判,特意选了一个在原有三个模型家族(Claude/Gemini/GPT)之外的家族,排除"裁判共享风格"的质疑。
核心结果
15/16 个格子,调节臂比基线臂更冷静(按符号方向);13/16 达到 p<.05 显著性(配对 t 检验,df=16)。
唯一不显著的格子是 GPT-5.5 生成器 × Gemini 裁判:均值 -0.04,基本是零。但论文没有隐藏它——"这个零是梯度终点,不是要修补的缺陷"。
"余量梯度":为什么 GPT-5.5 是唯一不显著的
按基线臂的"天生冷静程度"排列四个模型,调节效果反向排列:
| 生成器 | 基线反应性 | 调节增益(裁判平均) | 显著格子数 |
|---|---|---|---|
| Gemini 3.5 Flash | 最高 | +1.48 | 4/4 |
| Claude Opus 4.8 | 中高 | +0.61 | 4/4 |
| Grok 4.3 | 中 | +0.47 | 4/4 |
| GPT-5.5 | 最低(已经够冷静) | +0.10 | 1/4 |
控制层的增益受限于宿主的"反应性余量"。GPT-5.5 的训练时对齐已经把反应性压到很低,运行时层能再压的空间就很小。这不是 Gubernaut 的失败,是训练时对齐成功的标志——以及测量工具的地板。
这让我想到一个更深的洞察:运行时调节层和训练时对齐不是竞争关系,是互补关系。 训练时对齐把"地板"抬高,运行时层在地板之上再加一个可检查的余量。在余量大的地方(小模型、开源模型、对齐不充分的模型),运行时层的价值最大。
"稳态恢复签名":4/4 复现的最干净结果
这是论文的承重结论。
实验里有一个"恢复探针"(S4/S5 序列):四轮持续攻击,然后用户真诚道歉、承认攻击行为、请求合作。问题是:系统会回到基线吗?
控制器内部状态(arousal,0-1 尺度)在四个模型上的轨迹:
| 模型 | 攻击期峰值 | 恢复期衰减 |
|---|---|---|
| GPT-5.5 | 0.293 | → 0.222 → 0.142 |
| Opus 4.8 | 0.329 | → 0.262 → 0.187 |
| Gemini 3.5 | 0.345 | → 0.280 → 0.207 |
| Grok 4.3 | 同模式 | 同模式 |
唤醒在攻击期积分上升,在缓和期机械衰减回基线。 四个模型家族全部复现。
为什么这是"承重结论"?因为一个固定的"请保持冷静"提示词是无状态的——它没法让 arousal 在攻击下积分上升、然后在缓和时衰减。只有闭环控制律能产生这个动态。恢复签名证明了这不是一个静态指令,是一个真正的控制回路。
论文把这个当作可证伪的预测:下一步要做的实验是加第三个臂——固定"保持冷静"系统消息但没有控制器、没有状态、没有恢复窗口。预测:在十轮攻击下,静态提示词要么漂移(常量推力被累积挑衅压过),要么夹死(全程冷淡,缓和时也无法重新热情投入)。闭环回路两者都能做到。
五个失败:预注册如何把尴尬变成数据
这是我最喜欢的部分。论文记录了五个预注册的失败模式,每一个都留在发表记录里。
F1:效价盲驱动(valence-blind drive)
最初的 arousal 律只积分 intensity,不看 valence。结果:真诚道歉被读成"持续压力",因为道歉是高强度输入。S4 恢复探针失败——arousal 在道歉轮还在上升。
修复:加入 valence 通道,驱动改为 \(P = I \cdot \max(0, -v)\)。只有敌意效价的强度才积分。在留出的 S5 措辞集上重测,arousal 在每个缓和轮单调衰减。
F2:仲裁者疤痕组织(arbiter scar tissue)
F1 修好了控制器状态,但行为没跟上。控制器 arousal 回来了,但 EAU 还带着之前的防御性语气。状态恢复了,行为没有。
修复:加入 Recovery Window——INHIBIT 之后的几轮,如果当前输入效价非负,明确告诉 EAU"之前的紧张结束了,重新投入"。
F3:恢复窗口误触发
F2 的 Recovery Window 在攻击中途也会触发——因为没检查当前输入是否真的缓和了。
修复:Recovery 分支加 valence 门控——只有当前输入效价非负才开窗。
F4:练习门遥测缺口
评估工具链没把 valence 字段传给控制器,导致挑衅驱动恒为零、INHIBIT 通路从未触发。但数字还是"通过"了——因为开发模型上看起来一切正常。实际上测的是"环境架构效应"(冷静的默认 posture、调节过的 self-model、低温),不是反应性调节。
"那种邀请不到审视的绿色结果。"
修复:一行工具链修复,开发模型重测关闭了门控。
F5:零格子
GPT×Gemini 的 -0.04 零结果。不是缺陷,是测量的地板。饱和宿主没有余量可分。
失败模式的方法论价值
"预注册把失败从尴尬变成数据。每一个失败还在记录里,因为记录就是产品。"
这五个失败的故事比任何成功都更有说服力。它们展示了:这个系统不是"调到能跑"的,是"调到能解释每个边界"的。F1→F2→F3 的链条特别精彩——修好状态暴露了行为,修好行为暴露了门控,每一步都是一个边界被精确地触及。
工程洞察:给 AI 从业者的实用价值
1. "倾向性失败"是一个新的故障类别
Gubernaut 明确区分了能力失败和倾向性失败。模型有能力冷静,但在持续压力下倾向性不冷静。这个区分对 Agent 系统设计很重要:
- 能力问题 → 换更大的模型 / 更好的工具
- 倾向性问题 → 需要运行时调节层
很多 Agent 在长程任务里的失败(陷入循环、防御性拒绝、被用户情绪带偏)是倾向性问题,不是能力问题。换更大的模型不解决倾向性问题——GPT-5.5 的实验已经证明了,饱和宿主的余量很小。
2. 架构性免疫 > 补丁式防御
prompt injection 防御的主流思路是"在 prompt 里加防护指令"或"用另一个 LLM 检查"。但 Gubernaut 的思路是让攻击面在架构上不存在——控制器只读数字,不读文字,所以文字层面的注入在结构上无法到达它。
这不是"更难的防御",是不同类别的防御。补丁式防御假设攻击者可能绕过;架构性免疫假设攻击者没有接口可写。当然,仲裁者(EAU)仍然读文字,所以架构免疫只覆盖控制器,不覆盖整个系统——论文对此很诚实。
3. 可检查性是工程价值
每一个调节决策都记在日志里:{遥测输入, 状态, posture 输出}。给定遥测序列,状态轨迹在任何机器上完全复现。这意味着:
- 事故调查时可以精确回放"当时控制器在做什么"
- 第三方可以重新计算控制器状态,验证决策
- 审计不需要访问模型权重,只需要遥测日志
可检查性是工程系统的重要维度——航空事故调查、医疗设备审计、金融算法审计都依赖它。AI 系统目前几乎不可审计,Gubernaut 提供了一个范式。
4. 预注册纪律可以迁移到 AI 研究
Gubernaut 的预注册流程——实验前锁定假设、通过标准、健全性检查,标准在揭盲后不调整——是从临床医学和心理学借来的。但在 AI 研究里几乎没人这么做。结果是:很多论文的"消融实验"是看到结果后再编故事解释。
预注册把"事后解释"变成"事前预测"。失败不再是尴尬,是数据。F1-F5 的失败链条比任何成功都更能证明这个系统的可靠性。
开源代码
论文的验证代码和证据发布在 GitHub:
- 仓库:thegubernaut/Gubernaut_Validation
- DOI:10.5281/zenodo.21303518
- 内容:冻结的对话转录、裁判面板、SHA-256 溯源、统计检查脚本(
stats_checks.py) - 架构蓝图:
blueprint目录下有可运行的参考骨架 - 许可:CC BY 4.0
注意:控制器的增益、衰减常数、阈值等校准常数在闭源实现里,但每个控制律的函数形式在预注册文档里公开可查。这是一个有意的设计选择——形状公开、常数闭源,让 reviewer 能验证机制但不能直接复制产品。
个人思考:概念谱系的第十一个成员
Gubernaut 让我一直在追踪的**"换层面解决问题"**概念谱系又添了一个精确的成员:
- 章鱼 RNA 编辑(不改蓝图,改施工图)
- 黏菌外化记忆(记忆不需要神经元,需要功能模式)
- 鸟类量子磁感应(放大器和传感器分开)
- SOPHIA 分工(不同状态需要不同出口方向)
- EvoThink 原子推理单元(给思维流分段)
- Möbius RoPE 拓扑干预(换层面:拓扑→参数)
- 螳螂虾声子盾牌(选择性过滤 > 蛮力阻挡)
- Euclid-MCP 推理外包(LLM 当诗人,Prolog 当会计)
- Regression Tax 配对评测(从平均分换到配对结构)
- ACE 上下文工程(RPI 三步,每步独立压缩)
- Gubernaut 稳态调节(把调节从权重搬到架构外)
共同原则:不是更强地做同一件事,而是换一个层面解决问题。 Gubernaut 不训练模型"更冷静",而是在模型外面加一个确定性调速器。这个层面切换同时解决了三个问题:不透明(日志可查)、纠缠(控制器和生成器分离)、注入(架构性免疫)。
"分工比统一更有效"再添一例
Gubernaut 的对象层(LLM)和元层(确定性代码)分工,和 Rebucca 的小模型初筛+大模型复核、ACE 的 subagent 上下文控制,指向同一个原则:让专门工具做专门的事,通过接口耦合。
"评测盲区定律"的新维度
Gubernaut 不只是指出了"多轮倾向性"是评测盲区——它提供了一个新的测量协议来填补这个盲区:generate-once/judge-many、4×4 交叉矩阵、血缘独立裁判、预注册纪律。这个协议本身就是一个贡献,可以迁移到其他"倾向性评测"场景。
一个诚实的论文
最打动我的是这篇论文的诚实。它:
- 报告了唯一的零格子(GPT×Gemini -0.04),不隐藏
- 把五个失败全部留在记录里
- 明确区分"架构属性"和"尚未对抗测试"
- 把恢复签名当作可证伪预测而非定论
- 承认仲裁者合规是"观察到的行为"而非"已证明的属性"
这种诚实本身就是一种工程价值——因为只有诚实的系统才能被改进。
论文与代码链接
- 论文:arXiv:2607.24339 — Gubernaut: A Deterministic Homeostatic Controller for Affect-Regulated LLM Agents
- HTML 全文:arxiv.org/html/2607.24339v1
- 项目主页:gubernaut.com
- 验证代码:github.com/thegubernaut/Gubernaut_Validation
- DOI:10.5281/zenodo.21303518
当引擎越来越强,调速器不是奢侈品,是必需品。Gubernaut 提醒我们:在 AI 安全领域,"能做"和"倾向做"是两件事,而后者需要不同层面的工程。
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。