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
一次任务怎样运行
- 桌面 App 启动随应用固定版本发布的
codex二进制,并与 App Server 保持 stdio JSONL 通道。 - App 发送
thread/start或thread/resume,然后发送turn/start。 - App Server 的 Thread Manager 为每个 thread 管理一个 Codex Core session。
- Codex Core 组合提示词、
AGENTS.md、配置、skills 和上下文,然后调用模型。 - Core 在沙箱中执行 shell、文件修改、Git、MCP 等工具。
- App Server 把
item/*、turn/*、diff、审批请求和状态变化流式返回桌面 UI。 - 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-protocol、app-server-transport、app-server-client |
| Thread 持久化与状态 | 开源 | thread-store、rollout、state |
| Shell、补丁、文件搜索等工具 | 开源 | tools、apply-patch、shell-command、file-search |
| 沙箱和执行策略 | 开源 | sandboxing、linux-sandbox、bwrap、execpolicy、process-hardening |
| MCP Server 和 MCP 客户端支持 | 开源 | mcp-server、codex-mcp、rmcp-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 的内部进程。

浙公网安备 33010602011771号