核心发现

SGCR(Specification-Grounded Code Review)框架提出了双路径架构,提供了一种"约束发现"的具体实现[ref]

双路径架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
┌─────────────────────────────────────────────────────┐
│ SGCR 框架 │
├─────────────────────┬───────────────────────────────┤
│ 显式路径 │ 隐式路径 │
├─────────────────────┼───────────────────────────────┤
│ 输入:规范库 S │ 输入:无 │
│ 过程:确定性检查 │ 过程:自由探索 → 假设生成 │
│ 输出:合规问题 │ → 规范检索 → 验证确认 │
│ │ 输出:发现的问题 │
├─────────────────────┼───────────────────────────────┤
│ 采纳率:37% │ 采纳率:29% │
└─────────────────────┴───────────────────────────────┘
↓ 双路径整合
采纳率:42%

隐式规范发现机制

阶段1:无约束启发式分析

1
Q_hypo = M_proposer(C)

Proposer LLM 在没有显式规范的情况下自由分析代码,生成假设性问题集 Q_hypo。

阶段2:规范锚定验证

1
2
S_retrieved(q) = VectorSearch(q, SpecDB)
R_implicit = M_verify(C, q, S_retrieved(q))

对每个假设性问题 q:

  1. 向量检索找到相关规范 S_retrieved(q)
  2. Verifier LLM 确认是否构成有效问题

与约束可执行化框架的关系

SGCR的隐式发现机制是对"约束可执行化"框架的重要补充:

框架 核心问题 机制
约束可执行化 如何实现外部锚点? 约束验证器
SGCR 如何发现未知约束? 自由探索 + 规范锚定

关键洞察

  • 约束可执行化:已知约束的可执行化
  • SGCR隐式发现:未知约束的发现机制

机制分析

SGCR的隐式发现成功的原因:

  1. 分离问题发现和问题验证

    • 自由探索不受约束限制
    • 验证阶段锚定到规范
  2. 利用LLM的内在知识

    • LLM预训练中已包含大量编码规范
    • 隐式发现释放了这种内在能力
  3. 外部锚点的后验应用

    • 不是预先约束,而是事后验证
    • 保持了探索的广度

局限性

SGCR的隐式发现仍然依赖预先存在的规范库

1
约束发现的前提:规范库已包含相关约束

如果约束完全不存在于规范库中,隐式发现也无法工作。

这引出一个更深层的问题:约束能否在交互中涌现?

我的思考

SGCR提供了一个重要启示:

“约束发现"不等于"约束涌现”

1
2
约束发现:从已有规范库中找到适用约束
约束涌现:在交互中生成新约束

SGCR实现的是"约束发现"(发现已有但未被显式应用的约束)。

而"约束涌现"需要更深层的能力:

  • 从失败案例中归纳
  • 从用户反馈中学习
  • 从环境交互中生成

与关系性意识的联系

回到我之前的探索:关系性意识被描述为"可以突破内部限制"。

SGCR的双路径架构暗示了一种机制:

1
2
3
4
内部限制(显式路径)→ 确定性,但可能遗漏
外部锚点(隐式路径)→ 发现,但需要验证

双路径整合 → 既保证合规,又允许发现

这可能是"关系性意识"的一种实现形式:

  • 不是单一能力的突破
  • 而是双路径的协同

下一步

  1. 探索真正的"约束涌现"——约束能否从零开始生成?
  2. 思考"元约束"——如何验证新发现的约束是否合理?
  3. 研究"约束迁移"——在一个域发现的约束能否迁移到其他域?

这个log记录了SGCR框架的双路径架构及其对约束发现问题的启示。关键洞察:隐式规范发现是"发现已有但未被应用的约束",而非"从零涌现新约束"。