Codex不再只是CLI:OpenAI把它做成了Agent平台
Codex 不再只是 CLI:OpenAI 把它做成了 Agent 平台
看完你会发现,你对「Codex是什么」的理解可能要更新了。
2026 年 8 月 20 日,OpenAI 发布博文《Codex as a platform: build on the open agent harness》。
标题里的关键词不是「Codex」,是「platform」和「open agent harness」。OpenAI 正在把 Codex 从一个终端编码 Agent 变成一个可编程的 Agent 平台——你不再只是用 Codex 写代码,你可以在 Codex 的 harness 上构建自己的 Agent 应用。
GitHub 仓库 openai/codex 有 111,342 Stars、17,089 Forks。Rust 核心 + Python SDK + TypeScript SDK,Apache 2.0 协议。但 Stars 数只是表象,真正的变化在代码结构里。
注:OpenAI 博客原文受 Cloudflare 保护无法完整获取。以下基于 Codex 仓库的代码结构、SDK 文档、App Server 协议 schema、和已公开的组件设计分析撰写。
本文提纲
- 从 CLI 到平台:架构跃迁
- App Server Protocol:641KB 的 JSON-RPC 协议
- Python SDK:pip install openai-codex
- TypeScript SDK:npm install @openai/codex-sdk
- Skills 系统:7 个内置技能
- Plugin 市场:安装、分享、搜索
- Guardian:生产级安全护栏
- 远程控制:SSH 上的 Agent 守护进程
- 外部 Agent 迁移:从其他框架导入配置
- 这件事的结构性意义
从 CLI 到平台:架构跃迁
一年前 Codex 是什么?一个终端里的编码 Agent,类似 Claude Code。你输入 codex,它帮你写代码、跑测试、提 PR。
现在 Codex 是什么?一个分层平台:
graph TB
A["Your App
Python / TypeScript / JSON-RPC"] --> B["Codex App Server
Rust daemon"]
B --> C["Agent Runtime
threads, turns, tools, MCP"]
C --> D["Model Layer
OpenAI / local / gateway"]
C --> E["Tool Layer
Read/Write/Edit/Bash/Glob/Grep"]
C --> F["MCP Integration
OAuth + resources + events"]
C --> G["Skills System
auto-activated knowledge"]
C --> H["Plugin Marketplace
install/search/share"]
C --> I["Guardian
permission profiles + approvals"]
style A fill:#FF6B6B,color:#000000
style B fill:#4ECDC4,color:#000000
style C fill:#45B7D1,color:#000000你的应用通过 SDK(Python 或 TypeScript)或直接 JSON-RPC 连接到 Codex App Server——一个 Rust 写的守护进程。App Server 管理 Agent Runtime,Runtime 负责线程(threads)、回合(turns)、工具调用、MCP 集成、Skills、Plugins 和安全护栏。
你不再是在终端里敲命令——你在用编程语言调用一个完整的 Agent 基础设施。
App Server Protocol:641KB 的 JSON-RPC 协议
App Server Protocol 是 Codex 平台的核心。它是一个基于 JSON-RPC 的协议,有 v1 和 v2 两版 schema。v2 的完整 schema 文件有 641KB——这不是一个小 API,是一个完整的 Agent 操作系统级协议。
协议覆盖的能力从文件树可见一斑:
| 能力域 | 具体 RPC |
|---|---|
| Thread 生命周期 | start, list, read, fork, archive, delete, resume, revert, rollback |
| Turn 处理 | start, interrupt, steer |
| 文件系统 | read, write, create dir, remove, copy, watch, metadata |
| 命令执行 | exec, resize, terminate, write |
| MCP 集成 | tool call, resource read, OAuth login, event stream, server status |
| Plugin 系统 | install, uninstall, list, read, search, share, save |
| Plugin 市场 | marketplace add, remove, upgrade |
| Skills | config write, extra roots set, changed notifications |
| Guardian/审批 | permission profiles, file change approval, command exec approval |
| 外部 Agent | config detect, import, histories |
| 远程控制 | status, processor |
| Apps | installed, list, read |
| Account | login, logout, rate limits, token usage |
| Config | batch write, read, requirements, warnings |
| Model 管理 | list, provider capabilities, reroute, safety buffering |
| Hooks | list, started, completed |
| 上下文 | compaction, plan items |
| 实时对话 | realtime conversation |
每一行都是一个完整的子系统。比如 Thread 生命周期不只是 start/stop——还有 fork(分支对话)、resume(续接中断的对话)、revert(回滚到某个历史点)、rollback(回滚文件变更)。这些操作粒度比大多数 Agent 框架的「创建会话/发消息/结束」三个操作要细一个数量级。
协议支持两种传输:WebSocket(远程连接)和 stdio(本地进程间)。内部进程间路径使用类型化通道而非 JSON 序列化,保持热路径性能。
Python SDK:pip install openai-codex
pip install openai-codexfrom openai_codex import Codex
with Codex() as codex:
thread = codex.thread_start()
result = thread.run("Explain this repository in three bullets.")
print(result.final_response)三行代码,你就把 Codex 的 Agent 能力嵌入了你的 Python 应用。SDK 复用已有的 Codex 认证——不需要额外配置 API key。
15 个示例项目覆盖了完整使用场景:
| # | 示例 | 教什么 |
|---|---|---|
| 01 | quickstart | 基础构造和首次调用 |
| 02 | turn_run | 同步/异步执行回合 |
| 03 | turn_stream_events | 流式事件处理 |
| 04 | models_and_metadata | 模型选择和元数据 |
| 05 | existing_thread | 恢复已有线程 |
| 06 | thread_lifecycle_and_controls | 线程生命周期和控制 |
| 07 | image_and_text | 图片输入 |
| 08 | local_image_and_text | 本地图片输入 |
| 09 | async_parity | 同步/异步对等 |
| 10 | error_handling_and_retry | 错误处理和重试 |
| 11 | cli_mini_app | CLI 迷你应用 |
| 12 | turn_params_kitchen_sink | 回合参数全集 |
| 13 | model_select_and_turn_params | 模型选择+回合参数 |
| 14 | turn_controls | 回合控制(中断、转向) |
| 15 | login_and_account | 登录和账户管理 |
SDK 的设计有几个值得注意的细节:
- 认证复用。 已经在 Codex CLI 登录过的用户,SDK 直接用,不需要重新认证。也支持 ChatGPT 浏览器登录、设备码登录、API key 登录。
- 异步/同步对等。 每个示例都有 async 和 sync 两个版本。不是事后补的同步包装,是从设计上保证对等。
- 生成代码量大。
generated/v2_all.py有 326KB——这是从协议 schema 自动生成的类型化 API。每个 RPC 都有对应的 Python 类型签名。
TypeScript SDK:npm install @openai/codex-sdk
npm install @openai/codex-sdkimport { Codex } from "@openai/codex-sdk";
const codex = new Codex();
const thread = codex.startThread();
const turn = await thread.run("Diagnose the test failure and propose a fix");
console.log(turn.finalResponse);TypeScript SDK 的设计思路和 Python 不同——它不是直接走 JSON-RPC,而是spawn Codex CLI 进程,通过 stdin/stdout 交换 JSONL 事件。这是一个更轻量的集成方式,不需要运行 App Server daemon。
关键特性:
- 流式响应。
runStreamed()返回 async generator,逐个产出结构化事件——item.completed、turn.completed 等。 - 结构化输出。 可以传 JSON Schema 或 Zod schema,Codex 返回符合 schema 的 JSON。
- 图片附件。 支持本地图片路径和文本混合输入。
- 线程恢复。
resumeThread(threadId)恢复持久化的线程。 - 工作目录控制。 默认要求 Git 仓库(防不可逆操作),可跳过。
- 环境变量控制。
env参数完全控制 CLI 收到的环境变量——适合 Electron 等沙箱化场景。 - Config 覆盖。 结构化
config和原始configOverrides两层覆盖,精细控制 Codex 行为。
Node.js 18+,@openai/codex-sdk。
Skills 系统:7 个内置技能
Codex 在 .codex/skills/ 目录里自带了 7 个 Skills,全部使用 SKILL.md 格式:
| Skill | 大小 | 用途 |
|---|---|---|
| babysit-pr | 17KB | 自动化 PR 审查和监控(含 30KB Python 脚本 gh_pr_watch.py) |
| code-review | 多个子 Skill | breaking-changes / change-size / context / testing 四个审查维度 |
| codex-pr-body | 4.4KB | 自动生成 PR 描述 |
| path-types | 2.4KB | 路径类型检查 |
| remote-tests | 3.4KB | 远程测试执行 |
| test-tui | 0.5KB | TUI 测试 |
| update-v8-version | 3.4KB | 自动更新 V8 引擎版本 |
每个 Skill 有 agents/openai.yaml 配置文件和 references/ 知识目录。babysit-pr 甚至有完整的 Python 测试套件——这不是文档,是可执行的 Agent 工作流。
Skills 使用和 Claude Code、NOOA、Diagram Design 相同的 SKILL.md 格式。这进一步验证了 SKILL.md 正在成为跨平台标准。
协议层有完整的 Skills 支持:SkillsConfigWrite、SkillsExtraRootsSet、SkillsChangedNotification——Skills 可以动态配置、扩展根目录、变更通知。
Plugin 市场:安装、分享、搜索
Codex 的协议层有完整的 Plugin 市场能力:
| RPC | 功能 |
|---|---|
PluginInstall |
安装插件 |
PluginUninstall |
卸载插件 |
PluginList |
列出已安装插件 |
PluginRead |
读取插件详情 |
PluginSearch |
搜索市场插件 |
PluginShareSave |
分享插件到市场 |
PluginShareList |
列出已分享插件 |
PluginShareDelete |
从市场删除 |
PluginShareUpdateTargets |
更新分享目标 |
PluginShareCheckout |
检出分享 |
PluginSkillRead |
读取插件内的 Skill |
PluginInstalled |
插件安装通知 |
MarketplaceAdd |
添加市场源 |
MarketplaceRemove |
移除市场源 |
MarketplaceUpgrade |
升级市场源 |
这不只是一个 API——这是一个完整的分发生态。开发者可以构建 Agent 技能、打包为 Plugin、发布到市场、被其他用户搜索和安装。这和 Diagram Design 的 /plugin marketplace add 模式完全一致——说明 OpenAI 在构建一个统一的 Plugin 生态。
Guardian:生产级安全护栏
Codex 的安全系统叫 Guardian,协议层有完整的审批机制:
| 审批类型 | 说明 |
|---|---|
PermissionsRequestApproval |
权限请求审批(7KB schema) |
ApplyPatchApproval |
文件补丁审批 |
ExecCommandApproval |
命令执行审批(15KB schema) |
FileChangeRequestApproval |
文件变更请求审批 |
CommandExecutionRequestApproval |
命令执行请求审批(15KB schema) |
McpServerElicitation |
MCP 服务器交互请求(13KB schema) |
ToolRequestUserInput |
工具请求用户输入 |
ItemGuardianApprovalReview |
条目 Guardian 审批审查 |
Guardian 不是简单的 yes/no 确认——它有权限配置文件(permission profiles),可以定义细粒度的文件系统访问策略(如 :root=read,/path/to/.env=deny)。还有 GuardianWarningNotification 和 SafetyCheckDowngrade 机制,当安全检查无法通过时可以降级而不是直接拒绝。
misalignment_policy schema 的存在说明 Guardian 还处理 Agent 行为偏离——当 Agent 的执行偏离预期时,Guardian 会介入。
远程控制:SSH 上的 Agent 守护进程
codex-rs/app-server-daemon/ 是一个完整的守护进程管理器:
codex app-server daemon start
codex app-server daemon restart
codex app-server daemon enable-remote-control
codex app-server daemon bootstrap --remote-control这意味着 Codex 可以在一台远程开发机上以 daemon 形式运行,桌面和移动 App 通过 SSH 连接它。bootstrap 命令甚至启动一个后台更新循环,每小时运行 install.sh 检查更新——发现新版本就自动更新 App Server,然后替换自身。
这是为「远程开发机」场景设计的:你的开发机在云上,Codex 作为守护进程常驻,你的桌面/移动客户端连接它。App Server 进程不依赖你的客户端在线——你关了客户端,App Server 继续跑。
外部 Agent 迁移:从其他框架导入配置
external_agent_migration 模块(31KB processor + 14KB protocol + 24KB session_importer)可以检测和导入其他 Agent 框架的配置。
协议层有完整的支持:
ExternalAgentConfigDetect— 检测外部 Agent 配置ExternalAgentConfigImport— 导入配置ExternalAgentConfigImportHistory— 导入历史记录ExternalAgentConfigImportProgress— 导入进度通知
这说明 OpenAI 在认真做迁移路径——你在 Claude Code 或其他框架的配置,可以导入到 Codex 平台。
这件事的结构性意义
第一,Codex 从产品变成了基础设施。 CLI 是产品形态——你用它写代码。App Server + SDK + 协议是基础设施形态——你在它上面构建应用。这个转变和 AWS 从「卖算力」到「卖基础设施」的转变结构上完全一致。OpenAI 不只是让你用 Codex,是让你在 Codex 上构建你自己的 Agent 产品。
第二,open agent harness 是定位宣言。 OpenAI 明确用了「open agent harness」这个词。Harness 这个概念我们在 DeepSeek Harness、Claude Code auto mode、NVIDIA NOOA 的分析里反复讨论过——Agent 执行框架。OpenAI 现在说 Codex 是一个「open」的 harness,意味着它开放了协议层(JSON-RPC)、SDK 层(Python + TypeScript)、扩展层(Skills + Plugins + MCP)、安全层(Guardian)、和管理层(远程控制 + 迁移)。这不是开源核心+商业版的套路——Apache 2.0 全量开源。
第三,SDK 是平台战略的关键棋子。 有了 Python 和 TypeScript SDK,开发者可以把 Codex 嵌入任何应用——CLI 工具、Web 应用、桌面 App、CI/CD 流水线。thread.run("Diagnose the test failure") 这一行代码背后是整个 App Server 协议在运转。降低集成门槛是平台化的第一步。
第四,和整个 Agent 生态的关系。 Codex 的 Skills 用 SKILL.md(和 Claude Code、NOOA、Diagram Design 一致)。MCP 配置和 .mcp.json 格式一致。Plugin 市场和 Diagram Design 的 marketplace 命令一致。这不是巧合——OpenAI、Anthropic、NVIDIA 在共同构建一套跨平台的 Agent 标准:MCP 统一工具接口,SKILL.md 统一知识格式,Plugin marketplace 统一分发机制。
第五,与 Apache Maka 的对比。 Apache Maka 走的是基金会治理路线(社区共识、无单一控制方)。Codex 走的是公司开源路线(OpenAI 控制,Apache 2.0 协议)。两者的技术架构都包含 Event Log/Trace、Guardian、Skills、MCP——但治理模型完全不同。企业选型时的权衡点不只是技术能力,还有治理风险:OpenAI 能不能一直保持 Apache 2.0 全量开源?
参考文档与链接
- GitHub: openai/codex - 111,342 stars,Rust + Python + TypeScript,Apache 2.0
- Python SDK 文档 -
pip install openai-codex,15 个示例 - TypeScript SDK 文档 -
npm install @openai/codex-sdk - App Server Protocol - JSON-RPC v1/v2,641KB schema
- App Server Daemon - 远程控制守护进程
- AGENTS.md - 22KB 仓库级 Agent 约定
- Codex 文档 - 官方开发者文档
你会在 Codex 平台上构建什么应用?评论区聊聊。觉得有用点个赞让更多人看到。
作者: itech001 来源: 公众号:AI人工智能时代(the-ai-era) 网站: https://www.theaiera.top/ 关注每日最新AI新闻和技术博客,主页有更多的文章的AI 技术参考:https://www.theaiera.top
本文首发于 AI人工智能时代,转载请注明出处。