# Codex CLI 集成任务路线图 ## 当前结论 XWorkmate 当前唯一可交付的 Codex 集成路径是 **external CLI**: - 通过 `CodexRuntime.startStdio()` 拉起外部 `codex app-server` - 通过 `CodexConfigBridge` 把 AI Gateway 写入 `~/.codex/config.toml` - 通过 `CodeAgentNodeOrchestrator` 把 XWorkmate 固定为 `app-mediated cooperative node` - 通过 `RuntimeCoordinator` 保留多外部 Code Agent CLI 的统一 registry surface Rust FFI / built-in Codex 已退役,不应再作为当前实现宣传。 ## 能力补全清单(按需求项) 1. 内置 Code Agent(built-in): - 已提供运行时模式接入位与桥接流程编排(AI Gateway / OpenClaw 协同元数据) - 当前仍属于 experimental,且 Rust FFI 路径已退役 2. 外部依赖 Codex CLI: - 已作为稳定主路径接入 - 保持与内置模式相同的桥接能力和模式切换语义 - 写入 `~/.codex/config.toml` 时不覆盖原有非托管配置 3. 其他外部 Code Agent CLI: - 已通过 `ExternalCodeAgentProvider` 保留统一注册契约 - capability metadata 与调度扩展点在 runtime 层收口 ## 交付顺序 ### Phase 1: 外部 Codex CLI 协同模式 目标: 1. 用户显式启用 bridge 2. XWorkmate 先启动外部 Codex CLI 进程 3. 若 OpenClaw Gateway 已连接,则将 XWorkmate 注册为协同 code-agent bridge 4. AI Gateway 继续作为同一套模型桥接入口 5. App 发送到 Gateway 的 chat 请求带上 node / provider / bridge dispatch metadata 交付范围: - `SettingsSnapshot.codeAgentRuntimeMode` - `SettingsSnapshot.codexCliPath` - Codex bridge control panel - Gateway `agent/register` 协同注册 - `chat.send` 的 app-mediated node metadata - 本地降级:Gateway 不可用时,外部 Codex 仍可运行 - `CodexConfigBridge` 对 `~/.codex/config.toml` 采用非破坏性写入(仅更新 XWorkmate 托管块,保留原有配置) 非目标: - 不自动开机拉起 Codex - 不新增 Gateway 后端 API - 不做 provider chooser ### Phase 2: 其他外部 Code Agent CLI 预留 目标: - 保留统一注册、能力 metadata 和调度扩展点 - Codex 自身也通过同一 registry surface 暴露 provider 身份 交付范围: - `ExternalCodeAgentProvider` 继续作为唯一 provider contract - provider metadata / capability discovery 继续收口在 runtime 层 - runtime 层提供统一发现/调度入口(`discoverExternalCodeAgents` / `selectExternalCodeAgent`) - App 侧通过 `CodeAgentNodeOrchestrator` 统一生成 Gateway dispatch envelope - 文档明确:当前 active provider 只有 `codex` 非目标: - 不做第二个 provider 之前的通用 UI - 不做复杂调度策略 ### Phase 3: 内置 Codex / Rust FFI(历史) 目标: - 这一路径仅作历史记录保留,不再推进为当前交付面 前置条件: - 历史文档中的 Rust FFI TODO 不再作为当前实现目标 - 能复用与 external CLI 相同的 coordinator / registry 契约 ## truth 收口 - Scheduled Tasks 当前只消费 `cron.list`,是只读展示 - Memory 当前只消费 `memory/sync`,是 sync-only - `.env` 仍是 prefill-only,不是运行时真值源 - 远程网关仍必须保持 TLS 显式配置 - OpenClaw Gateway 只看到 `XWorkmate App node`,不会直接连接外部 CLI ## 本轮验收 - External Codex bridge 可显式启用/停用 - 已配置 AI Gateway 时可导出/写入 Codex bridge 配置 - OpenClaw 已连接时,XWorkmate 会执行一次 `agent/register` - Gateway 不可用时,Bridge 退化为本地运行,不中断外部 Codex 进程 - 外部 Codex 集成不会覆盖用户已有 `~/.codex/config.toml` 非托管内容