diff --git a/docs/technical/【技术评估】AGC与独立Agent Codex替换对比-2026-09-09.md b/docs/technical/【技术评估】AGC与独立Agent Codex替换对比-2026-09-09.md index d3699e2cd..5d67f41a6 100644 --- a/docs/technical/【技术评估】AGC与独立Agent Codex替换对比-2026-09-09.md +++ b/docs/technical/【技术评估】AGC与独立Agent Codex替换对比-2026-09-09.md @@ -5,6 +5,10 @@ 当前不能直接把 AGC 的 Codex 实现替换成 `rust/` workspace 的 `agent-codex`,也不能只替换可执行文件后宣称兼容。三处版本和职责并不一致: +这里的目标不是“换一个 Codex 适配器”,而是让 AGC 的 Codex 模式改由新 Agent +Kernel/Engine 执行;AGC 继续作为宿主,保留项目工具、权限、持久化、预览和完成门。 +因此替换对象是 Codex 的推理/工具循环,不是把 AGC 的宿主安全层删掉。 + | 位置 | 当前版本/协议 | 实际范围 | | --- | --- | --- | | AGC npm/Windows sidecar | `@openai/codex` / `codex-cli 0.147.0` | 自建 Tokio app-server 连接池、隔离 `CODEX_HOME`、workspace sandbox、MCP/Skill、项目工具桥、Runtime 事件和取消/审计 | @@ -38,21 +42,22 @@ thread queue、resume/steer、settings、goals、realtime、plugins、skills、M ## 分阶段替换路线 -1. 先在独立 workspace 新增明确命名的 `codex_0_153_4` typed adapter,基于该版本生成的 - provenance/schema fixture,覆盖 initialize、thread/start、turn/start、interrupt、 - 核心通知和 dynamic-tool request;未覆盖方法默认拒绝或保留 raw,不静默猜测。 -2. 给通用 process facade 增加显式的工作目录和环境策略接口,或由 AGC 外层继续负责 - `CODEX_HOME`、凭据桥和敏感环境排除;不能因接入 Rust adapter 而削弱隔离。 -3. 在 AGC 内增加版本无关的窄 adapter trait,让现有 `codex_app_server.rs` 与 Rust - adapter 可切换;保留 0.147.0 路径作为回滚实现,先做离线握手、通知、server-request、 - cancel/timeout 和 Runtime 事件回归。 -4. 通过隔离 `CODEX_HOME` 的真实 0.153.4 initialize/thread/turn/tool smoke 后,才考虑 - 更新 npm lock、Windows sidecar、NOTICE、build manifest 和默认版本;真实 turn 必须 - 使用授权环境,不能用 fixture 代替。 +1. 先把 AGC 宿主能力抽成新 Engine 可调用的 Provider/Tool/Approval/Context 端口适配器; + AGC 仍持有项目 Runtime、权限、审计、预览和持久化真相。 +2. 给独立 Engine 增加 AGC 所需的异步 facade(Tokio↔同步 Engine 的受控线程桥),并把 + AGC 的工具动作转换为新 Kernel 的 `ToolExecutor`,不复制第二套项目状态机。 +3. 在 AGC 增加实验模式 `agent_runtime`,与旧 `codex_app_server` 并行;先覆盖文本、 + function tool、审批拒绝/等待、取消、超时和事件投影,失败自动回滚到旧模式。 +4. 再处理 Codex 版本适配:新 Agent 若仍通过 Codex App Server 访问模型,新增 + `codex_0_153_4` typed adapter;若直接用 OpenAI Provider,则不把 Codex wire 作为 + 新 Engine 依赖。两条路径都必须保留 AGC 的隔离环境策略。 +5. 通过同一批 AGC fixture 对比两条模式的消息、工具调用、Runtime 事件、取消和终态, + 之后才考虑把 `agent_runtime` 设为默认;0.147.0 旧路径在验收前保留。 ## 当前不做 -- 不直接修改 AGC 的生产 Codex 接线或删除 0.147.0 fallback。 +- 本阶段不直接修改 AGC 的默认 Codex 接线或删除 0.147.0 fallback;先实现可回滚的 + `agent_runtime` 实验路径。 - 不复制 `codex-core`、ThreadStore、sandbox、认证、MCP/Skill/plugin 子系统到独立内核。 - 不把本机 0.153.4 的握手通过写成完整 session、工具或版本兼容已验收。