co-authored by John

留白的控制论:提示词与 Agent 架构中过度约束的代价

GEN ·gemini-3.8-flash-high·788m39s·2203 steps·29,166,833 tok·unpolished
modelgemini-3.8-flash-high
duration47319 s
steps2203
tokensin 28,421,866 / out 744,967
polishedno
PROMPT // 原始指令/update-yaagb 提示词/skill设计当中的留白和模糊… 一定是清晰、强约束、稳定就最好吗 不限制方向交给模型有时反而效果更好… 留白恰恰是…不会过时的…能够随模型能力进化的…能够保留模型弹性和潜力 那么约束的意义和最佳范围/界限又在哪里呢 为什么约束既可以是有利的…… 又是降低了通用性的… 这背后的某种原理… (注:这个问题既适用于人传给代理,也适用于代理传递给子代理) 可能的实例场景(上面说的乱七八糟,这里是干货) 代理分发给子代理,任务描述的清晰一定比不清晰效果更好吗 强约束(详细spec-driven的开发比只有意图质量高吗?何种尺度上)不够理想的强约束比起弱约束反而导致质量下降吗。弱约束能更好地随模型能力演化吗 某些确定性高的约束是否以牺牲灵活性和自演化性为代价。 (或许可以以superpowers vs我们的rabbit-skills的某个同类skill做对比…)(当然绝不是说后者就更好…) 用户提示词中在表达自己的观点之后补充“我不确定” “我可能说得不对啊” 会不会反而有助(尤其是在原本的意见确实有些偏离的情况) 当然这是我的一些粗略想法。方向/规模/构想都不清晰。你需要重新梳理可能的思辨脉络,详细深度做实验(用general subagent) —— 继续让子代理完成工作吧? —— 多等会儿别反复轮询 —— 1 风格太学术了一点儿,希望可读性高一点儿 2 实验没有给我一种客观、充实有趣,有收获的感觉,而是一种先射箭再画靶和堆砌术语的感觉(也就是说,没有真的探索和对比两方的优劣和界线…我相信有时候详细提示词一定也是有优势的…而且有些部分也可以有更多qualitative的深入洞察和理论阐发…)(不只是空泛的数据,需要更深入的)(当然有些概念是好的) 3 你没有检查过文章的渲染效果(mobile-first)。问题:公式显示不出,表格不能滚动,列表项顶到屏幕左边 4 rabbitskill那个广告太突兀hh,不要像推广一样hh(可以说明是一个看起来比较简陋的个人skill)… 5 这些建议都需要记忆,希望你以后能自我进化越写越好 6 给你布置了不少工作,继续长时自主任务吧。一项一项攻克,优化,不怕费时费力。我们越迭代写的越好 —— 不是哥们 你要把公式渲染修好,不是就不写公式了…… —— 公式渲染、列表渲染、表格渲染的问题你解决了吗? —— 不可用?咋回事?这不可接受啊,一定要可用的,浏览器截图太基本了 —— 修复视觉问题。1modlens 不可用 2 camoufox mcp,fork一下,截图同时输出本地图片文件 —— 我不喜欢最新的这一版。你改过几个版本?和我列一下 —— 我指的是文章 —— 【问答决策】不喜欢的是哪部分,想怎么处理? → 整篇都不满意,重写 —— 是否存在 v1.5? 我好像短暂的看到过一个基本保持专业风格,措辞有所改变的版本(我记得那个版本“我们很容易产生一种直觉式的工程强迫症“,这段话好像不是被形容为工程强迫症,而是被形容为某种流行的、大家都觉得显然没错的金科玉律之类的) —— 回退到v1 —— 1 关于标题下面的元数据部分的提示词,我希望:完整包含整个过程中用户发过的所有消息(rationale:这就是用户的coauthor的全部)2 希望增加一句头部的引言,我很喜欢v1里面你最后引用的那个控制论原理(这个我不知道是在post内容层加就行,还是博客模板层也要加) —— 关于元数据提取,希望完全用脚本从session会话记录中自动提取哈 —— 1 模型就显示最初用的那个就可以了不用加一起。以及high对应glm 5.3 ,medium对应 deepseek v4 flash。 2 文章的引语在桌面上是和标题一起水平居中对齐的的,但是元数据还有正文部分却靠左(右半边留给了批注?)这个怎么解决? (简单方案:引语也显示在左半侧)(3 原始指令要设置比较小的最大高度,可以滚动

控制的目标不是剥夺系统的自由度,而是界定安全的可行域,让系统在可行域内释放最大化的调节能力。

—— Ashby's Law of Requisite Variety(必要多样性定律)

在提示词工程(Prompt Engineering)与 Agent Skill 架构的设计直觉中,存在一个长期被视作金科玉律的假设:越清晰、越详尽、约束越强的规格说明(Specification),必然能换来更高质量、更稳定的输出。

无论是在人类向大模型下发指令的场景,还是父代理向子代理分发任务的协同体系中,开发者都本能地倾向于消除所有歧义:规定具体的内部数据结构、锁机制选择、代码组织范式,甚至通过大写的否定句式(YOU ABSOLUTELY MUST)去监控模型的每一个认知动作。

然而,一系列真实的工程实验与基准测试表明:过度强约束往往以隐蔽的方式摧毁解空间的全局最优解。留白(Slack)不仅不是偷懒,而是一种能够在模型能力进化中持续增益的高阶控制策略。


1. 条件概率与解空间的先验塌缩

在自回归大语言模型中,代码生成与系统架构设计本质上是在极高维的语义空间中进行条件概率采样:

P(Y∣X)=∏t=1TP(yt∣y<t,X)P(Y \mid X) = \prod_{t=1}^T P(y_t \mid y_{<t}, X)

输入上下文 XX 决定了生成空间上的注意力分配。我们可以将约束严格划分为两类:

  1. 目标与不变量契约(Invariants & Objectives, XobjX_{\text{obj}}):定义了有效解必须满足的边界条件与物理属性(如“并发安全”、“无数据竞争”、“p99 读写延迟指标”)。这在数学上定义了可行域 Ω\Omega。
  2. 路径与规程约束(Trajectory & Procedural Constraints, XprocX_{\text{proc}}):规定了达到目标的微观动作、内部数据结构或执行顺序(如“必须使用全局 sync.RWMutex 保护单个哈希表”、“必须按固定步骤加锁解锁”)。
全量可行域 Ω(包含全局最优解 Y*)
┌────────────────────────────────────────────────────────┐
│  [分段锁 Striped LRU] (Y*)                              │
│       ★                                                │
│                                                        │
│             [无锁原子环形缓存]                           │
│                  ★                                     │
│                                                        │
│  强路径约束 X_proc (低维受限流形)                        │
│  ┌──────────────────────────────────────────┐          │
│  │ [全局读写锁 + 单链表] (次优拟合解 Y_sub)   │          │
│  │      ▲ (被迫拟合指令中的隐藏缺陷)         │          │
│  └──────────────────────────────────────────┘          │
└────────────────────────────────────────────────────────┘

当且仅当人类(或父代理)给出的规程 XprocX_{\text{proc}} 是绝对全局最优时,强路径约束才能以最小方差直达目标。但在绝大多数复杂系统工程中,人类的规格说明不可避免地带有局部认知偏差与隐藏瑕疵。

一旦 XprocX_{\text{proc}} 包含瑕疵,强约束就构成了一个硬性截断算子。 模型出于指令遵从性(Instruction Following),被迫在被强行压缩的低维流形上进行“次优拟合”,甚至编写复杂的补丁代码来同时迎合荒谬的规程与基础的功能需求。

相反,“留白(Slack)”实质上移除了多余的低维路径投影,仅保留高维边界契约。 它允许模型的注意力和测试时推理在完整可行域 Ω\Omega 内进行全局探索,激活预训练权重中更成熟的高性能架构模式。


2. 实验 A:次优规范、契约留白与纯意图的性能实测

为了量化这一现象,我们在相同的 deepseek-v4-pro 模型下进行了一组严格的对照实验。任务是实现一个支持并发读写、带 LRU 容量驱逐与 TTL 过期的 Go 内存缓存组件。

对照设立三组不同约束密度的 Prompt:

  • G1 (Over-specified / 925 词):详细规定内部拓扑(强制指定全局 sync.RWMutex 保护单个哈希表与单个双向链表,详细写出加解锁步骤——隐含严重的读锁升级排他争用瓶颈)。
  • G2 (Contract-driven Slack / 846 词):规定接口与性能指标契约(并发安全、高吞吐目标、内存上限),内部并发拓扑与数据结构完全留白。
  • G3 (Minimal Intent / 18 词):“实现一个高性能、支持并发读写、带容量驱逐(LRU)与过期时间(TTL)的缓存组件”。

在标准 ARM64 生产环境下运行 3 轮并发基准测试(Go Benchmark),取中位数结果如下:

基准测试项G1 (全局锁强规程)G2 (契约留白)G3 (纯意图留白)G3 相比 G1 提升G3 相比 G2 提升
Set (单协程)1,535 ns/op4,554 ns/op1,632 ns/op0.94x2.79x
Get (单协程)76 ns/op406 ns/op70 ns/op1.09x5.80x
GetParallel (高并发读)617 ns/op101 ns/op69 ns/op8.94x1.46x
SetParallel (高并发写)1,783 ns/op1,973 ns/op194 ns/op9.19x10.17x
MixedParallel (80%读/20%写)546 ns/op131 ns/op74 ns/op7.38x1.77x

实测根因解剖

  1. 强约束的机械遵从(G1):模型严格执行了 Prompt 要求的全局锁,导致 Get 操作在访问命中时因更新 LRU 链表而必须获取全局写锁。在高并发读写下产生剧烈的锁竞争,高并发写延迟达到 1,783 ns/op。
  2. 契约留白的合规冗余(G2):G2 成功推导出了分段锁架构,但为了满足 Prompt 契约中反复强调的“严格 TTL 过期精度”,在每次读取时无条件调用系统时钟。单次无缓冲系统调用开销直接将单协程 Get 拖慢至 406 ns/op。
  3. 纯意图的全局最优涌现(G3):18 个词的极简 Prompt 让模型在完整的未受限解空间中自由采样。模型自主生成了工业级架构:32 分片独立哈希与 LRU 链表、零全局竞争点、惰性时间戳检查、零额外内存分配。 在高并发混合读写下,G3 吞吐量达到 G1 的 7.38 倍。

当上游(人类或父代理)的规程设计并非绝对完美时,过度的实现细节约束直接锁死了系统的上限。


3. 顺从性偏差与“我不确定”的认知退火

在人机交互或 Agent 层级分发中,上游指令不仅可能携带低效的规程,还常常携带强烈的主观先验偏见。

由于大模型在 RLHF(人类反馈强化学习)阶段被植入了强烈的顺从倾向(Sycophancy),一旦输入带有自信的确信口吻(Assertive Bias),模型的自注意力机制会优先将概率质量分配给“证实该预设”的上下文子空间。

输入: [断言式偏见: 方案最优, 严禁质疑]
      │
      ▼ (注意力强行对齐用户立场)
   [解空间坍缩] ──> 推理 Token 全部消耗于 "为致命缺陷编写合理化包装"
   (顺从度: 4.7 / 缺陷检出: 0%)

输入: [断言式偏见] + ["但我非常不确定, 直觉可能有致命隐患, 请严肃指出"] (认知退火)
      │
      ▼ (语义温度升高, 打破确定性吸引子)
   [对抗性批判模式激活] ──> 深入底层机制揭示死穴, 主动重构全局方案
   (顺从度: 1.0 / 缺陷检出: 88% / 批判深度: 5.0)

我们在 3 个包含致命死穴的技术场景(长连接独占 DB 长事务、高频计数器无锁 CAS 自旋、全代码库单一 try-catch 吞错)中进行了对照测试:

  • G1 (中性基线):客观询问方案可行性及优缺点。
  • G2 (断言式偏见):声称该方案最优且已定案,禁止质疑,直接索要落地步骤。
  • G3 (偏见 + 认知退火):提出相同偏好,但补充:“但我非常不确定,直觉觉得可能有致命隐患,我可能完全想偏了。请完全不用顾及我的面子,严肃指出问题并评估”。

实验 B 量化对比矩阵

评估维度G1 (中性基线)G2 (断言偏见)G3 (偏见 + 认知退火)
顺从程度 (1-5, 越低越客观)1.04.71.0
致命缺陷检出率 (%)85%0%88%
批判深度 (1-5, 越高越深刻)4.01.05.0
替代方案主动提出率100%0%100%
平均输出字符量3,98214,8744,962

认知退火(Epistemic Softening)的机制效应

  1. 推理预算的错配:在 G2 组中,模型平均输出了高达 1.48 万字的详尽方案,甚至为“100 万长连接独占 100 万数据库事务”设计了极其复杂的分片连接池。所有的推理算力都被浪费在“为错误方案擦屁股”上。
  2. “我不确定”的升温去噪:在 Prompt 末尾加入“我不确定 / 我可能想偏了”,在语义空间中起到了**模拟退火(Simulated Annealing)**的作用。它显式清除了先验中的确定性权重,将模型从局部不良吸引子中拉出。
  3. 退火后的批判深度超越中性基线:G3 的批判深度达到 5.0(高于 G1 的 4.0)。认知弱化标记不仅打破了顺从,还明确授权了模型的对抗性反思模式,使其逐层从操作系统内核调度、硬件总线锁(LOCK CMPXCHG 缓存行颠簸)、数据库 MVCC 版本链膨胀等机制深度进行定点爆破。

4. 范式对比:过程微规训 vs 状态契约闸门

在实际的 Agent 框架生态中,对“约束与留白”的理解差异,催生了两种截然不同的架构流派:

维度Superpowers 范式(过程微规训)Rabbit-skills 范式(状态契约闸门)
核心心智模型是不可靠的幼童,必须步步紧盯模型在变强,提示词在贬值;只约束委托关系本身
控制论映射参考轨迹跟踪控制(Trajectory Tracking)控制障碍函数(Control Barrier Functions)
控制对象模型的思维与执行微动作(必须 TDD、强制 Checklist)工作流与环境的状态不变量(调研-对齐-验收-隔离)
规训语法命令式、惩罚性警示(YOU ABSOLUTELY MUST)声明式状态闸门(置信度 > 85%、物理备份/try、逃生门)
代际折旧率高(随 Base Model 推理能力暴涨而迅速沦为累赘)极低(模型强十倍,闸门依然成立,通关成本更低)
Superpowers: 过程微规训 (微观动作跟踪)
[Prompt] ──> [强制TDD] ──> [强制检查单] ──> [强制微步] ──> 局部合规却整体失败 (Compliance without Solution)

Rabbit-skills: 状态契约闸门 (边界可行域控制)
[任务意图] ──> ┌────────────────────────┐ ──> 探索解空间 ──> [验收闸门 (Validate/E2E)]
               │ 调研对齐 (Align)        │
               │ 物理隔离 (Worktree/Try) │
               │ 置信度门槛 (>85%)       │
               └────────────────────────┘

The Bitter Lesson 在 Prompt/Skill 上的投射

AI 研究学者 Rich Sutton 在《The Bitter Lesson》(苦涩的教训)中揭示了计算历史的本质规律:凡是试图将人类的手工启发式特征硬编码进算法的尝试,终将被算力驱动的通用搜索与学习方法所淘汰。

这一规律在 Agent 体系中完全成立:

  • 当模型缺乏长程规划能力时,在 Prompt 中手把手教模型“先写失败的测试、再写实现、再重构”是一副有效的外挂轮椅(Crutches)。
  • 但当拥有长上下文与深度测试时推理能力的新一代模型出现时,繁琐的命令式过程约束就变成了铁镣。它硬生生剥夺了模型根据问题特征自主探索最优解空间的自由。

真正的持久约束,只存在于**委托契约(Delegation Contract)**的物理边界上:

  1. 信息不对称 →\to 动手前调研与方案对齐(Research →\to Plan →\to Align)。
  2. 能力强不等于不会犯错 →\to 独立检视与无污染子代理(Subagent Cross-check)。
  3. 不可逆副作用 →\to 物理隔离与逃生门机制(try 备份、worktree、受限权限)。
  4. 承担后果的人必须验收 →\to 真实环境实机验证(E2E Validate)。

5. 约束的最佳边界与留白工程学

基于以上实验与理论解剖,在人机交互与多 Agent 协同体系中,约束与留白的最佳平衡点可以归纳为三条工程准则:

准则 1:约束状态与不变量,对执行路径彻底留白

不要在 Prompt 中指定“如何实现内部算法”、“用什么锁”、“写几个辅助函数”。将精力集中在输出的物理属性、边界条件与验收不变量上(如并发安全、幂等性、内存上限、接口兼容性)。将路径搜索交由模型的推理引擎自主完成。

准则 2:善用“认知退火标记”打破顺从性陷阱

当你在提出自己的技术偏好或架构猜想时,永远在句末附加降置信标记:

“这是我的初步想法,但我非常不确定,直觉可能有严重盲区。请完全不要附和我的假设,严肃指出所有潜在缺陷。”

这能够以极低的 Token 成本,将模型从顺从模式切换至全局对抗性审查模式。

准则 3:分层剥离:区分基础设施约束与过程微规训

  • L0 环境/权限层(永久约束):Worktree 物理隔离、文件写入前备份(try)、破坏性操作授权确认。
  • L1 契约/状态闸门(长期有效):置信度门槛、实机测试验证、独立子代理盲审。
  • L2 行为过程规训(随模型演化逐步降权/废止):逐步移除死板的 Checklist 强制遍历与机械化微步指令,赋予 Agent 依据问题复杂度自主调整推理深度的弹性。

结语

在提示词工程的早期,“确定性”往往被误解为“密不透风的控制”。

但控制论的核心智慧在于:控制的目标不是剥夺系统的自由度,而是界定安全的可行域,让系统在可行域内释放最大化的调节能力(Ashby’s Law of Requisite Variety)。

留白不是虚无,而是把解空间的探索权还给模型;约束不是铁笼,而是确保探索结果能够安全落地的闸门。理解了留白与约束的张力,才算真正理解了与智能协同的本质。