菜鸟-创作你的创作

当AI学会了自己写代码:深入拆解OpenAI Codex CLI的Rust架构设计与工程哲学

当 AI 学会了自己写代码:深入拆解 OpenAI Codex CLI 的 Rust 架构设计与工程哲学

过去一年,AI 编程工具最大的变化并不是模型越来越强,而是它们开始从“代码补全工具”进化成“自主软件工程师”。

而在这场进化中,OpenAI 的 Codex CLI 是一个非常值得研究的案例。

因为它不仅仅是一个终端工具。

它实际上是一套完整的 Agent Runtime(智能体运行时)。

更有意思的是,OpenAI 几乎推倒重来,把最初的 TypeScript 版本重构成了一个大型 Rust 项目。如今核心实现已经迁移到 Rust Workspace,包含数十个甚至接近百个独立 Crate。(Zylos)

那么问题来了:

为什么 OpenAI 要重写?

Rust 版本到底解决了什么问题?

它背后的设计思想,又能给普通开发者带来什么启发?


从 AI 工具到 AI Agent

很多人以为 Codex CLI 就是:

用户输入需求
↓
GPT 生成代码
↓
结束

实际上并不是。

现代 Codex 的工作流程更像:

用户任务
↓
任务规划
↓
读取代码库
↓
搜索相关文件
↓
执行命令
↓
修改代码
↓
运行测试
↓
分析结果
↓
继续修复
↓
生成最终提交

换句话说:

它已经不是一个聊天机器人。

而是一个软件工程 Agent。(Zylos)


为什么从 TypeScript 转向 Rust?

OpenAI 最初选择 TypeScript 是为了开发速度。

快速验证产品。

快速上线。

快速迭代。

这是创业公司最典型的策略。

但随着项目规模扩大,问题开始出现。

1. Node.js 成为了额外依赖

旧版本要求:

node >= 22

用户必须先安装 Node 环境。

对于企业内网环境:

Rust 则可以直接生成单一二进制文件:

codex

开箱即用。(Codex Knowledge Base)


2. Sandbox 安全机制

Agent 最大风险是什么?

不是生成错误代码。

而是执行危险命令。

例如:

rm -rf /

或者:

curl xxx | bash

因此现代 AI Agent 必须具备:

Rust 更容易与系统级安全机制集成。

Codex 在 Linux 和 macOS 上都设计了专门的沙箱层。(Mintlify)


3. 长时间运行稳定性

Agent 与普通 CLI 最大区别:

它不是运行几秒钟。

而是可能持续工作数小时。

例如:

分析仓库
→ 修改代码
→ 跑测试
→ 修 Bug
→ 再跑测试

这种场景下:

都会逐渐放大。

Rust 的零成本抽象和无垃圾回收机制天然更适合长期运行。(Codex Knowledge Base)


Codex 的核心架构

如果把整个系统拆开看。

你会发现它其实分成三层。

UI层
↓
Agent层
↓
Execution层


第一层:UI(用户界面)

Codex 提供:

这一层只负责:

展示
输入
交互

它不负责决策。


第二层:Agent Core

这是整个系统的大脑。

通常对应:

codex-core

主要职责:

会话管理

Thread
Session
History

记录上下文。

保存任务状态。

支持恢复历史任务。(Zylos)


推理循环

Agent 会持续执行:

思考
↓
行动
↓
观察
↓
思考

这其实就是经典的:

ReAct Pattern

Reason
Act
Observe


工具调度

例如:

ReadFile
WriteFile
Search
Bash
Git

模型不会直接操作系统。

而是通过 Tool Layer。


第三层:Execution Layer

这一层负责真正执行。

例如:

git diff
npm test
cargo build

执行结果再返回给 Agent。

形成闭环。


最值得学习的设计:Op / Event 模型

Codex 内部采用了一种非常优雅的架构。

可以理解成:

Operation

用户发起操作:

打开文件
运行测试
执行命令


Event

系统反馈事件:

测试通过
测试失败
命令结束
文件已修改

因此整个系统变成:

Operation
↓
Agent
↓
Event

这种模式最大的好处是:

完全解耦。

未来:

都能接入同一个 Agent Core。(Hotdry Blog)


Monorepo 工程哲学

Codex Rust 版采用大型 Workspace。

核心原则是:

不让 Core 无限膨胀

很多项目最后都会变成:

core.rs
50000行

没人敢改。

Codex 反其道而行。

原则是:

新能力优先放进新 Crate。

而不是继续往 Core 里塞。(Zread)


这带来几个优势:

模块独立

codex-core
codex-tui
codex-sandbox
codex-protocol
codex-tools

彼此职责清晰。


编译更快

Cargo 可以增量构建。

减少开发等待时间。


AI 更容易维护

这点特别有意思。

未来很多代码:

不是人写。

而是 AI 写。

对于 AI 来说:

500行模块

远比:

50000行巨型文件

更容易理解。


Wire Protocol:为 AI 时代准备的接口

Codex 团队提出了一个很有前瞻性的理念。

未来不是:

一个模型
一个客户端

而是:

多个模型
多个工具
多个Agent

因此需要统一通信协议。

Claude
GPT
Gemini
Qwen
DeepSeek

都能接入同一运行时。

这也是为什么 MCP 生态越来越重要。(Zylos)


最深层的工程哲学

如果让我总结 Codex Rust 重构最核心的一句话:

不是为了更快。

而是为了构建一个可长期演化的 AI Agent 操作系统。

传统软件:

用户
↓
软件
↓
结果

未来的软件:

用户
↓
Agent
↓
工具
↓
代码库
↓
测试系统
↓
部署系统

Agent 成为了新的操作层。

而 Codex CLI 的 Rust 架构,本质上就是在探索:

当 AI 不再只是回答问题,而开始自主阅读代码、修改代码、运行代码、验证代码时,一个真正可靠的软件工程 Agent 应该如何被设计。(Zylos)

这或许也是整个 AI 编程领域未来几年的主线:从“代码生成器”走向“软件工程执行者”。

退出移动版