xworkmate-app/docs/codex-integration/tasks.md
2026-06-06 12:00:13 +08:00

101 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 已退役,不应再作为当前实现宣传。
## 能力补全清单(按需求项)
1. 内置 Code Agentbuilt-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` 非托管内容