重构/拆分direct project, 并与其他模式做独立 #418

Open
opened 2026-09-18 11:35:38 +08:00 by k88936 · 3 comments
Member
No description provided.
k88936 changed title from 重构/前端拆分direct project相关代码, 并与其他模式做独立 to 重构/拆分direct project, 并与其他模式做独立 2026-09-18 11:36:09 +08:00
Author
Member

当前路径对照

路径 当前入口 后端主命令 / Runtime app-server 模式 工具与编排 持久化 / 恢复
DirectProject 普通“做游戏 / 做素材”项目聊天 chat_with_game_creator_direct_codex DirectProject 一个项目绑定的 Codex thread;Codex 原生文件、命令、搜索和 AGC MCP;无 Supervisor、无 DAG Codex 原始 item 写入 .agent/conversations/project.jsonl;Thread Manager subscribe/consume/notify 驱动实时 聊天
Supervisor 标准 ?supervisor-chat、旧项目或显式调试入口 start_game_creator_supervisor_runtime_task agentMode=codex_app_server,使用 ToolHost AGC Agent Runtime 执行工具;有运行态、确认、澄清、重试、恢复 LocalConversation、Runtime 状态、response stream;前端轮询 Runtime
Supervisor Professional DAG 旧的 professional-dag 路由 同上,runProfile=autonomous-game-build 同上,仍是 ToolHost Supervisor 可委派专业子 Agent,维护父子 Run、delivery、acceptance 等 同 Supervisor,额外有子 Agent Runtime 与结果投影
Design Agent 新“做方案”项目 continue_design_agent_session / decide_design_phase 不走 Codex app-server;使用 platform_llm Provider 单策划 Agent,自由文件工具循环;阶段审批、澄清卡、工作区文件 .agent/design-agent/session.jsonconversation.jsonldesign_artifacts/
Planning V2 已存在旧 planning-v2 会话的项目 start/continue_planning_session_v2、GDD decision 不走 DirectProject app-server 固定 plan_ask_question / plan_submit_gdd,最多 8 个有效问题,GDD 审批 .agent/planning-v2;仅作为存量兼容路径
DirectHome 首页自动命名、提示词润色等内部功能 direct_game_creator_home_codex_chat DirectHome 无项目、只读、临时 Codex 对话 不绑定用户项目,不是项目聊天
ToolHost Supervisor Runtime 的 Codex Provider 传输 request_game_creator_agent_codex_app_server ToolHost app-server 只承担模型响应;原生 workspace 写入被限制,实际工具由 AGC Runtime 执行 由 Agent Runtime 管理

1. DirectProject:当前普通项目的产品默认路径

路由条件是:

DIRECT_CODEX_PRODUCT_RUNTIME &&
projectSupervisorOnly &&
!supervisorChatOnly &&
!planningStartMode &&
!planningV2Active

App.tsx:576

发送时进入:

React App
  → chat_with_game_creator_direct_codex
  → Direct Runtime
  → Codex app-server / DirectProject
  → 项目文件、AGC MCP、命令执行
  → 文件投影与聊天历史

App.tsx:6459user_input.rs:31

它的特点:

  • 一个用户项目对应一个长期复用的 Codex thread。
  • 当前使用 sandbox="danger-full-access"sandboxPolicy.type="dangerFullAccess"
  • approvalPolicy=never,不再把每个原生 Codex 文件/命令动作包装成 Supervisor 确认卡。
  • agc_tools MCP 负责平台资源、注册、试玩、受控搜索等 AGC 能力。
  • 一个用户消息就是一个 Direct turn;支持中止、FIFO 排队、附件和 @ 素材引用。
  • 聊天事实源是 .agent/conversations/project.jsonl 的 Codex 原始 item,实时状态来自 Thread Manager 事件;前端通过同一投影合并历史和实时数据。

对应 app-server 模式定义见 codex_app_server/mod.rs:630,DirectProject 启动参数见 mod.rs:1630

2. Supervisor:仍存在,但不是普通项目默认聊天

Supervisor 是一个 AGC 自己的后台 Agent Runtime,不是单纯的聊天窗口。

典型链路:

用户消息
  → start_game_creator_supervisor_runtime_task
  → project-supervisor Runtime
  → 构建 Runtime Provider 请求
  → Provider / Codex app-server / Codex CLI
  → Runtime 执行工具、确认、恢复、委派
  → LocalConversation + Runtime 状态

前端提交位置见 App.tsx:6757

如果配置是 agentMode=codex_app_server,Supervisor 确实会调用 Codex app-server,但它使用的是 ToolHost 模式,而不是 DirectProject

  • ToolHost 默认只允许被动 item;
  • app-server 不直接获得项目写权限;
  • 实际文件、命令和业务工具由 AGC Runtime 的 runtime_tools 执行;
  • Supervisor 自己维护 run、session、pending action、用户输入、重试和恢复。

这一区别在 codex_app_server/mod.rs:630-660 中明确写出。

Professional DAG 只是 Supervisor 的一个运行配置:

project-supervisor
  → agent.delegate
  → 专业子 Agent
  → delivery / acceptance / repair

它不是 DirectProject 的隐藏子模式。当前普通“做游戏 / 做素材”默认已经绕过这条链路。

3. Design Agent 与 Planning V2:策划专用,不应混入 DirectProject

当前策划入口优先使用新的 Design Agent:

做方案
  → Design Agent Session
  → Provider Responses
  → 文件工具循环
  → 澄清 / 阶段审批
  → design_artifacts

前端先判断 planningStartMode,再选择 Design Agent 或存量 Planning V2,见 App.tsx:6438

## 当前路径对照 | 路径 | 当前入口 | 后端主命令 / Runtime | app-server 模式 | 工具与编排 | 持久化 / 恢复 | |---|---|---|---|---|---| | DirectProject | 普通“做游戏 / 做素材”项目聊天 | `chat_with_game_creator_direct_codex` | `DirectProject` | 一个项目绑定的 Codex thread;Codex 原生文件、命令、搜索和 AGC MCP;无 Supervisor、无 DAG | Codex 原始 item 写入 `.agent/conversations/project.jsonl`;Thread Manager `subscribe/consume/notify` 驱动实时 聊天 | | Supervisor 标准 | `?supervisor-chat`、旧项目或显式调试入口 | `start_game_creator_supervisor_runtime_task` | 若 `agentMode=codex_app_server`,使用 `ToolHost` | AGC Agent Runtime 执行工具;有运行态、确认、澄清、重试、恢复 | `LocalConversation`、Runtime 状态、response stream;前端轮询 Runtime | | Supervisor Professional DAG | 旧的 `professional-dag` 路由 | 同上,`runProfile=autonomous-game-build` | 同上,仍是 `ToolHost` | Supervisor 可委派专业子 Agent,维护父子 Run、delivery、acceptance 等 | 同 Supervisor,额外有子 Agent Runtime 与结果投影 | | Design Agent | 新“做方案”项目 | `continue_design_agent_session` / `decide_design_phase` | 不走 Codex app-server;使用 `platform_llm` Provider | 单策划 Agent,自由文件工具循环;阶段审批、澄清卡、工作区文件 | `.agent/design-agent/session.json`、`conversation.jsonl`、`design_artifacts/` | | Planning V2 | 已存在旧 `planning-v2` 会话的项目 | `start/continue_planning_session_v2`、GDD decision | 不走 DirectProject app-server | 固定 `plan_ask_question` / `plan_submit_gdd`,最多 8 个有效问题,GDD 审批 | `.agent/planning-v2`;仅作为存量兼容路径 | | DirectHome | 首页自动命名、提示词润色等内部功能 | `direct_game_creator_home_codex_chat` | `DirectHome` | 无项目、只读、临时 Codex 对话 | 不绑定用户项目,不是项目聊天 | | ToolHost | Supervisor Runtime 的 Codex Provider 传输 | `request_game_creator_agent_codex_app_server` | `ToolHost` | app-server 只承担模型响应;原生 workspace 写入被限制,实际工具由 AGC Runtime 执行 | 由 Agent Runtime 管理 | ## 1. DirectProject:当前普通项目的产品默认路径 路由条件是: ```ts DIRECT_CODEX_PRODUCT_RUNTIME && projectSupervisorOnly && !supervisorChatOnly && !planningStartMode && !planningV2Active ``` 见 [`App.tsx:576`](/mnt/ssd1/Genarrative/apps/ai-game-creator-shell/src/App.tsx:576)。 发送时进入: ```text React App → chat_with_game_creator_direct_codex → Direct Runtime → Codex app-server / DirectProject → 项目文件、AGC MCP、命令执行 → 文件投影与聊天历史 ``` 见 [`App.tsx:6459`](/mnt/ssd1/Genarrative/apps/ai-game-creator-shell/src/App.tsx:6459) 和 [`user_input.rs:31`](/mnt/ssd1/Genarrative/apps/ai-game-creator-shell/src-tauri/src/agent/direct_runtime/user_input.rs:31)。 它的特点: - 一个用户项目对应一个长期复用的 Codex thread。 - 当前使用 `sandbox="danger-full-access"`、`sandboxPolicy.type="dangerFullAccess"`。 - `approvalPolicy=never`,不再把每个原生 Codex 文件/命令动作包装成 Supervisor 确认卡。 - `agc_tools` MCP 负责平台资源、注册、试玩、受控搜索等 AGC 能力。 - 一个用户消息就是一个 Direct turn;支持中止、FIFO 排队、附件和 `@` 素材引用。 - 聊天事实源是 `.agent/conversations/project.jsonl` 的 Codex 原始 item,实时状态来自 Thread Manager 事件;前端通过同一投影合并历史和实时数据。 对应 app-server 模式定义见 [`codex_app_server/mod.rs:630`](/mnt/ssd1/Genarrative/apps/ai-game-creator-shell/src-tauri/src/agent/codex_app_server/mod.rs:630),DirectProject 启动参数见 [`mod.rs:1630`](/mnt/ssd1/Genarrative/apps/ai-game-creator-shell/src-tauri/src/agent/codex_app_server/mod.rs:1630)。 ## 2. Supervisor:仍存在,但不是普通项目默认聊天 Supervisor 是一个 AGC 自己的后台 Agent Runtime,不是单纯的聊天窗口。 典型链路: ```text 用户消息 → start_game_creator_supervisor_runtime_task → project-supervisor Runtime → 构建 Runtime Provider 请求 → Provider / Codex app-server / Codex CLI → Runtime 执行工具、确认、恢复、委派 → LocalConversation + Runtime 状态 ``` 前端提交位置见 [`App.tsx:6757`](/mnt/ssd1/Genarrative/apps/ai-game-creator-shell/src/App.tsx:6757)。 如果配置是 `agentMode=codex_app_server`,Supervisor 确实会调用 Codex app-server,但它使用的是 `ToolHost` 模式,而不是 `DirectProject`: - `ToolHost` 默认只允许被动 item; - app-server 不直接获得项目写权限; - 实际文件、命令和业务工具由 AGC Runtime 的 `runtime_tools` 执行; - Supervisor 自己维护 run、session、pending action、用户输入、重试和恢复。 这一区别在 [`codex_app_server/mod.rs:630-660`](/mnt/ssd1/Genarrative/apps/ai-game-creator-shell/src-tauri/src/agent/codex_app_server/mod.rs:630) 中明确写出。 Professional DAG 只是 Supervisor 的一个运行配置: ```text project-supervisor → agent.delegate → 专业子 Agent → delivery / acceptance / repair ``` 它不是 DirectProject 的隐藏子模式。当前普通“做游戏 / 做素材”默认已经绕过这条链路。 ## 3. Design Agent 与 Planning V2:策划专用,不应混入 DirectProject 当前策划入口优先使用新的 Design Agent: ```text 做方案 → Design Agent Session → Provider Responses → 文件工具循环 → 澄清 / 阶段审批 → design_artifacts ``` 前端先判断 `planningStartMode`,再选择 Design Agent 或存量 Planning V2,见 [`App.tsx:6438`](/mnt/ssd1/Genarrative/apps/ai-game-creator-shell/src/App.tsx:6438)。
Owner

Author
Member

这几个还要吗😵‍💫
Supervisor
Supervisor Professional DAG
ToolHost

这个改个名吧😵‍💫
DirectHome

这几个还要吗😵‍💫 Supervisor Supervisor Professional DAG ToolHost 这个改个名吧😵‍💫 DirectHome
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GenarrativeAI/Genarrative#418