claude Code 和 codex 作为编程代理,前者使用typescript开发,后者使用rust,他们的决策依据是什么
这是一个非常有意思的问题,因为它实际上涉及到 AI Agent 工具的工程哲学。
简单来说:
- Claude Code 选择 TypeScript,更偏向「快速迭代、生态优先、跨平台分发」。
- Codex 选择 Rust,更偏向「性能、安全、长期基础设施」。
而且有趣的是,OpenAI 和 Anthropic 实际上走过了相反的路径:
| 产品 | 初始语言 | 当前语言 |
|---|---|---|
| Claude Code | TypeScript | 仍然是 TypeScript |
| Codex CLI | TypeScript | 后来重写为 Rust |
这并不是猜测,而是 OpenAI 官方明确公开过的。 (OpenAI)
Claude Code 为什么是 TypeScript?
Anthropic 没有专门写过《为什么选择 TypeScript》的博客,但从官方文档和泄露出来的大量源码可以推断出其设计目标。 (Claude API Docs)
Claude Code 的安装方式:
npm install -g @anthropic-ai/claude-code
要求:
Node.js 18+
从工程角度看,这意味着 Anthropic 把 Claude Code 当成:
一个大型 Node.js 应用,而不是系统软件。
它有几个明显优势:
1. 极快的开发速度
Claude Code 团队本身大量使用:
- React
- Node.js
- TypeScript
- MCP生态
TypeScript 对 AI Agent 特别友好:
Tool
Action
Permission
Message
Session
Context
这些都是结构化对象。
TypeScript 的类型系统已经足够表达:
interface ToolCall {
name: string;
args: object;
}
开发效率远高于 Rust。
2. MCP 生态天然兼容
Claude Code 是 MCP(Model Context Protocol)最积极的推动者之一。
MCP Server 大量是:
- Node.js
- Python
实现的。
TypeScript 做:
spawn()
stdio
json-rpc
非常方便。
3. Agent 本身不是性能瓶颈
Claude Code 的耗时主要在:
Claude API
网络请求
工具调用
文件系统
而不是:
CPU计算
内存拷贝
线程调度
因此:
TypeScript 慢一点
≈
无关紧要
对于 Agent 产品来说,
95% 时间都在等待模型返回结果。
4. 快速试验能力
Claude Code 几乎每周都有新能力上线:
- Hooks
- Subagent
- MCP
- Memory
- IDE 集成
这种高频迭代更符合:
Move fast
而不是:
Optimize everything
Codex CLI 最初其实也是 TypeScript
很多人不知道这一点。
2025 年 OpenAI 刚开源 Codex CLI 时:
TypeScript
Node.js
是主要实现语言。 (OpenAI Help Center)
后来 OpenAI 进行了重写。
官方工程师 Michael Bolin 在《Unrolling the Codex agent loop》中提到:
如果想了解更细节的设计决策,可以查看 GitHub Issues 和 PR。 (OpenAI)
而社区整理出的 OpenAI 官方讨论中,给出了重写 Rust 的主要原因。 (Reddit)
OpenAI 为什么改成 Rust?
这是目前能找到最接近官方解释的总结。
1. 去掉 Node 运行时依赖
官方讨论中最常提到的一点:
Node v22+
是额外依赖。
用户安装链路变成:
安装 Node
↓
安装 Codex
企业环境经常不喜欢这样。
Rust 可以做到:
一个二进制文件
直接运行。
(Reddit)
2. Sandbox 本来就是 Rust
Codex 的安全模型很重。
需要:
- 文件隔离
- 命令执行控制
- Linux Sandbox
而 OpenAI 的 Linux Sandbox 组件本来就已经是 Rust。 (Reddit)
于是出现:
CLI = TypeScript
Sandbox = Rust
维护成本较高。
统一到 Rust 更合理。
3. 更低内存占用
Agent 往往会:
扫描仓库
分析文件
维护上下文
运行工具
大型项目可能:
10万+
100万+ LOC
Rust:
无 GC
更少内存
更快启动
对于 CLI 工具有优势。
4. 更强的安全性
Rust 的价值不仅是性能。
更重要的是:
Memory Safety
Agent CLI 需要执行:
rm
git
npm
docker
这些都是高权限操作。
Rust 更符合 OpenAI 对长期基础设施的定位。
5. 未来的可扩展协议
OpenAI 提到正在构建:
Wire Protocol
允许:
- Rust
- Python
- TypeScript
- MCP
等多种扩展。 (Reddit)
所以 Codex CLI 的目标已经不是:
一个 Node 应用
而是:
一个 Agent Runtime
这就更接近:
- Git
- Docker
- Kubernetes
这类基础设施软件。
两家公司的哲学差异
如果把它们放在一起看,就会发现非常明显的风格差异:
| 维度 | Claude Code | Codex |
|---|---|---|
| 核心语言 | TypeScript | Rust |
| 优先级 | 产品迭代 | 基础设施 |
| 安装方式 | npm | 原生二进制 |
| 生态 | Node/MCP | 多语言 Runtime |
| 工程哲学 | Move Fast | Systems Engineering |
| 典型用户 | AI-first 开发者 | 工程团队/企业 |
Claude Code 更像:
Cursor 的终端版
而 Codex 越来越像:
Docker + AI Agent
更深层的原因
我认为真正的决策依据其实不是 TypeScript 和 Rust 本身。
而是两家公司对 Agent 的定位不同:
Anthropic
认为 Agent 是:
一个不断进化的产品
所以:
优化开发速度
>
优化运行速度
选择 TypeScript 很自然。
OpenAI
越来越把 Codex 当成:
Agent Operating System
或者:
AI Runtime
这种东西最终会变成:
长期维护
跨平台
高安全
低资源占用
的基础设施。
于是 Rust 的优势开始压倒 TypeScript。
从结果来看,OpenAI 的路线甚至可以总结为:
第一阶段用 TypeScript 验证产品;第二阶段用 Rust 固化基础设施。
而 Anthropic 目前仍处于高速创新阶段,因此继续坚持 TypeScript。未来如果 Claude Code 的规模继续扩大,也不能排除像 Codex 一样逐步把底层核心模块迁移到 Rust 的可能性。 (Codex Knowledge Base)
浙公网安备 33010602011771号