MUNDERDIFFLIN / LEARN
CHAPTER 07
第 07 课 · 进程与权限16 分钟阅读深入

“支持 13 个 CLI”不是一个布尔值,而是一组能力矩阵

拆解 preset、bridge descriptor、启动参数、恢复语义与 hook 能力,理解统一界面下必须保留的差异。

本课核心问题怎样统一多个 CLI,又不假装它们行为相同?
学完你能
  • 读懂 AgentProviderPreset 的配置职责。
  • 比较 Claude 与 Codex 的恢复路径。
01
行为配置

Preset 把分支从编排器搬到数据,但没有消灭分支

每个 provider 需要定义可执行命令、模型/权限参数、恢复方式、环境变量和可选 bridge。编排器仍要根据能力做条件路径。

像旅行转接头:外形统一不代表电压、协议和功能完全一样。

02
恢复不是重启

同一个“继续会话”按钮背后有多种协议

有的 CLI 用 flag 携带 session id,有的使用 resume 子命令,有的根本不可靠支持。恢复还依赖本地 provider 数据目录与正确的工作区。

  • 01会话身份:内部 agent id 不等于 provider session id。
  • 02命令形态:flag 与 subcommand 的 token 顺序不同。
  • 03数据归属:Codex 的 CODEX_HOME 等目录影响能否找到历史。
  • 04失败语义:恢复失败应允许新会话、提示修复或中止,不能静默冒充成功。
03
扩展检查表

新增 Provider 要完成七项契约

真正完成支持,需要覆盖发现、启动、权限、模型、恢复、观测与清理;只把名字加进下拉框会产生半可用状态。

  • 01可执行文件发现与版本探测。
  • 02安全 tokenization 与参数顺序。
  • 03权限/approval 模式映射。
  • 04模型选择与默认值。
  • 05session id 的捕获与恢复。
  • 06hook/status 能力与降级表现。
  • 07退出、升级与数据目录清理。
WATCH

能力矩阵中“未知”应呈现为未知,不能用统一 UI 制造已支持的错觉。

LESSON CHECKPOINT

能用自己的话回答核心问题了吗?

统一接口应公开能力差异,而不是吞掉差异。