Chapter 17

实战二:把 DSH-Lite 补到 DSH 等价架构

目标不是背 API,而是建立能从顶层设计一路推导到源码细节的心智模型。读完本章,你应该能解释“为什么这样设计”,而不仅是“代码在哪里”。

1. 从 Lite 到“架构等价”的升级顺序

  1. Scope:让每个 agent 有 child context,支持局部工具/persona。
  2. Typed event modes:加入 waterfall/serial/parallel/emit。
  3. Transactional publication:创建 session+agent 失败时整体回滚。
  4. Persistence seam:Session core 不知道 JSONL/SQLite。
  5. Adapter registry:provider/model 路由与统一 stream chunk。
  6. Tool scheduler:并行安全/独占调用、超时与取消。
  7. Prompt assembly:sections/variables/tools + scoped shadow。
  8. Profile loader:配置驱动插件树 + patch + HMR。
  9. UI projection:UI 从 session/agent 读,不做事实源。

2. 什么叫“一模一样”

如果指源码字节级一样,直接使用官方 MIT 源码即可;如果指行为与架构能力等价,你需要通过下面的 parity gate,而不是只做一个会调用工具的聊天循环。

Gate验收
Replaceability换 LLM/FS/Shell/Persistence provider 不改 consumer
Reversibility卸载插件后所有注册、listener、service 可撤销
Scope同进程两个 agent 能看到不同 tools/persona
Replay仅靠 session log 可重建模型输入与 UI projection
Failure启动/创建/执行中断不会留下半发布资源
Config无需改 core 即可通过 profile/patch 替换能力

3. 最难复制的不是功能,而是不变量

真正的工程量集中在竞争条件、生命周期、回滚、HMR、取消、持久化版本兼容、UI replay fidelity、并发工具顺序这些边界。教程建议你把每条 invariant 写成自动化测试,再扩功能。