Harness 约束是长出来的,不是写出来的 —— 二阶抽象与驾驭

LLM 自己裁决的时候,提不出好建议,还容易跑歪。 核心不是推理能力不足,是启发性缺乏------它没有"道理"可讲。 人靠道理、理论、名言驾驭自己;二阶抽象就是给 LLM 造道理的机制。

怎么读这篇文章:第一幕是"为什么 LLM 会跑歪"(诊断),第二幕是"人是怎么解决的"(拆解),第三幕是"我们的机制"(药方)。三幕之间是因果链------先看全貌,再进入细节。
这篇文章适合谁 :如果你正在设计 Agent 系统、搭建 RAG 管线、或困惑于"LLM 的harness约束效果不佳",这篇文章会给你一个思考框架。它不讲"怎么做"的教程,讲的是"怎么想"的机制------概念密度大、论证链条长,但踩在点上。如果你要找即插即用的代码或 5 分钟速读,这篇文章可能不适合你(建议先收藏,等遇到实际问题时再回来) 📌 本文是 DialogMesh 项目系列中的一篇------二阶抽象是 DialogMesh 的元方法论,负责从行为和冲突中"长出"可迁移的启发规则,现在项目还在迭代中。


一、一个"会选但不会判断"的瞬间

你让 Agent 重构一个模块。它拿到了三个候选方案:

css 复制代码
方案 A --- 某篇论文的架构(前沿,但重)
方案 B --- 现有项目的模式(稳,但旧)
方案 C --- 糅合:A 的思想 + B 的骨架

Agent 怎么选?凭习惯

大多数时候它会选 C------糅合最安全,看起来"兼顾"。有时候它会被 A 吸引------前沿论文的光环。你问它为什么,它能给出漂亮的理由。但你知道:那不是判断,那是习惯性路径。

真正的判断应该是什么?

是质疑方案本身:"这三个可能都不对------也许该先去看看别的项目怎么处理,或者先确认重构是不是真的必要。"

Agent 为什么不质疑?因为它走不了远路。


二、小代价小闭环:Agent 循环的"损失函数"

Agent 的执行循环有一个硬约束:防止死循环

为了不死循环,系统采用"小代价小闭环"------每次决策只走一小步,验证,再走一步。这很像损失函数:每一步都有代价,代价不能无限累积。

makefile 复制代码
走远路的代价:
  质疑方案 → 读更多论文 → 发现更多方案 → 再质疑 → ...
  → 发散无界 → 死循环 / 超预算

小闭环的收益:
  每一步有界 → 可验证 → 可回退 → 系统稳定

所以 Agent 被困在了一个两难里:

复制代码
不敢走远(循环约束) × 不会判断(习惯拍板)

放开循环约束?不行------那会死循环。给 Agent 更强的推理?也不行------推理再强,没有可调用的判断准则,还是在三个方案里凭习惯挑。

解药不是放开循环,是给循环里塞进"道理"。


三、人是怎么解决这个问题的?

人面对同样的情况,会调用启发(heuristics)

arduino 复制代码
"早重构早省心"(YAGNI 的变体)
"三次重复就该抽象"(Rule of Three)
"先让测试说话"(测试先行)
"前沿方案要等项目验证"(技术债意识)
"先质疑问题,再质疑方案"(元认知质疑)

这些不是逻辑推理,不是穷举,是压缩过的判断准则------可迁移、不依赖具体场景、能快速决策。

3.1 生态理性:启发不是偏见,是环境适配的理性

Gerd Gigerenzer 的生态理性(Ecological Rationality)研究是这一观点的理论根基。传统决策论把启发式当作"认知偏差"(Kahneman 的系统 1 偏见视角),但 Gigerenzer 反驳了这个框架:

makefile 复制代码
逻辑理性: 启发 = 偏差 (与最优解相比的次优)
生态理性: 启发 = 环境适配的理性 (在不确定环境中高效且准确)

关键: 启发不是"算不动时的妥协", 是"利用环境结构做快速决策"
  → 少量启发 + 环境结构 = 好决策
  → 穷举反而在不确定环境中更差 (过拟合当前信息)

这正是"启发库存"概念的理论出处------研究关注个人/机构拥有的启发式策略库(repertoire of heuristics),与文中"专家 = 大量可调用的启发模式"直接对应。

3.2 专家直觉:不是算得深,是模式识别

Adriaan de Groot(1946)关于国际象棋大师的经典研究支撑"模式库存"观点:

makefile 复制代码
de Groot 发现: 大师 vs 普通选手
  → 差别不在"计算步数更多" (两者前瞻深度相近)
  → 差别在模式识别: 大师一眼认出局面, 调用对应应对模式

2011 年回顾研究: 70 年后续研究支持 de Groot 的发现
  → 与模式识别模型的预测一致

现实佐证: 医疗诊断 --- 有经验的医生凭症状模式快速判断,
  不是逐条对照所有可能的病 (同样的"模式库存"机制)

专家 = 大量可调用的启发模式。 人靠着"道理、理论、名言"这些压缩物来驾驭自己------面对新情况,调用一个合适的道理,而不是从零推理。

LLM 缺的不是推理能力。它缺的是启发库存(heuristic inventory)。

🧠 本节复盘:人靠什么判断?不是穷举,是压缩过的可迁移准则。


四、约束 = 动力系统,但约束也会出问题

我们设计系统时,习惯用约束引导行为:

makefile 复制代码
权限约束: 不能写 /etc
安全约束: shell 命令要审批
循环约束: 最大步数 / 预算上限

约束就像动力系统里的势场------它不规定轨迹,但它把行为引导在合法区域内。没有约束,LLM 的行为是自由粒子;有约束,行为被锚定在可达区域。

但约束本身也会出问题:

复制代码
约束错了  → 把正确行为挡在外面(过度限制)
约束过时  → 环境变了,约束还停留在过去
约束冲突  → 两个约束互相矛盾,行为无所适从

约束不够 → 跑歪。约束太死 → 僵化。约束不是越多越好,约束是需要被"再约束"的。


五、元认知:对思考的思考,对约束的再约束

当约束本身出问题时,缺的是什么?

元认知(metacognition)------对思考本身的整理与复盘。

但这里有一个陷阱:"让 LLM 再核查一遍自己的回答" ≠ 元认知。

那是 ReAct------把同样的思考再跑一遍,没有新信息,只是自我确认。真正的元认知是:

makefile 复制代码
对约束下行为的再约束:
  这次决策用哪个启发?为什么是这个而不是那个?
  这个启发还适用吗?上次用它是什么时候?
  有没有更好的启发我没想起来?

这就是"对思考本身整理和复盘"------不是重新推理,是审计自己用了什么道理

5.1 心理学证据:元认知是学习与决策的基石

"元认知 ≠ 自我核查"不是我们的口号,是心理学和神经科学的既有结论:

makefile 复制代码
元认知 (Metacognition) 定义:
  个体评估和监控自身认知过程 (感知/记忆/决策) 的能力

决策后反思 (post-decisional reflection):
  决策不是"做出选择就结束" --- 人类会持续评估和更新决策
  → 这正是"审计自己用了什么道理"的心理学术语版

研究共识: 元认知是良好学习、决策和适应性推理的基石

ReAct 的自我核查停在"再检查一遍输出"(同层循环);元认知是"审计决策的依据"(跨层反思)------这正是 §八 要展开的可递归结构。

但问题来了:哪来那么多约束?


六、二阶抽象:约束是长出来的,不是写出来的

这就是我们的方法------二阶抽象(Second-Order Abstraction)

不是手写约束,是从行为里长出约束。

erlang 复制代码
正向压缩:  1000 次决策 → 聚类 → 凝练成 10 条启发
反向验证:  10 条启发 → 反推 1000 次决策 → 覆盖多少?
          60-80% = 学到了(可迁移的规律)
          100%   = 过拟合(把原文背下来了)
          0%     = 幻觉(启发是编的)
失败 → 多视角调整(结构/语义/时序/反例四视角重新审视)
通过 → 进入启发库存

为什么是 60-80% 而不是 100%? 100% 意味着规则完美复刻了训练数据------那是背诵,不是抽象。60-80% 意味着规则抓住了主要模式,同时保留了泛化空间。这和损失函数的设计哲学一致:训练到过拟合点之前停下。

这就是"伪二阶抽象"------不是"再抽象一次"(那会越抽越空),而是"逆推验证抽象质量":

makefile 复制代码
DMN 发散: 让 LLM 无约束猜测 → 海量假设(包括错的)
ECN 收敛: 带上下文筛选 → 保留对齐的假设 + 拒绝理由
启发链:   凝练成可迁移的启发单元

关键: 被拒绝的假设和拒绝理由本身就是知识 ---
  "什么被拒、为什么被拒" = 知识边界的学习

6.1 怎么实现:发散是"掩盖",收敛是"暴露"

思想有了,实现是什么?二阶抽象的工程实现 = 上下文的掩盖与暴露。

发散:让 LLM 在"失忆"状态下猜

css 复制代码
实现: 掩盖上下文 → LLM(temperature=0.8, no_context) → 生成 K 个猜测 (K=3-5)

为什么掩盖有用?
  掩盖 = 剥夺证据 → LLM 不得不调取预训练知识 (先验)
  → 产生发散性假设 (包括"合理但没被验证"的、甚至错的)
  → 这些假设不是答案, 是候选的"道理"

例子 (卡尔曼 × 信息论 --- 两个相反哲学的碰撞):
  "系统里有个低概率事件反复出现。"
  掩盖上下文后让 LLM 猜: 这事件是什么?
  猜 1: 传感器噪声 → 应该抹平 (卡尔曼式: 低权重处理)
  猜 2: 新状态突变 → 应该深挖 (信息论式: 罕见=高信息量)
  猜 3: 用户新意图 → 应该记录 (行为式: 值得建模)
  → 三个猜测 = 三个"道理"候选, 各自有哲学来源

卡尔曼和信息论为什么"完全相反却能统一"? 这正是发散要暴露的东西:

makefile 复制代码
卡尔曼: 低概率 = 噪声 → 抹平 (保持状态稳定)
信息论: 低概率 = 高信息量 (I = -log₂ P) → 保留 (罕见≠无关)

表面矛盾, 深层统一 (A7):
  判断依据不是"概率高低", 是"能否被现有模型解释":
    能解释 → 噪声 (抹平, 卡尔曼的 R 估计)
    不能解释 → 新信息 (深挖, Shannon 的信息价值)
  → 同一个低概率事件, 两种哲学给出相反动作,
    但统一在"解释能力"这一个判据下

让 LLM 这个统一过程,比直接告诉它"你要用可解释性判断"有效得多------因为猜测迫使它调取两种哲学的完整脉络,再在发散空间里让它们碰撞。

收敛:让 LLM 在"全记忆"状态下筛

css 复制代码
实现: 暴露上下文 → LLM(temperature=0.1, full_context) → 筛选 + 排序

为什么暴露有用?
  暴露 = 恢复证据 → LLM 用真实数据验证猜测
  → 保留对齐的假设 + 给出拒绝理由
  → 拒绝理由 = 知识边界 ("猜 1 被拒, 因为最近三次都是真 bug")

反事实:把低概率高价值"反向推"

发散不只是正向猜,还可以反事实推

makefile 复制代码
反事实 (counterfactual):
  "如果这个低概率事件不是噪声, 它可能是什么机制导致的?"
  → 把信息论的"高价值"反向化 → 去推、去猜、去找、去连接
  → 不是等它出现 (被动), 是主动构造"它出现后意味着什么" (主动)

实现:
  信息论定位: 低概率高价值 → 标记为待解释 (保留, 不抹平)
  反事实发散: 构造假设 "如果 X 是真的 → 会有什么连锁?" → K 个猜想
  证据连接:   在真实数据里找这些连锁的痕迹 → 命中 → 假设升级
              未命中 → 假设降级 (但拒绝理由进知识边界)

这就像侦探先假设"如果凶手是 X,现场应该有什么",再回去找。反事实让系统在信息不足时也能主动探索,而不是等数据说话。

完整实现流程(设计文档 v5 的真实参数)

📐 实现参数包(弹性阅读) --- 非深度实现读者可跳过此框,不影响主论证。
展开查看 7 步实现参数(N/K/temperature 等) ⚙️ 2026-08-07 实现校准 : 主触发已从"定时(每 N 轮)"改为变化驱动 --- 决策失败 / 用户纠正 / 公理冲突 / 启发过时 / 缺公理感 → 触发再抽象; 定时蒸馏仅兜底(trace≥10)。参数(N/K/temperature/掩盖暴露)不变。

ini 复制代码
每 N 轮 (N=5):
  1. 提取最近 N 轮的推导链 (L2 实体边 + L2.5 信念轨迹)
  2. 发散: LLM(temperature=0.8, no_context) → K 个猜测 (K=3-5)
     └─ 掩盖上下文 → 调取先验 → 发散假设 (含卡尔曼/信息论碰撞)
  3. 收敛: LLM(temperature=0.1, full_context) → 筛选 + 排序
     └─ 暴露上下文 → 证据验证 → 保留 + 拒绝理由
  4. 反事实: 对低概率高价值假设 → 反向构造连锁猜想 → 找证据连接
  5. 启发: LLM 生成启发链 (模式描述 + 适用条件 + 反例 + 推理路径)
  6. 存入启发池, 替换低覆盖率旧启发
  7. 元认知监测覆盖率: < 阈值 → 重新发散; 新旧冲突 → 裁决

为什么"掩盖/暴露"是实现核心? 因为它是唯一能让 LLM 同时调用"先验(无上下文时的预训练知识)"和"后验(有上下文时的证据验证)"的机制------先验产生候选道理,后验检验道理,反事实扩展道理。三步都是 LLM 调用,但掩盖/暴露切换决定了它调用的是先验还是后验。这就是"伪二阶抽象"的工程落地:抽象不是从数据里提取,是让 LLM 在两种信息状态下反复碰撞。

🧠 本节复盘:二阶抽象怎么实现?一条掩盖/暴露的流水线。


七、闭环:行为 → 启发 → 元认知 → 驾驭

现在把整个链条串起来:

makefile 复制代码
行为一等公民 (A9):  行为是学习数据 --- 你的每次决策都是原料
白盒 (A19):        决策可查看、可修改 --- 你看到系统在用什么道理
二阶抽象 (A24):    从行为中提炼启发 --- 约束长出来,不是写出来
元认知 (A10):      审计用哪个道理 --- 对约束的再约束
驾驭:              启发库存让小闭环内做出像判断的选择

没有二阶抽象,元认知就是空转 ------ReAct 式自嗨,没有约束库存可以审计。有了二阶抽象,元认知才有原料------它审计的不是空泛的"思考质量",而是具体的"这次用了哪条启发、为什么、还适用吗"。


八、冲突是原料:可递归的元认知

现在到了最关键的一步------对二阶抽象本身再抽象

8.1 启发会冲突,冲突不是缺陷,是下一层的输入

makefile 复制代码
启发库存里必然有冲突:
  "糅合优先" (稳妥) vs "质疑优先" (深挖)
  "抹平噪声" (卡尔曼) vs "深挖罕见" (信息论)
  "快反馈" (A16) vs "验证真实" (A18)

冲突怎么处理? 不能丢 --- 冲突本身是信息。

公理可以诞生定理,但公理不必都一样。我们的系统里 A1-A25 是并列公理 ,它们冲突时靠元规则编排(§5):

scss 复制代码
体验不阻断 > 单次准确     (A16 优先)
真实验证 > 指标好看       (A18 优先)
安全约束不可协商          (A21 底线)
记录永不可删              (A17 底线)
兑底: 回到约束空间         (A12 兜底)

这套元规则本身就是对公理冲突的"二阶抽象"------从公理碰撞的经验中凝练出的编排规则。

8.2 编排的抉择本身也是思考行为

选"体验优先"还是"验证优先"------这个选择本身,也是一种行为

yaml 复制代码
层 1: 行为 → 二阶抽象 → 启发 (约束长出来)
层 2: 启发冲突 → 元规则编排 → 裁决 (公理诞生定理)
层 3: 元规则冲突 → 再抽象 → 元元规则 (对裁决的裁决)
层 4: ...

这就是"对思考的思考"的真义(区别于 ReAct):

makefile 复制代码
ReAct:     思考 → 检查思考 (同层, 无新原料)
可递归:    思考 → 抽象出思考的规律 → 用规律驾驭思考
           → 抽象"规律的使用" → ... (每层产生真实的新东西)

8.3 递归有底,不是无限

你可能会问:这样会不会无限递归?不会,而且这个"底"正是 A24 的反面验证:

scss 复制代码
凝练 = 压缩 = 输出必须 < 输入

十几条公理 → 只能凝练出 2-3 条元规则 (如果真有可凝练的模式)
           → 或 0 条 (如果公理本就独立, 无冲突模式可提炼)

凝练不出更多 = 正常! 凝练的目的不是"产生更多规则",
是"发现规则之间的关系" (编排, 不是堆叠)。

递归的底是自适应停止条件

复制代码
底 = 输入多样性不足, 凝练收益 → 0, 停止

但要注意:凝练的原料不是公理本身,是"公理冲突的实例"

scss 复制代码
公理 = 宪法 (少)
冲突实例 = 判例 (无限! 每次真实冲突都是新场景)
元规则 = 司法解释 (从判例中凝练)

→ 公理只有十几条, 但公理冲突的实例是无限的
→ 凝练不会枯竭: 原料是"冲突的案例", 不是"公理列表"
→ 递归的底 = 当"冲突实例的多样性"不再提供新模式时

8.4 同一个机制,三个应用面

复制代码
二阶抽象不是一种工具, 是一种思想 --- 同一个机制, 三个对象:

① RAG 聚类压缩      → 对象: 内容      → 解决聚类 + 高价值召回
② 启发使用驾驭      → 对象: 行为      → 解决 LLM 决策跑偏
③ 公理冲突裁决      → 对象: 裁决      → 解决元规则自身的冲突

每一层都用同一个"掩盖/发散/收敛/反事实"机制,只是对象不同:内容、行为、裁决。每一层的输出都是下一层的输入------这就是可递归的元认知。

scss 复制代码
行为 → 启发 (抽象)
启发 → 元规则 (对抽象的抽象)
元规则 → 元元规则 (对抽象的抽象的抽象)
...直到凝练收益归零 (自适应停止)

8.5 RAG 里的二阶抽象:冷热系统 × 分治检索

三个应用面里,RAG 是最容易被看见的一个------但它不是孤立的检索技巧,而是冷热系统(A15)在检索侧的投影

先看记忆的冷热分层:

arduino 复制代码
记忆不是均匀存储的,是有"温度"的 (A15):
  Hot (active)   --- 当前会话, 全量在内存
  Warm (paused)  --- 近期会话, 已持久化, 可按需加载
  Cold (cold)    --- 历史会话, 带衰减权重
  Frozen (archive) --- 压缩, metadata + 摘要

温度不是单一时间轴, 是多因子复合场:
  时间 (最近≠重要) × 访问次数 (LRU) × 主题活跃度 × 行为惯性

温度管时间轴,价值管稀缺轴------二维,不是一维:

makefile 复制代码
单看温度会损失"罕见但冷"的高价值信息 (A15)
单看价值会忽略"高频但平庸"的检索成本 (A7)

二维保留策略:
  温度维 (时间轴): Hot → Warm → Cold → Frozen (降级换表示)
  价值维 (稀缺轴): I(x) = -log₂ P(x) (罕见≠无关)

组合起来:
  高温度 + 高价值 → 全量保留, 最快路径
  高温度 + 低价值 → 会话结束即降温
  低温度 + 高价值 → Frozen 保留里程碑摘要 + 索引 (检索可用)
  低温度 + 低价值 → 压缩为摘要, 降维表示

降温不是删除,是换表示(这是关键):

json 复制代码
Frozen 不是丢弃 --- 高价值内容以"里程碑摘要 + 索引"保留,
低价值压缩为摘要。温度决定的是"注入上下文的颗粒度",
不是"是否存在"。呼应 A2 颗粒度缩放。

→ 二阶抽象在这里扮演什么角色?
  它就是"降温的机制":
    聚类凝练 = 从 Cold 到 Frozen 的换表示 (10000 条 → 10 条启发链)
    反事实   = 从 Frozen 回 Hot 的语义唤醒 (BGE > 0.8 直接回 Hot)

普通 RAG 的盲区 = 没有温度,也没有价值轴:

ini 复制代码
盲区 1: 高频内容反复检索 --- 100 次问"怎么配 API key", 每次都全量翻
        (没有降温, 全是 Hot, 检索成本恒定)
盲区 2: 罕见高价值内容被相似度淹没 --- 一个只出现过 1 次的根因分析,
        语义上离任何查询都远, 永远召不回
        (没有价值轴, 低概率条目当离群点丢)

二阶抽象 RAG = 冷热 × 分治:
  快路径 (热): 启发链匹配 --- 高频聚类, 秒回 (不用翻原文)
  深路径 (冷): 反事实唤醒 --- 罕见高价值条目, 用假设连接召回

高价值召回怎么实现------反事实是"语义唤醒"的机制:

less 复制代码
普通 RAG: 查询 → 相似度排序 → 取 top-k
  → 罕见高价值条目 (语义远) 排不进 top-k → 永远召不回
  (BGE 相似度 < 0.8, 唤醒不了)

二阶抽象 RAG: 查询 → 两条路并行
  快路径: 启发链匹配 (高频聚类, 秒回)
  深路径: 反事实唤醒 (低概率高价值条目)
    反事实: "如果这个罕见条目和当前问题相关, 它应该和什么有关?"
    → 构造 K 个关联猜想 → 把猜想当查询再检索 → 找到连接
    → 罕见条目通过"猜想桥"被召回 (不是靠相似度, 是靠假设连接)
    → 这就是 A15 的语义唤醒: 相关性打破时间/相似度屏障, 直接回 Hot

为什么"罕见≠无关"是数学根? Shannon 自信息 I = -log₂ P------出现越少的事件携带的信息量越大。一次"服务器崩了找不到根因"比一百次"日常写代码"更有价值。普通 RAG 的相似度排序把高信息量条目当离群点丢掉;冷热系统把它标记为"低温度高价值"------Frozen 保留摘要,反事实在需要时唤醒。

yaml 复制代码
普通 RAG:    相似度 top-k  → 无温度无价值轴 → 高频全量翻 + 罕见被淹没
二阶抽象 RAG: 冷热分层 (温度) + 分治 (价值) → 高频秒回 + 罕见可唤醒

这才是"思想不是工具" :工具是一次性的压缩器;思想是可递归的机制------压缩、使用压缩、压缩"压缩的使用"。RAG 用它(冷热分层 + 分治召回),凝练后的启发用它(驾驭决策),公理冲突的选择也用它(裁决编排)。冷热系统是二阶抽象的存储侧,二阶抽象是冷热系统的检索侧------同一枚硬币的两面。

🧠 本节复盘:冲突不是缺陷,是下一层抽象的原料。


九、这不是 Skill 套皮

有人会问:这不就是 skill 吗?不就是把成功经验存下来复用吗?

不是。先看图------四种机制的生态位:

arduino 复制代码
二阶抽象在右上角: 高迁移 (可跨场景) × 高判断深度 (决定"该不该")
Skill 在左下:     低迁移 (绑定场景) × 低判断 (只决定"怎么做")
Prompt 在右下:    高迁移但低判断 (一次性指令, 无积累)
Constitutional AI: 中迁移×中高判断 (手写原则, 稳定但僵化)

区别在四个地方:

维度 Skill 二阶抽象
对象 可执行的动作序列(怎么做) 可迁移的判断准则(怎么想)
验证 执行成功 = 有效 反推覆盖 60-80% = 有效
用途 复用流程 驾驭决策 + 喂养元认知
实现 模板 + 参数化 掩盖/暴露切换 (发散/收敛) + 反事实

Skill 回答"这件事怎么做",二阶抽象回答"这件事该不该做、用什么道理判断"。前者是程序库,后者是价值观。

思想 + 实现:二阶抽象的思想是"约束从行为里长出来",实现是"掩盖→发散→收敛→反事实→启发链"。就像 RPC------思想是"远程调用像本地调用",实现可以是 REST、gRPC、消息队列,随环境选。我们的实现选了"上下文掩盖/暴露"这一种:它让 LLM 在无上下文(先验发散)和有上下文(证据收敛)之间切换,用反事实主动扩展------这是当前可行的一种,未来换更好的机制,思想不变。

人也是这样分的:技能是"会修车",道理是"修之前先检查是哪儿坏了"。技能让你能干活,道理让你干对活。


十、与已有思路的横向对比

思路 核心 与二阶抽象的差异
Prompt Engineering 用提示词给模型指令 二阶抽象给模型可迁移的判断准则,不是一次性指令
RAG 检索相似内容做上下文 二阶抽象压缩出规律,不是检索原文
ReAct 思考→行动→观察循环 二阶抽象是循环之外的积累------每次循环后沉淀启发
Constitutional AI 手写原则集约束模型 二阶抽象的原则是从行为长出来的,不是手写的
Skill / 工作流模板 复用成功动作序列 二阶抽象复用判断准则,且用可逆推性验证

10.1 Constitutional AI:最接近的邻居,和最关键的差异

Anthropic 的 Constitutional AI(CAI) 是"用原则集约束 LLM"最著名的工程实践------通过一套明确、透明的价值观清单("宪法")指导和约束模型输出。它与二阶抽象共享一个前提:光靠推理不够,需要显式的判断准则

但差异是关键的:

makefile 复制代码
Constitutional AI: 原则是手写的 (Anthropic 团队编写宪法)
  研究方向: 如何自动发现原则 / 如何评估原则有效性 (进行中)

二阶抽象: 原则是从行为里长出来的 (行为 → 启发, 可逆推验证)
  差异: 手写 = 一次性、依赖作者的智慧
        长出 = 持续、随行为演化、用覆盖率验证

一句话:CAI 的宪法是"开国元勋"写的,二阶抽象的宪法是"判例累积"出来的。前者稳定但僵化,后者灵活但有冷启动问题------两者可以互补:冷启动用手写种子,经验积累后自动补充。

10.2 LLM 生成启发式:前沿正在做的事

"让 LLM 自己生成启发式"不是我们的空想------这是当前 AI 研究的前沿方向,已有多个框架在做:

makefile 复制代码
PathWise: 将启发式生成形式化为顺序决策过程
  → LLM 自我演化地设计启发式

HSP (Heuristic Search + LLM): LLM 作为推理和优化引擎
  → 合理化启发式计划 + 执行中纠正错误

验证方向: 用 LLM (ChatGPT 等) 验证和分类决策实验中的
  启发式思维刺激材料

二阶抽象与它们的差异 :PathWise/HSP 让 LLM 生成启发式,但验证机制 不同------它们靠执行成功验证,我们用可逆推性(反推覆盖 60-80%)验证;且二阶抽象把启发式同时用于"驾驭决策"和"喂养元认知",是完整认知闭环而非单点工具。


十一、已知局限

二阶抽象不是银弹:

markdown 复制代码
1. 启发可能过时 --- 环境变了,库存里的道理还在用旧逻辑
   → 需要元认知定期审计(启发活性检查)

2. 启发库存冷启动 --- 没有足够行为经验时,库存是空的
   → 冷启动用内置种子(少数手写约束过渡),
     经验积累后手写约束逐步退役

   ⚙️ **2026-08-07 实现校准**: 种子 ≠ 公理清单 --- 项目公理(如 A1-A25)
   是"提炼产物", 当种子会自我印证闭环(公理→种子→从行为提炼→印证公理)。
   种子 = **认知结构模板**(现象→起源→边界→操作化)+ 示范样板 few-shot
   (LLM 生成规范); 质量判据: 锚定形式科学约束空间(排中律/映射形态/
   概率公理)→ 底层性 = 可迁移性 = 过时风险低。

3. 可逆推性有成本 --- 反推验证需要保留行为记录(A17 记录永不可删)
   → 存储与抽象是一对,不能只要抽象不要记录

4. 递归收益递减 --- 层数越深,可凝练的新模式越少
   → 自适应停止: 凝练收益归零即停,不为递归而递归

结尾

LLM 自己裁决时提不出好建议、容易跑歪------这不是推理能力的问题,是启发性缺乏

人解决这个问题靠的是道理、理论、名言------那些压缩过、可迁移、经过验证的判断准则。二阶抽象就是给 LLM 造道理的机制:从行为中提炼启发,用可逆推性验证质量,用启发库存驾驭小闭环内的决策,用元认知审计"这次用了哪个道理"。

冲突不是二阶抽象的缺陷------冲突是下一层抽象的原料。公理可以诞生定理,但公理不必都一样;对公理冲突的编排本身,也是思考行为,也可以被再次抽象。递归有底(凝练收益归零即停),但每一次真实的冲突都在喂养下一层。

约束是长出来的,不是写出来的。 就像人的价值观不是天生全套,是经历沉淀的。


术语表

术语 定义
启发 (Heuristic) 压缩过的可迁移判断准则,不依赖具体场景
启发库存 (Heuristic Inventory) 系统可调用的启发集合,专家直觉的机器版
小代价小闭环 防死循环的执行约束:每步有界、可验证、可回退
二阶抽象 从行为中提炼启发,用可逆推性验证(coverage 60-80%)
伪二阶抽象 不是"再抽象一次",是"逆推验证抽象质量"(DMN 发散→ECN 收敛→启发链)
掩盖/暴露 实现机制:无上下文发散(调先验)+ 有上下文收敛(验证据)
反事实 低概率高价值的反向推:构造"如果 X 是真的→连锁"猜想,再找证据连接
可逆推性 压缩产物能反演还原原始内容的比例;60-80% = 学到
元认知 对思考本身的整理与复盘,对约束的再约束
可递归元认知 冲突→元规则→元元规则...每层都是下一层的输入,凝练收益归零即停
约束作为动力系统 约束不规定轨迹,但把行为引导在合法区域(势场)
驾驭 用启发+约束引导 LLM 在小闭环内做出像判断的选择
相关推荐
莫凡的博客1 小时前
火山引擎-基础入门阶段细化实操案例
人工智能·php·火山引擎
秦先生在广东1 小时前
Google/skills:Google 官方将工程实践「技能化」,以 Agent Skills 开放标准接入 AI 编程生态
人工智能
满怀冰雪1 小时前
17-正则化方法:Dropout、权重衰减与过拟合控制
人工智能·python·深度学习·机器学习·paddlepaddle
m0_749492221 小时前
2026年仓储安防机器人选型横评:3款室外巡逻机器人仓库场景实测对比
人工智能
GEOshijie1231 小时前
智能家居品牌做GEO推荐哪家供应商?品类词抢占案例复盘
人工智能·python·智能家居
HAYDENR1 小时前
数据挖掘是什么?数据挖掘在实际业务中如何落地应用?
人工智能·数据挖掘
zhangjin11201 小时前
NLP自然语言处理
人工智能·自然语言处理
天天爱吃肉82181 小时前
行业笔记|高压连接器瞬态接触退化通用检测方法论
人工智能·笔记·python·功能测试·学习·汽车
程序员-李俞2 小时前
MiniMax H3 深度拆解:全模态视频模型来了,AI 漫剧系统该如何重构?
人工智能·ai作画·重构·aigc·音视频·ai写作·画布