1. 从 Lite 到“架构等价”的升级顺序
- Scope:让每个 agent 有 child context,支持局部工具/persona。
- Typed event modes:加入 waterfall/serial/parallel/emit。
- Transactional publication:创建 session+agent 失败时整体回滚。
- Persistence seam:Session core 不知道 JSONL/SQLite。
- Adapter registry:provider/model 路由与统一 stream chunk。
- Tool scheduler:并行安全/独占调用、超时与取消。
- Prompt assembly:sections/variables/tools + scoped shadow。
- Profile loader:配置驱动插件树 + patch + HMR。
- 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 写成自动化测试,再扩功能。