implemented(除 4 篇超长文档随后补)、proposed、rejected 全树配对; 同一流水线 + 二遍校验(paraphrase-back + 仓库上下文一致性)产出。 docs/rfc/implemented/AGENTS.md 与其 CLAUDE.md 符号链接列入排除 (agent 指令文件,与根 AGENTS.md 同策略)。
2.3 KiB
RFC:使共享示例基础配置不依赖提供方
English | 中文
Status: rejected — superseded by Extract example apps into packages, which moves the spine into a dsh-agent-spine-demo bundle and deletes the base*.yml files, so there is no shared base YAML left to rename.
问题
示例曾有两个共享基础文件:examples/base-core.yml 不依赖任何模型提供方,而 examples/base.yml 在此核心之上加入了真实的 llm-deepseek 适配器。快照回放需要搭配 llm-replay 使用那个提供方无关的核心,因为在没有 key 的情况下加载真实适配器会抛错。常规演示则需要真实适配器。结果是命名倒挂:名为 base.yml 的文件并非所有示例的可复用基础,而真正的基础反而叫 base-core.yml。
这种拆分可以理解,但它让每次解释配置都变得更长。它还导致了别扭的测试搭建方式:keyless 冒烟测试需要携带一个假 API key 才能让适配器启动,尽管模型根本不会被调用。
提案
将提供方无关的核心重命名为 examples/base.yml,让适配器选择在每个具体示例中显式声明。编码与 ACP 真实配置添加一小段 llm-deepseek include 或本地块;快照配置添加 llm-replay。删除 examples/base-core.yml。
共享基础应当只包含提供方无关的服务与工具:llm、会话、系统提示词、工具、agent、不变式、bash 执行器与 bash 工具 schema。任何选择模型提供方的内容都属于叶子配置。
验收标准
examples/base.yml不依赖任何提供方。examples/base-core.yml已删除。- 真实演示配置显式添加 DeepSeek 适配器。
- 快照回放配置引入同一个提供方无关的基础及其回放适配器。
- examples README、各示例的 README 与 RFC 引用不再解释"base = base-core 加适配器"。
放弃了什么
真实演示失去了一层便利:每个都必须显式引入适配器。对示例而言这是正确的默认值,因为适配器选择是可变部分,而提供方无关的接线才是共享的产品核心。