Skip to content

设计:同层冲突交给 LLM 仲裁会破坏确定性 #6

Description

@TbusOS

背景

SPEC §8.4 的 conflict resolution decision tree 定义了 scope/enforcement 的决策顺序。其中第 4 条写到:相同 enforcement、相同 hierarchy position、不同来源时,两条 asset 都进入上下文,由 LLM 选择更适用的一条。

同一节末尾又声明:相同 asset set 和相同 pools.toml 必须产生相同结果,不能依赖随机性或 session state。

问题

LLM 仲裁不能作为协议级决策规则。即使输入完全相同,不同模型、不同版本、不同 temperature、不同上下文窗口压力都可能让选择变化。

这会让下面几件事变得不可验证:

  • engram validate 无法输出唯一 effective winner。
  • Relevance Gate 的 packed context 无法保证“同输入同输出”。
  • 第三方实现无法实现同样的 conflict semantics。

建议

把第 4 条改成确定性协议:

同 enforcement、同 effective hierarchy、不同来源且存在冲突时,系统返回 ambiguous_conflict,不产生 winner。

LLM 可以做三件事:

  • 向用户解释冲突。
  • 根据当前任务给出临时建议。
  • 提议添加 overrides:、调整订阅优先级、或取消订阅某个 pool。

但 LLM 不应成为“最终生效规则”的一部分。

可选补充:在 pools.toml 中加入显式来源优先级,例如:

[source_priority]
team = ["native", "pool/design-system", "pool/kernel-work"]

没有显式优先级时,冲突保持 ambiguous,并由 engram review 处理。

参考

  • SPEC.md §8.4 rule 4:同层不同来源由 LLM 仲裁。
  • SPEC.md §8.4 invariant:相同输入必须相同输出。
  • DESIGN.md §8.1 invariant 7/8/12:MCP stateless、CLI idempotent、cross-process safety 都依赖确定性。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions