接入 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
@@ -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
事件、错误分类和终态必须一致。