Loading

codex app的架构是怎样的,其中哪些是开源项目,帮我解构一下。

可以把 Codex App 理解成:闭源桌面控制台 + 开源 Codex 本地运行时 + OpenAI 云端模型服务

官方明确说,桌面 App、CLI、IDE、Codex Web 底层共享同一套 Codex harness;桌面 App 主要负责同时组织多个 agent、项目、worktree、差异审查和用户交互。OpenAI App Server 架构说明

flowchart TB UI["Codex 桌面 App<br/>项目、任务列表、Diff、通知、审批<br/>未公开源码"] subgraph AS["Codex App Server(开源 Rust)"] IO["JSONL / JSON-RPC stdio"] MP["消息处理器"] TM["Thread Manager"] T1["Core Thread A"] T2["Core Thread B"] TN["Core Thread N"] IO --> MP --> TM TM --> T1 TM --> T2 TM --> TN end CORE["Codex Core / Agent Harness<br/>开源 Rust"] EXT["Skills / Plugins / MCP / Hooks"] EXEC["Shell / 文件工具 / Git / Worktree"] SB["系统级 Sandbox"] STATE["Thread 历史 / 状态 / Rollout"] API["OpenAI 模型、认证和云端服务<br/>闭源"] UI <-->|"双向事件与审批"| IO T1 --> CORE T2 --> CORE TN --> CORE CORE --> EXT CORE --> EXEC --> SB CORE --> STATE CORE <-->|"推理请求与流式结果"| API

一次任务怎样运行

  1. 桌面 App 启动随应用固定版本发布的 codex 二进制,并与 App Server 保持 stdio JSONL 通道。
  2. App 发送 thread/startthread/resume,然后发送 turn/start
  3. App Server 的 Thread Manager 为每个 thread 管理一个 Codex Core session。
  4. Codex Core 组合提示词、AGENTS.md、配置、skills 和上下文,然后调用模型。
  5. Core 在沙箱中执行 shell、文件修改、Git、MCP 等工具。
  6. App Server 把 item/*turn/*、diff、审批请求和状态变化流式返回桌面 UI。
  7. App 根据这些事件更新进度、展示 diff,并在 turn/completed 后标记轮次结束。

App Server 是双向协议:不仅客户端发请求,服务端也会反向请求审批或用户输入,并暂停当前 turn。App Server 协议文档

并行任务的本质

Codex App 的“多个任务并行”主要不是一个 thread 内开很多操作,而是:

  • 每个独立任务对应一个 thread。
  • Thread Manager 同时托管多个 Core thread。
  • 每个 thread 有自己的历史、turn、goal 和事件流。
  • 多个编码任务可以配合 Git worktree,获得相互隔离的工作目录。
  • 桌面 App 聚合这些 thread 的状态,形成 Activity、通知和任务列表。

哪些是开源的

组件 状态 主要位置
Codex CLI、TUI、Exec 开源 openai/codex
Codex Core / agent loop 开源 codex-rs/core
Codex App Server 开源 codex-rs/app-server
App Server 协议、transport、client 开源 app-server-protocolapp-server-transportapp-server-client
Thread 持久化与状态 开源 thread-storerolloutstate
Shell、补丁、文件搜索等工具 开源 toolsapply-patchshell-commandfile-search
沙箱和执行策略 开源 sandboxinglinux-sandboxbwrapexecpolicyprocess-hardening
MCP Server 和 MCP 客户端支持 开源 mcp-servercodex-mcprmcp-client
Codex SDK 开源 openai/codex/sdk
官方 Skills 开源 openai/skills
官方 Plugins 开源 openai/plugins
Cloud 基础容器镜像 开源 openai/codex-universal

openai/codex 主仓库使用 Apache-2.0 许可证。官方开源组件清单

哪些没有开源

  • Codex 桌面 App 的 UI、项目管理、Activity、Diff 审查和窗口实现。
  • 桌面端 Automations 的完整调度与管理实现。
  • IDE Extension。
  • Codex Cloud 的任务编排、worker 管理、账户系统和后端服务。
  • OpenAI 模型权重、推理服务、额度和订阅系统。
  • 部分托管连接器以及服务端搜索能力。

严格来说,官方开源清单没有把“桌面 App 客户端”列为开源组件,公开仓库也没有其完整 UI 工程。因此应把桌面 UI 视为未公开实现,而不是假设它与 CLI 一样开源。官方资料也没有正式承诺桌面壳使用 Electron、Tauri、Wails 或其他具体框架。

本地与云端的区别

本地任务是:

桌面 UI → 本机 App Server → 本机 Codex Core → 本机沙箱和项目文件

Codex Web/云任务则是:

浏览器或桌面 UI
  → OpenAI 后端 HTTP/SSE
  → 云端 Worker
  → 临时容器中的 App Server
  → Codex Core

开源的 codex-universal 只是云端环境的基础镜像;容器调度、任务队列、断线续跑、权限和账号系统仍属于闭源服务。

对你的 Go 监控程序来说,最佳切入点就是 App Server 协议层。你可以复用几乎全部开源 agent runtime,但需要自己实现桌面 App 那部分:任务注册表、状态聚合、通知、审批 UI、重连和多任务调度。不要试图绑定闭源桌面 UI 的内部进程。

posted @ 2026-08-10 17:20  老卫同学  阅读(17)  评论(0)    收藏  举报