Skip to content

Conventions & terminology

0. 约定与术语 (Conventions & Terminology)

0.1 规范性语言 (Normative Language)

本规范中的关键词 MUSTMUST NOTSHOULDSHOULD NOTMAY 按 RFC 2119 / RFC 8174 解释,且仅当以此加粗大写形式出现时才具有规范性含义。

  • MUST / MUST NOT:绝对要求 / 绝对禁止。任何声称符合本规范的实现(见 §14 一致性)必须满足。
  • SHOULD / SHOULD NOT:强烈建议 / 强烈不建议;偏离时须有明确、可记录的理由。
  • MAY:可选项,不构成一致性要求。

非加粗的「应」「可以」「需要」等词为叙述性说明,不具规范性含义。

0.2 术语表 (Glossary)

本表定义全文使用的规范性术语;后续各节 MUST 与此表一致,不得引入同义异名。

术语 定义
微内核 / TCB (microkernel / Trusted Computing Base) 冻结、不参与优化的最小可信基。它拥有并且拥有 §3 枚举的那组职责;其「负空间」(内核绝不做的事)是本规范可审计的核心安全断言。
可信计算基 (Trusted Computing Base) 同「微内核 / TCB」;全文统一以「微内核」或「TCB」指代,不使用其他译名。
capability admission(能力准入) 微内核中的纯逻辑判定:给定一个 candidate 的申请能力,判定其是否被允许。规则为 交集(candidate 授权 = subset(该 slot ceiling INTERSECT 其确切父辈 ceiling)),只做交集、永不做并集("never union"),因此授权在晋升下单调不增(capability-monotone)。准入是一个纯策略边界,本身不授予任何能力。
effect broker(副作用中枢) 微内核中唯一的对外副作用出口。一切外部可见副作用(写文件、执行命令、调用外部服务、网络出口等)MUST 经由它,被赋予持久身份与终态;崩溃后一个未知终态不得被自动重放。全文统一用英文「effect broker」,不使用「效果代理」。
pure reducer(纯归约器) 微内核中的确定性状态归约:reduce(state, command) -> (state, Vec<ActionRequest>)无任何 I/O。它决定「下一步要发起哪些动作」,但不亲自执行。
agent-loop driver(回路驱动) 微内核中把 reducer 产出的 ActionRequest 通过 effect broker 执行的最薄执行体;它只调度,不含策略。
record / checkpoint / replay 微内核中的证据面:一条 append-only、SHA-256 哈希链、防篡改、可崩溃重演、可 resume/continue/fork 的规范记录。
稳定类型 ABI (Stable Typed ABI) 微内核与策略模块之间唯一的通信契约,由五个类型构成:TaskEnvelopeContextRequestToolIntentEffectProposalArtifactRef。ABI 是版本化且稳定的(见 §0.3 与 §4)。
StrategySlot(策略槽) 可进化策略空间的元素。类型为开放命名字符串(open namespaced-string),非封闭枚举。名字的文法为 <domain>/<role>恰好一个 /SlotId::validatecrates/protocol/src/slot.rs:68-87)拒绝任何不满足该文法的名字,因此 core/ 前缀是槽身份的组成部分,不是排版上的省略,无前缀的名字不是可构造的槽身份。九个核心槽:core/routercore/plannercore/contextcore/memorycore/schedulercore/tool_policycore/verifiercore/model_routercore/collaborationcrates/evolve/src/lib.rs:156-182)。垂类包 MAY 增加自有槽(如 db/query_planner),且不触碰微内核。另有一个 code-valued 逃生槽,带 blob->typed 的晋升路径。
策略模块 (strategy module) 实现某个 StrategySlot 的可替换、可进化组件;它返回有界的提议并接收能力受限的结果MUST NOT 持有环境权威。
世界模块 (world module) 位于 effect broker 之后、真正实施某类副作用的可替换组件(如 sandbox 执行、仓库读写、浏览器、数据库适配)。它在 effect broker 的能力受限句柄下执行,本身不持有环境权威。世界模块是「机制面」的实现载体,区别于「策略面」的 strategy module。
harness checkpoint / PolicyManifest 一套 harness 被训练出来的状态的一等制品:方法无关(搜索/GEPA、SFT、偏好、GRPO、RL 均发射同一形状)、可版本化、可 diff、被独立评估、像发布一样晋升/回滚、可跨冻结基座模型携带。其代数:diff、merge、restrict、retire、transfer。全文可用「harness checkpoint」作口语句柄,PolicyManifest 为其正式类型名。
candidate producer(候选产出器) 消费受治理数据集、以某种方法产出一个 candidate PolicyManifest 并送入 admission 的离线组件;它没有 eval/loader/registry/runtime/activation 句柄。
independent evaluator(独立评估器) 与 producer 分离、独立密钥的评估身份;它在垂类拥有的 held-out 目标上对 candidate 打分并签名。producer 结构上无法伪造该签名,因此不能自证晋升。
进化管线 (evolution pipeline) 离线、非权威、人类把关的晋升流水线:trajectory -> 受治理数据集 -> candidate producer -> PolicyManifest -> admission -> 独立 held-out 评估 -> shadow -> canary -> active,带确定性回滚。不随开源基座一同开源
五条不变量 (Five Invariants) Bounded(有界)、Recoverable(可恢复)、Reproducible(可复现)、Observable(可观测)、Security-bounded(安全有界,deny-by-default)。本规范任一机制 MUST 同时满足。
三面 (Three Planes) 固定的微内核 TCB/可替换的策略与世界模块/离线的进化控制面。
垂类包 (vertical pack) 针对某一垂类的一组 StrategySlot 取值(含自加槽)与配置,编译为一个 PolicyManifest。

0.3 两个贯穿全文的规范性结论 (Canonical Resolutions)

为避免同一结论以多种措辞散落各处,以下两条在此给出规范性正本;全文他处的相关表述均以本节为准。

R1:bash 与工具的归属。 微内核 MUST 只拥有 effect broker + capability admission,即「任何工具(含 bash)被允许做什么」的权威。工具的选择与策略(用哪个工具、以什么参数、按垂类调优)是可进化的 tool_policy 策略槽。因此 bash 是一个其副作用经微内核中介与准入的工具,而不是内核内部的逻辑。任何「必须改内核接口才能加某个工具」的诉求,几乎总是一次安置错误(把机制面误当成权威面)。

R2:成熟形态 vs 早期切片。 成熟形态(覆盖度与业界生产级 coding agent 同量级)是前瞻性定位MUST NOT 被用来描述任何早期演示切片的工作量。早期切片是一条薄的垂直切片(单一垂类、单一冻结模型、少数几个槽被训练)。二者的口径在本规范中严格分开(公开侧只谈成熟形态的目标边界;内部侧 §8 给出切片范围)。

关于「是否训练 model」(规范性正本)。 默认 MUST NOT 训练 model:主路径是在冻结的 base model 之上进化 harness,以求得 model×harness 协同设计之(可移植、model 无关);harness 会自适应该 model 的能力,包括其 post-training 引入的标记/能力(例如某个 ultracode 之类的标记)。当确需改权重时,curated 轨迹与 harness checkpoint MAY 作为 post-training 语料回流,但 MUST 重新经过 §6 的同一道 admission 与评测门。即:训练可发生在两侧,但 harness 是那个恒可用、可移植、model 无关的一侧;本规范的主张不依赖训练 model。

关于「ABI 在进化中是否改变」(规范性正本,正文见 §4)。 稳定类型 ABI 的形状在一次运行内与跨进化过程中 MUST NOT 改变;进化改变的是 ABI 之后的模块实现(PolicyManifest 的内容),而非 ABI 契约本身。ABI 的演进只走显式的版本化路径(§16 变更控制)。