xworkmate-app/docs/reports/codex-integration-status-actual.md

123 lines
4.1 KiB
Markdown
Raw Normal View History

# XWorkmate Codex 集成实际状态
更新时间2026-03-14
## 当前结论
XWorkmate 当前唯一可交付的 Codex 集成路径是 **External Codex CLI**
当前已落地的真实链路:
1. 用户在 `设置 > 集成 > AI Gateway > 工具` 显式启用 Bridge。
2. XWorkmate 通过 `CodexConfigBridge` 写入 `~/.codex/config.toml`,把 AI Gateway 暴露给 Codex。
3. XWorkmate 通过 `CodexRuntime.startStdio()` 拉起外部 `codex app-server --listen stdio://`
4. XWorkmate 通过 `CodeAgentNodeOrchestrator` 生成 app-mediated node dispatch metadata并在 `chat.send` 时发送给 OpenClaw Gateway。
5. 如果 OpenClaw Gateway 已连接XWorkmate 会执行一次 `agent/register`,把自己注册为协同 `code-agent-bridge`
这意味着当前架构是 **app-mediated RPC bridge**,不是 `Codex CLI``OpenClaw Gateway` 直接互连。
## 已完成
### 1. External Codex CLI 协同模式
- `SettingsSnapshot.codeAgentRuntimeMode` 已加入持久化模型,默认值为 `externalCli`
- `SettingsSnapshot.codexCliPath` 已加入持久化模型,用于外部 Codex 二进制路径覆盖
- `AppController.enableCodexBridge()` 已改为显式执行完整链路:
- 校验 AI Gateway 配置
- 导出 Codex bridge 配置
- 启动外部 Codex CLI 进程
- Gateway 已连接时执行 `agent/register`
- `AppController.sendChatMessage()` 已不再直接裸调 Gateway chat而是先构造 app-mediated node dispatch envelope
- Gateway 不可用时Bridge 会降级为本地运行,外部 Codex 进程不会因为注册失败而被终止
- `AgentRegistry.register()` 已支持真实 `transport` metadata不再把外部桥接伪装成固定 `in-process`
### 2. 外部 CLI 预留能力
- `RuntimeCoordinator` 继续维护 `ExternalCodeAgentProvider` registry
- `CodeAgentNodeOrchestrator` 已成为 App -> Gateway 的统一 dispatch metadata builder
- Codex 已通过同一套 provider surface 暴露:
- `id = codex`
- `command`
- `defaultArgs`
- capability metadata
当前仍然只有一个 active provider`codex`。
### 3. UI 与 truth 收口
- Codex 区域已从“仅导出配置”改成 bridge control panel
- 界面现在展示:
- 运行时模式
- binary 检测状态
- 手动路径覆盖
- bridge 状态
- Gateway 协同注册状态
- `builtIn` 仍保留在 enum 中,但 UI 只显示为 `Experimental`
- 若用户选择 `builtIn`,设置会被保留,并以实验态提示风险
- Scheduled Tasks 页面明确为 `cron.list` 只读展示
- Memory 只表述为 `memory/sync` 同步能力,不宣传 CRUD
- OpenClaw Gateway 看到的是 `XWorkmate App node`CLI 仍保持在 App 后端 runtime 边界内
## 未完成
### 1. Built-in Codex / Rust FFI
仍未完成,且当前不应作为已交付能力对外承诺。
现状:
- `rust/src/lib.rs` 仍保留消息发送和事件轮询 TODO
- `rust/src/runtime.rs` 仍保留进程启动和停止 TODO
- Flutter 侧的 `builtIn` 只是保留枚举位,不会实际走可用 FFI 路径
### 2. 其他外部 Provider 的通用选择与调度
当前只完成 registry 和 capability metadata 预留,没有做:
- provider chooser UI
- capability discovery UI
- 多 provider 调度策略
这些能力要等第二个真实 provider 落地后再补。
### 3. OpenClaw Tasks / Memory 深度能力
当前只到 truth-first 范围:
- Scheduled Tasks`cron.list` 只读
- Memory`memory/sync` only
当前没有:
- 创建 / 删除 cron job 的 UI
- 通用任务调度写接口
- 记忆的 store / retrieve / list / delete 产品化界面
## 当前架构
```mermaid
flowchart LR
X["XWorkmate App"] --> C["External Codex CLI\n(JSON-RPC over stdio)"]
C --> A["AI Gateway"]
X --> G["OpenClaw Gateway\n(WebSocket RPC)"]
X --> R["agent/register\ncode-agent-bridge"]
R --> G
X --> P["ExternalCodeAgentProvider Registry"]
```
## 交付判断
截至 2026-03-14可对外宣称的能力只有
- External Codex CLI bridge
- AI Gateway 模型桥接
- OpenClaw Gateway 协同注册
- External provider registry 预留
不能宣称的能力:
- Built-in Codex 已可用
- Rust FFI 已完成
- Scheduled Tasks 已支持增删改
- Memory 已支持完整 CRUD