xworkmate-app/docs/codex-integration/tasks.md

102 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 仍是 future placeholder不应宣传为已完成。
## 能力补全清单(按需求项)
1. 内置 Code Agentbuilt-in
- 已提供运行时模式接入位与桥接流程编排AI Gateway / OpenClaw 协同元数据)
- 当前仍属于 experimental受 Rust FFI TODO 约束
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 具备真实可用能力后,再开放 built-in 交付承诺
前置条件:
- `rust/src/lib.rs` 的消息发送 / 轮询 TODO 完成
- `rust/src/runtime.rs` 的进程启动 / 停止 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` 非托管内容