接入 AGC 独立 Agent 试验模式

新增 agent_runtime 配置并通过 stdio App Server 启动独立 Agent

接通后台、交互和 DirectProject 文本回合,保留旧 Codex 回退

对未接入的 function tool 明确失败,避免静默丢失工具调用

补充 AGC 配置回归与实施边界文档
This commit is contained in:
2026-09-10 12:45:54 +08:00
parent c709b3d9b2
commit bd85694ee9
14 changed files with 330 additions and 13 deletions
@@ -9018,6 +9018,17 @@ CI 上 `background_agent_runtime_recovers_stale_running_before_pending_task` 在
- 验证:CLI App Server 黑盒子进程测试 4/4、Host 80/80 与实时流 2/2 通过;workspace
lock/check、Clippy、fmt、编码和 diff 门禁通过。
## 2026-09-10 AGC 接入独立 Agent 试验模式
- 决策:AGC 新增可选 `agent_runtime` 模式,通过 `GENARRATIVE_AGENT_RUNTIME_PROGRAM`
启动独立 `agent app-server --stdio`;不把独立 workspace 作为 AGC Rust 依赖,也不把
Codex App Server 作为中间协议。旧 `codex_app_server`/`codex_cli` 模式保留为回退路径。
- 当前范围:已接通后台 Provider、交互回合和 DirectProject/首页文本回合;消息与模型配置
经 JSONL 传给独立 Agent,完成结果映射回现有 LLM 响应。独立 Agent 自己拥有 Kernel、
Engine、Provider 和 Runtime,AGC 暂不接管其工具/审批/持久化。
- 未完成:AGC 工具动作的跨进程协议、流式事件回传、取消/审批映射和默认模式切换;本阶段
不修改 Codex 版本或删除现有接线。
## 2026-09-09 AGC 改用独立 Agent 内核的替换边界
- 决策:后续目标是用独立 `rust/` workspace 的 Kernel/Engine 替换 AGC 的 Codex 执行循环,
@@ -5,19 +5,20 @@
让 AGC 的 Codex 模式改由独立 `rust/` workspace 的 Agent Kernel/Engine 执行,
同时保留 AGC 宿主对项目、工具权限、审批、Runtime 持久化、预览和完成门的控制。
## 第一阶段:兼容桥(当前)
## 第一阶段:独立进程试验(已完成)
- 在 AGC 与独立 workspace 之间建立明确的 `AgentTurnAdapter` 边界,不让两套
`agent-runtime-core` 类型直接互相泄漏。
- 输入:AGC 的消息历史、模型配置、工具定义、当前 Agent 身份和取消信号。
- 输出:文本增量、结构化 tool call、工具结果、终态错误和可审计事件。
- AGC 继续执行工具动作并写入自己的 Runtime;新 Engine 不创建第二套项目状态机。
- 同步 Engine 与 AGC Tokio 的连接通过独立受控线程/有界 channel,禁止在同一 Tokio
worker 内直接 `block_on`。
- `agent-cli app-server --stdio` 已提供独立 JSON-RPC JSONL 服务;AGC 通过
`agent_runtime_client.rs` 以外部子进程连接,不共享 Rust 类型、SQLite 或 Codex。
- `agent_runtime` 模式已接入后台 Provider 回合、交互回合和 DirectProject/首页直聊入口;
文本消息会转换为新 Agent 的一次 `run/start`,结果再映射回现有 `LlmRunResponse`。
- `GENARRATIVE_AGENT_RUNTIME_PROGRAM` 可指定 Agent 可执行文件,默认从 PATH 查找 `agent`;
子进程使用独立临时目录、HOME、DB 和环境,旧 Codex 模式仍可回退。
- 当前只替换无 function tool 的文本推理;带工具的 AGC 回合会明确失败,不伪装迁移
AGC 工具调用、审批、项目 Runtime 或预览完成门。这些仍留在 AGC,后续按协议逐项接入。
## 第二阶段:实验模式
## 第二阶段:工具协议实验(下一步)
- 新增 `agent_runtime` 模式,仅作为可回滚实验开关,默认仍使用现有 Codex 模式。
- 保持 `agent_runtime` 为可回滚实验开关,默认仍使用现有 Codex 模式。
- 先覆盖文本回复、单工具调用、工具结果回传、拒绝/取消/超时和事件顺序。
- 使用现有 AGC fixture 对比旧 Codex 模式和新 Engine:消息、工具调用参数、Runtime
事件、错误分类和终态必须一致。