OpenAI Codex 使用
1 章 · 约 28 千字
👥 适用人群 :开发者、架构师、团队负责人、编程爱好者 🛤️ 学习路径 :安装配置 → 基础使用 → 高级功能 → 团队协作 → 安全合规 → 实战案例
第一章:Codex 简介
1.1 什么是 Codex?
Codex 是 OpenAI 推出的 AI 编程助手 ,将 GPT 级别的推理能力与本地代码执行能力结合,让开发者用自然语言即可读取、修改、执行代码。
核心特点
特性
说明
🏠 本地运行
直接在电脑上运行,代码不离开本机
🔓 开源免费
Apache 2.0 许可,Rust 构建
🌍 跨平台
macOS / Linux / Windows
🔌 MCP 支持
连接 Model Context Protocol 扩展能力
⚡ 多种模式
suggest / auto-edit / full-auto
🧠 多智能体
并行运行多个 Agent 协同工作
Codex 的三种形态
① Codex CLI(终端版)
codex "帮我重构这个函数"
项目
说明
特点
轻量、快速、高度可配置
适用
终端用户、CI/CD 集成
技术
Rust 编写,性能极佳
② Codex IDE 插件
IDE
安装方式
VS Code
扩展商店搜索安装
Cursor
内置支持
Windsurf
内置支持
③ Codex App(桌面版)
项目
说明
特点
图形界面、多智能体并行、自动化工作流
适用
复杂项目管理、团队协作
平台
macOS / Windows
Codex vs Claude Code 对比
维度
🟦 OpenAI Codex
🟪 Anthropic Claude Code
底层技术
Rust(速度极快)
Node.js(生态兼容好)
开源
✅ Apache 2.0
❌ 闭源
核心哲学
精细控制、自定义
深度推理、自主思考
自定义扩展
⭐⭐⭐ 自定义 Slash 命令
⭐ CLAUDE.md
记忆文件
AGENTS.md
CLAUDE.md
适合人群
极客 / 架构师
业务开发者
💡 提示 :两者并不冲突,很多开发者同时使用 Codex CLI + Claude Code,各取所长。
第二章:安装与配置
系统要求
要求
最低
推荐
操作系统
macOS 12+ / Ubuntu 20.04+ / Win 11
最新 LTS 版本
Node.js
v22+
v22 LTS
Git
2.23+
最新版
内存
4 GB
8 GB+
Codex CLI 安装
npm 全局安装(推荐) :
npm install -g @openai/codex
Homebrew(macOS / Linux) :
brew install --cask codex
二进制文件 : 前往 GitHub Releases 下载:
平台
文件名
macOS (Apple Silicon)
codex-aarch64-apple-darwin.tar.gz
macOS (Intel)
codex-x86_64-apple-darwin.tar.gz
Linux (x86_64)
codex-x86_64-unknown-linux-musl.tar.gz
Linux (arm64)
codex-aarch64-unknown-linux-musl.tar.gz
验证安装 :
codex --version
Codex App 桌面端安装
macOS 安装
官网下载(推荐) :
访问 https://chatgpt.com/codex
点击 "Download for Mac" 下载 .dmg 文件
双击 .dmg → 将 Codex 拖入 Applications 文件夹
Homebrew Cask :
brew install --cask openai-codex
Windows 安装
官网下载(推荐) :
访问 https://chatgpt.com/codex
点击 "Download for Windows" 下载 .exe 安装包
双击运行安装程序,按向导完成安装
winget 命令安装 :
winget install OpenAI.Codex
Microsoft Store :
打开 Microsoft Store
搜索 "OpenAI Codex"
点击安装
认证配置
方式一:ChatGPT 账号登录(推荐)
运行 codex 后选择 Sign in with ChatGPT :
计划
支持
Codex 免费额度
ChatGPT Free
✅
有限
ChatGPT Plus
✅
$5 / 30天
ChatGPT Pro
✅
$50 / 30天
ChatGPT Team
✅
按成员分配
方式二:API Key 配置
── Linux / macOS ──
永久
echo 'export OPENAI_API_KEY="sk-your-api-key-here"' >> ~/.bashrc
source ~/.bashrc
── Windows PowerShell ──
永久
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-your-api-key-here", "User")
配置文件路径
Windows
C:\Users\[用户名]\.codex\
├── config.toml ← 主配置文件
├── auth.json ← 认证信息
└── AGENTS.md ← 全局指导文件
基础配置示例
~/.codex/config.toml
模型配置
model = "o4-mini"
model_provider = "openai"
model_reasoning_effort = "high"
操作模式
approval_mode = "auto-edit"
隐私保护
disable_response_storage = true
MCP 服务器
[mcp_servers]
github = { command = "npx", args = ["-y", "@modelcontextprotocol/server-github"] }
第三章:OpenAI 订阅指南
订阅计划全景
计划
月费
Codex 额度
适合人群
Free
$0
基础体验
试用者
Plus
$20/月
$5 / 30天
个人开发者
Pro
$200/月
$50 / 30天
重度用户
Team
$25/人/月
按成员分配
小团队
Enterprise
定制
自定义
企业
各计划详细权益
🆓 Free 免费版
✅ 可使用 Codex CLI 和 App
✅ 访问 GPT-4o mini
⚠️ 严重限速,高峰期需排队
⭐ Plus 订阅(最推荐入门)
✅ 无限 GPT-4o 访问
✅ o3 / o4-mini 推理模型
✅ Codex 专用额度 $5 / 月
✅ DALL·E 图片生成
✅ GPTs 商店访问
✅ 优先响应,无需排队
🚀 Pro 订阅(重度用户首选)
✅ Plus 的全部权益
✅ 无限 o3-pro 推理模型
✅ Codex 专用额度 $50 / 月
✅ 更高的速率限制
✅ 早期体验新功能
API 模式费用估算
模型
输入 / 1M tokens
输出 / 1M tokens
适合任务
o4-mini
$1.10
$4.40
日常开发(推荐)
gpt-4o
$2.50
$10.00
中等复杂度
o3
$10.00
$40.00
复杂推理
省钱技巧
技巧
说明
节省幅度
🎯 用 o4-mini 做简单任务
便宜 90%
⭐⭐⭐
📝 精简提示词
减少上下文 Token
⭐⭐
🔄 /compact 定期压缩
避免上下文过长
⭐⭐
💳 Plus 订阅
获 $5 免费额度
⭐⭐⭐
📊 设 API 花费上限
platform.openai.com 设置
防止超支
中国大陆用户支付方案
方案一:虚拟信用卡(推荐)
服务
注册门槛
手续费
推荐度
WildCard
低,支付宝认证
~2%
⭐⭐⭐
Dupay
低
~3%
⭐⭐⭐
Depay
中
~2.5%
⭐⭐
方案二:API 预付费(无需订阅)
访问 https://platform.openai.com
注册账号并充值 API Credits
使用 API Key 模式运行 Codex(按量计费)
第四章:基础使用
启动方式
方式
命令
说明
交互模式
codex
进入对话界面
直接提问
codex "解释项目结构"
单次执行
指定模型
codex -m o4-mini "简单任务"
临时切换模型
三种操作模式
模式
说明
自主程度
适用场景
suggest
只建议,不执行
🔒 最安全
阅读 / 分析代码
auto-edit
自动编辑,需确认
⚖️ 平衡
修改代码(默认)
full-auto
自动执行一切
⚡ 最快
批量重构(谨慎)
指定模式 :
codex -a suggest "重构这个函数"
codex -a auto-edit "添加错误处理"
codex -a full-auto "运行测试并修复错误"
基础交互示例
代码分析 :
codex "分析这个函数的时间复杂度"
codex "找出代码中的潜在 bug"
codex "这个模块的依赖关系是什么?"
代码生成 :
codex "为这个类写一个单元测试"
codex "生成 TypeScript 类型定义"
codex "根据注释生成实现代码"
代码修改 :
codex "将这个函数改为异步实现"
codex "添加输入参数验证"
codex "重构为更小的函数"
命令行参数速查
codex [options] [prompt]
-m, --model <model> 指定模型
-a, --approval-mode <mode> 设置操作模式
-q, --quiet 安静模式
--profile <name> 使用配置文件
--help 帮助
--version 版本号
第五章:斜杠命令大全
会话与流程控制
命令
功能
典型场景
/new
新建会话
上一个任务结束
/undo
撤销上一步
Codex 改错代码
/exit
退出程序
下班 / 切换项目
/logout
登出账号
切换 OpenAI 账号
/resume
恢复对话
继续之前的工作
/fork
分叉线程
工作出现分支
/compact
压缩历史
对话过长变慢
配置与权限
命令
功能
典型场景
/approvals
设置权限模式
控制自动化程度
/model
切换模型
简单任务用 mini 省钱
/status
查看状态
Token 使用量
/mcp
管理 MCP 工具
调试外部连接
权限模式详解
/approvals 可选模式:
1️⃣ Auto(默认推荐)
• 读取文件 → 自动执行
• 修改文件 / 运行命令 → 按 Enter 确认
2️⃣ Read Only(只读)
• 只能读取,不能修改
• 适合审查敏感代码
3️⃣ Full Access(全自动)
• 拥有完全终端控制权
• ⚠️ 慎用!适合大规模重构
上下文与记忆
命令
功能
典型场景
/init
初始化项目,生成 AGENTS.md
项目必做第一步
/mention
提及文件,加入上下文
Codex 找不到文件时
/diff
查看变更(Git Diff)
提交前检查
/review
代码审查
让 AI 充当 Reviewer
动作与高级功能
命令
功能
典型场景
/plan
Plan 模式,先规划后执行
复杂任务
/agent
多代理切换
多智能体协作
/skills
浏览技能
探索功能
/theme
语法高亮主题
个性化
/apps
ChatGPT apps
扩展能力
自定义斜杠命令 🔥 —— 杀手级功能
Codex 允许你编写自己的斜杠命令,只需创建 Markdown 文件!
创建方法 :
mkdir -p ~/.codex/prompts
文件名 = 命令名
示例:安全审计命令
创建 ~/.codex/prompts/security-audit.md :
Security Audit
请扫描当前代码库,查找以下漏洞:
1. SQL 注入
2. 硬编码的密钥
3. XSS 漏洞
4. 不安全的依赖
生成 Markdown 报告,包含:漏洞位置、严重程度、修复建议
使用 :
codex
> /security-audit # 一键执行整套安全审计!
更多示例 :
~/.codex/prompts/daily-report.md :
Daily Report
分析今天的代码提交,生成日报:
1. 列出所有提交 2. 按模块分类 3. 统计变更量 4. 标注重要改动
~/.codex/prompts/fix-bug.md :
Fix Bug Workflow
1. 运行测试找出失败用例 2. 分析原因 3. 修复 4. 重测 5. 提交
第六章:AGENTS.md 配置指南
AGENTS.md 的作用
自动加载进上下文,定义 Codex 在仓库中的工作方式:
作用
示例
仓库结构
关键目录和文件说明
运行方式
构建 / 测试 / lint 命令
工程规范
代码风格、命名约定
PR 期望
标题格式、审查要求
约束
禁止模式、敏感文件
验证
完成标准、自测步骤
基础模板
AGENTS.md
项目概述
Next.js 14 项目,App Router + Tailwind CSS。
目录结构
- /src/app → 页面路由
- /src/components → 可复用组件
- /src/lib → 工具函数
- /src/types → TypeScript 类型
开发命令
- npm run dev → 启动开发服务器
- npm run build → 构建生产版本
- npm run test → 运行测试
- npm run lint → 代码检查
代码规范
- TypeScript,禁止 any
- 函数式组件 + Hooks
- Tailwind,不写内联 CSS
- 文件命名 kebab-case
测试要求
- 新功能必须写测试
- 覆盖率 > 80%
- Vitest + Testing Library
PR 规范
- 标题:type(scope): description
- 必须通过 CI
- 至少一个 Reviewer
禁止事项
- ❌ 直接修改 node_modules
- ❌ 提交 .env 文件
- ❌ 跳过测试提交
多层级配置
~/.codex/AGENTS.md ← 全局(个人偏好)
项目根目录/AGENTS.md ← 项目(团队规范)
项目子目录/AGENTS.md ← 模块(局部规则)
优先级:子目录 > 项目根 > 全局
保持简洁
📏 一份简短准确的 AGENTS.md 比充斥模糊规则的长文件更有用。
建议 :
先从基础规则入手
发现重复错误后才添加新规则
让 Codex 自己更新
当 Codex 犯了两次同样的错误
> 请回顾这次错误,并更新 AGENTS.md 以防止再次发生
第七章:MCP 服务器集成
什么是 MCP?
MCP(Model Context Protocol) 是开放协议,让 AI 模型连接外部工具和服务。
传统
MCP
手动复制粘贴
自动获取实时数据
记住 API 用法
直接调用工具
信息容易过时
始终最新
配置方法
命令行
codex mcp add openaiDeveloperDocs --url https://developers.openai.com/mcp
codex mcp list # 查看
codex mcp remove <name> # 移除
配置文件(~/.codex/config.toml)
[mcp_servers]
github = { command = "npx", args = ["-y", "@modelcontextprotocol/server-github"] }
filesystem = { command = "npx", args = ["-y", "@modelcontextprotocol/server-filesystem"] }
postgres = { command = "npx", args = ["-y", "@modelcontextprotocol/server-postgres"] }
slack = { command = "npx", args = ["-y", "@modelcontextprotocol/server-slack"] }
常用 MCP 服务器
服务器
功能
典型用途
🔗 GitHub
Issue / PR / 分支管理
代码审查自动化
🗄️ PostgreSQL
SQL 查询 / 结构查看
数据库管理
📁 Filesystem
文件读写
跨项目文件操作
💬 Slack
发消息 / 读频道
团队通知
第八章:Skills 技能系统
设计原则
一个技能 = 一项工作 + 明确输入/输出 + 清晰触发词
检查清单 :
2-3 个具体用例
输入格式
输出格式
使用场景说明
触发短语
创建技能
文件结构 :
~/.agents/skills/
└── my-skill/
└── SKILL.md ← 核心文件
SKILL.md 模板 :
---
name: 日志分类器
description: 自动分析日志内容并分类
triggers:
- "帮我分析日志"
- "log analysis"
inputs:
- 日志文件路径或文本
outputs:
- 分类报告 + 异常统计
---
日志分类器
功能说明
自动识别 ERROR / WARNING / INFO / DEBUG
输出格式
统计摘要 + 异常详情 + 修复建议
技能管理
> /skills # 浏览技能
> $skill-installer # 安装技能
> $skill-creator # 创建技能
位置
~/.agents/skills/ # 个人
项目根目录/.agents/skills/ # 团队共享
第九章:Codex App 桌面版
核心功能
① 多智能体并行
┌─────────────────────────────────────┐
│ Codex App 指挥中心 │
├─────────────────────────────────────┤
│ 🤖 Agent 1 → 前端开发 │
│ 🤖 Agent 2 → 后端 API │
│ 🤖 Agent 3 → 测试验证 │
│ 🤖 Agent 4 → 文档编写 │
└─────────────────────────────────────┘
每个 Agent 在独立工作树中运行,互不干扰
② Skills 技能沉淀
将团队规范打包复用:前端规范 / API 规范 / 数据库规范 / 安全清单 / 部署流程
③ Automations 自动化
任务
频率
代码提交汇总
每天下班前
Bug 扫描
每次 PR
发布说明
发布时
CI 故障检查
每天早上
Codex App vs CLI
功能
CLI
App
界面
终端
图形
多智能体
❌
✅
自动化
❌
✅
技能管理
基础
完整
多项目
手动
可视化
适合
个人
团队
桌面操控能力(2026年4月新功能)
功能
说明
🖱️ 光标控制
独立光标,实时查看屏幕
📱 应用操控
点击元素、输入文字
🧠 智能记忆
保存偏好和工作流
⏰ 长期调度
跨天/跨周推进项目
使用场景 :
> 请打开我的电商后台
> 点击"商品管理"页面
> 截图检查当前界面
> 测试添加商品功能
第十章:API 高级用法
流式输出(Streaming)
流式输出让响应实时逐步返回,无需等待完整生成。
Python 示例 :
from openai import OpenAI
client = OpenAI()
stream = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "你是一个代码审查助手。"},
{"role": "user", "content": "审查这段代码的安全性问题:..."}
],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Node.js 示例 :
const stream = await openai.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "解释这段代码的作用" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}
函数调用(Function Calling)
函数调用让模型结构化地请求执行操作,是 MCP 的底层机制。
定义函数 :
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["city"]
}
}
}
]
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "北京今天天气怎么样?"}],
tools=tools,
tool_choice="auto"
)
message = response.choices[0].message
if message.tool_calls:
for tool_call in message.tool_calls:
function_name = tool_call.function.name
function_args = json.loads(tool_call.function.arguments)
if function_name == "get_weather":
result = get_weather(**function_args)
messages.append(message)
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": str(result)
})
批量任务处理
批量代码审查 :
def batch_review(directory, pattern="*.py"):
"""批量审查目录下的所有 Python 文件"""
import glob
files = glob.glob(os.path.join(directory, "**", pattern), recursive=True)
results = []
for file_path in files:
with open(file_path, 'r', encoding='utf-8') as f:
code = f.read()
response = client.chat.completions.create(
model="o4-mini",
messages=[
{"role": "system", "content": "你是代码审查专家。简洁指出问题。"},
{"role": "user", "content": f"审查以下代码,列出问题:\n```\n{code}\n```"}
]
)
results.append({"file": file_path, "review": response.choices[0].message.content})
return results
并行批量(更高效) :
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI()
async def review_file(file_path):
with open(file_path, 'r') as f:
code = f.read()
response = await client.chat.completions.create(
model="o4-mini",
messages=[{"role": "user", "content": f"审查代码:\n{code[:4000]}"}]
)
return {"file": file_path, "review": response.choices[0].message.content}
async def batch_parallel(files, concurrency=5):
semaphore = asyncio.Semaphore(concurrency)
async def limited_review(fp):
async with semaphore:
return await review_file(fp)
return await asyncio.gather(*[limited_review(f) for f in files])
results = asyncio.run(batch_parallel(file_list))
结构化输出
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "分析这个函数的复杂度"}],
response_format={
"type": "json_schema",
"json_schema": {
"name": "complexity_analysis",
"schema": {
"type": "object",
"properties": {
"time_complexity": {"type": "string"},
"space_complexity": {"type": "string"},
"issues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {"type": "string"},
"severity": {"type": "string", "enum": ["low", "medium", "high"]},
"description": {"type": "string"}
}
}
}
}
}
}
}
)
analysis = json.loads(response.choices[0].message.content)
Embedding 与语义搜索
def code_search(query, code_files, top_k=5):
"""语义代码搜索"""
query_embedding = client.embeddings.create(
model="text-embedding-3-small",
input=query
).data[0].embedding
code_embeddings = []
for fp in code_files:
emb = client.embeddings.create(
model="text-embedding-3-small",
input=open(fp).read()[:8000]
).data[0].embedding
code_embeddings.append((fp, emb))
import numpy as np
scores = []
for fp, emb in code_embeddings:
similarity = np.dot(query_embedding, emb) / (
np.linalg.norm(query_embedding) * np.linalg.norm(emb)
)
scores.append((fp, similarity))
scores.sort(key=lambda x: x[1], reverse=True)
return scores[:top_k]
第十一章:竞品深度横评
六大竞品一览
维度
🟦 Codex
🟪 Claude Code
🟢 Cursor
🟡 Copilot
🔵 Windsurf
🟠 Aider
⬛ Devin
类型
CLI + App
CLI
IDE
IDE 插件
IDE
CLI
AI 员工
开源
✅
❌
❌
❌
❌
✅
❌
底层技术
Rust
Node.js
Electron
云端
Electron
Python
云端
价格
免费起
$20/月起
$20/月
$10/月
$15/月
免费+API
$500/月
多智能体
✅ App
❌
❌
❌
✅
❌
✅
MCP
✅
❌
❌
❌
❌
❌
❌
自定义命令
✅
❌
✅
❌
✅
✅
❌
代码执行
✅ 本地
✅ 本地
✅ 本地
❌
✅ 本地
✅ 本地
✅ 沙箱
适合人群
极客
业务开发
日常开发
初学者
全栈
极客
企业
逐一分析
🟦 OpenAI Codex
优势 :
✅ 开源,完全自定义
✅ Rust 构建,速度极快
✅ MCP 生态扩展能力强
✅ 自定义斜杠命令 = 工作流自动化
✅ 多智能体并行(App)
劣势 :
⚠️ 推理深度不如 Claude Code
⚠️ 文档尚在完善
⚠️ 社区生态较新
适合 :追求控制力和效率的架构师/极客
🟪 Anthropic Claude Code
优势 :
✅ 推理深度最强(Claude 3.5/4 系列)
✅ 自主思考能力强
✅ 超长上下文(200K tokens)
✅ 代码理解力出色
劣势 :
⚠️ 闭源,无法自定义底层
⚠️ 不支持 MCP
⚠️ 价格较高
适合 :需要深度推理的复杂项目
🟢 Cursor
优势 :
✅ IDE 体验最好
✅ 多模型切换(GPT/Claude/Gemini)
✅ 代码补全体验流畅
✅ 上下文感知精准
劣势 :
⚠️ 闭源,订阅制
⚠️ 无 CLI 模式
⚠️ 不支持多智能体
适合 :日常开发,IDE 党首选
🟡 GitHub Copilot
优势 :
✅ 生态最广(VS Code 内置)
✅ 价格最低($10/月)
✅ 企业方案成熟
劣势 :
⚠️ 功能最基础
⚠️ 无法执行代码
⚠️ 不支持自定义工作流
适合 :初学者、轻量使用
🔵 Windsurf(Codeium)
优势 :
✅ Cascade 流式推理
✅ 多智能体协作
✅ 免费版功能丰富
适合 :追求性价比的全栈开发者
🟠 Aider
优势 :
✅ 开源,Python 编写
✅ 支持多模型
✅ Git 集成最好
✅ 完全免费
适合 :终端极客、Git 工作流重度用户
⬛ Devin(Cognition)
优势 :
✅ 完全自主,接近人类员工
✅ 可独立完成端到端任务
劣势 :
⚠️ 极贵($500/月)
⚠️ 完全云端,代码离开本机
⚠️ 不透明,难以审计
适合 :预算充足的企业团队
选型决策树
你的首要需求是什么?
│
├─ 🎯 精细控制 & 自定义 → Codex CLI
├─ 🧠 深度推理 & 复杂逻辑 → Claude Code
├─ 🖥️ IDE 体验 & 日常开发 → Cursor
├─ 💰 最低成本入门 → Copilot
├─ ⚡ 性价比 & 多模型 → Windsurf / Aider
└─ 🏢 全自动 AI 员工 → Devin
组合使用策略
策略
工具组合
场景
🏆 黄金组合
Codex CLI + Cursor
Codex 做架构/重构,Cursor 做日常编辑
🧠 深度思考
Claude Code + Codex
Claude 做推理,Codex 做执行
💰 穷人方案
Aider + Copilot Free
Aider 做复杂任务,Copilot 做补全
🏢 企业方案
Codex App + Copilot Business
App 做项目管理,Copilot 做团队补全
第十二章:安全与隐私
数据处理流程
你的代码
↓
本地 Codex(CLI/App)
↓ 加密传输
OpenAI API 服务器
↓ 生成响应
本地 Codex
↓
返回结果(仅本地)
⚠️ 代码会在传输过程中到达 OpenAI 服务器
⚠️ 但不会被用于训练(付费用户)
✅ 传输过程使用 TLS 加密
关键数据策略
计划
数据用于训练
数据保留
审计日志
Free
可能
30天
❌
Plus/Pro
❌
30天
❌
Team
❌
可配置
✅
Enterprise
❌
可配置
✅
API 模式
❌
不保留
✅
💡 最安全的模式 :使用 API Key + disable_response_storage = true ,代码不会被存储。
沙箱与隔离机制
隔离层级 :
Level 1: 网络隔离 → Codex 不主动发送数据到外部
Level 2: 文件系统隔离 → suggest 模式只读,auto-edit 需确认
Level 3: 命令执行隔离 → 危险命令需确认,full-auto 有执行白名单
Level 4: Agent 隔离(App)→ 每个 Agent 独立工作树,互不干扰
安全配置示例
~/.codex/config.toml — 安全配置
disable_response_storage = true
approval_mode = "auto-edit"
限制可执行的命令
[allowed_commands]
run_test = ["npm", "test"]
run_lint = ["npm", "run", "lint"]
run_build = ["npm", "run", "build"]
禁止的文件路径
[restricted_paths]
secrets = ".env*"
keys = "*key*"
certs = "*cert*"
敏感文件保护
AGENTS.md 中添加禁止规则 :
禁止事项
- ❌ 不要读取 .env 文件
- ❌ 不要修改包含密钥的文件
- ❌ 不要执行包含 secrets 的命令
- ❌ 不要提交任何包含 API Key 的代码
企业合规审计
audit.py — 企业安全审计脚本
def generate_security_report():
"""生成安全审计报告"""
import os
from pathlib import Path
sensitive_patterns = ["api_key", "secret", "password", "token", ".env"]
violations = []
for root, dirs, files in os.walk("."):
跳过 node_modules 和 .git
dirs[:] = [d for d in dirs if d not in ["node_modules", ".git", "dist"]]
for file in files:
if file.endswith((".py", ".js", ".ts", ".json")):
filepath = Path(root) / file
try:
content = filepath.read_text(encoding="utf-8", errors="ignore")
for pattern in sensitive_patterns:
if pattern.lower() in content.lower():
violations.append({
"file": str(filepath),
"pattern": pattern,
"raw": content[max(0, content.lower().find(pattern.lower())-20):content.lower().find(pattern.lower())+50]
})
except Exception:
pass
return violations
第十三章:团队协作方案
多角色权限配置
~/.codex/config.toml — 按角色配置
Junior Developer(只读 + 小修改)
[junior]
approval_mode = "suggest"
allowed_dirs = ["src/components", "src/pages"]
Senior Developer(自动编辑)
[senior]
approval_mode = "auto-edit"
allowed_dirs = ["src/**"]
Tech Lead(全权限)
[lead]
approval_mode = "full-auto"
allowed_dirs = ["**"]
团队共享 Skills
团队技能目录:
团队 Git 仓库/.codex/skills/
├── pr-review.md # PR 审查清单
├── test-generator.md # 测试生成规范
├── api-doc.md # API 文档规范
├── security-check.md # 安全检查
└── deploy.md # 部署流程
团队技能示例 pr-review.md :
PR Review — 团队标准审查
审查清单
代码质量
- [ ] 命名规范
- [ ] 函数长度 < 50 行
- [ ] 无重复代码
- [ ] 类型定义完整
测试覆盖
- [ ] 新功能有测试
- [ ] 边界条件有测试
- [ ] 测试通过率 100%
安全性
- [ ] 无硬编码密钥
- [ ] 输入验证完整
- [ ] SQL 参数化
文档
- [ ] 公共 API 有文档
- [ ] 复杂逻辑有注释
CI/CD 集成
.github/workflows/codex-review.yml
name: AI Code Review
on:
pull_request:
branches: [main, develop]
jobs:
ai-review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Codex
run: npm install -g @openai/codex
- name: Run AI Review
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
codex --model o4-mini --no-input "
请审查以下 PR 变更,重点检查:
1. 代码质量和风格
2. 潜在的 Bug 和安全问题
3. 测试覆盖
4. 文档完整性
"
代码库迁移流程
团队从旧工具迁移到 Codex
1️⃣ Tech Lead 安装并配置 Codex
2️⃣ 创建团队 AGENTS.md 并提交到 Git
3️⃣ 创建团队 Skills 库并同步
4️⃣ 新成员 clone 后自动继承配置
5️⃣ 逐步淘汰旧工具
第十四章:技术栈实战
React 技术栈
AGENTS.md 模板 :
AGENTS.md — React 项目
技术栈
- React 18 + TypeScript
- Vite (构建)
- TanStack Query (数据获取)
- React Router v6 (路由)
- Zustand (状态管理)
- Tailwind CSS (样式)
- React Hook Form + Zod (表单)
- Vitest + Testing Library (测试)
代码规范
- TypeScript,禁用 any
- 函数式组件 + Hooks
- Tailwind,不写内联 CSS
- 文件命名 kebab-case
常用命令
- npm run dev → 启动开发
- npm run build → 构建
- npm run test → 测试
- npm run lint → ESLint
高效提示词示例 :
生成页面
codex "创建用户列表页面,使用 DataTable 组件,支持搜索和分页"
生成 API Hook
codex "为 /api/users 端点创建 useUsers Hook,使用 TanStack Query,包含类型定义"
调试
codex "这个组件在 SSR 时报 'window is not defined',修复它"
测试
codex "为 UserList 组件编写测试,包含:加载状态、空数据、搜索过滤、分页切换"
Python 技术栈
AGENTS.md 模板 :
AGENTS.md — Python 项目
技术栈
- Python 3.12
- FastAPI (Web)
- SQLAlchemy 2.0 (ORM)
- Pydantic v2 (验证)
- pytest (测试)
- Ruff (Lint + Format)
代码规范
- 类型注解必须完整
- 使用 async/await
- Pydantic Model 做输入输出验证
- 依赖注入用 Depends()
常用命令
- uvicorn app.main:app --reload → 开发
- pytest → 测试
- ruff check . → Lint
高效提示词 :
生成 CRUD
codex "为 User 模型创建完整的 CRUD API,包含 Pydantic schema、路由、服务层"
数据库迁移
codex "创建 Alembic 迁移脚本,添加 User 表的 email_verified 字段"
测试
codex "为用户注册 API 编写 pytest 测试,覆盖:正常注册、重复邮箱、密码强度验证"
Go 技术栈
AGENTS.md 模板 :
AGENTS.md — Go 项目
技术栈
- Go 1.22
- Gin / Echo (HTTP)
- GORM (ORM)
- pgx (PostgreSQL driver)
代码规范
- 遵循 Effective Go
- 错误处理必须显式
- 接口定义在消费方
- 表驱动测试
常用命令
- go run ./cmd/server → 启动
- go test ./... → 测试
- go vet ./... → 静态检查
- golangci-lint run → Lint
Rust 技术栈
AGENTS.md 模板 :
AGENTS.md — Rust 项目
技术栈
- Rust 1.78+
- Tokio (异步运行时)
- Axum (Web)
- SQLx (数据库)
- Serde (序列化)
代码规范
- Clippy 零警告
- 所有 public API 必须有文档注释
- 错误使用 thiserror 定义
- 异步函数使用 async fn
常用命令
- cargo run → 运行
- cargo test → 测试
- cargo clippy → Lint
- cargo fmt → 格式化
第十五章:成本分析与管控
成本结构全景
直接成本 :
成本项
月费
说明
ChatGPT Plus
$20
含 $5 Codex 额度
ChatGPT Pro
$200
含 $50 Codex 额度
API 额度
按量
o4-mini ~$1-5/月(轻度)
API 额度
按量
o3 ~$20-200/月(重度)
用量追踪
track_usage.py — 每日用量追踪
from datetime import datetime, timedelta
from openai import OpenAI
client = OpenAI()
def get_daily_usage():
"""获取 API 使用量"""
usage = client.billing.usage(
start_date=(datetime.now() - timedelta(days=1)).strftime("%Y-%m-%d"),
end_date=datetime.now().strftime("%Y-%m-%d")
)
return usage
PRICING = {
"o4-mini": {"input": 1.10, "output": 4.40},
"gpt-4o": {"input": 2.50, "output": 10.00},
"o3": {"input": 10.00, "output": 40.00},
}
def estimate_cost(model, input_tokens, output_tokens):
"""估算单次调用成本"""
price = PRICING.get(model, PRICING["o4-mini"])
cost = (
input_tokens / 1_000_000 * price["input"] +
output_tokens / 1_000_000 * price["output"]
)
return cost
def monthly_projection(model, daily_tasks, avg_input=500, avg_output=800):
"""月度成本预测"""
daily_cost = estimate_cost(model, avg_input, avg_output) * daily_tasks
monthly_cost = daily_cost * 30
return {
"model": model,
"daily_tasks": daily_tasks,
"monthly_cost": f"${monthly_cost:.2f}",
}
预算告警
budget_alert.py — 每日检查 API 用量并发送告警
import os
import requests
from openai import OpenAI
from datetime import datetime
SLACK_WEBHOOK = os.environ.get("SLACK_WEBHOOK_URL")
MONTHLY_BUDGET = 50 # USD
def check_budget():
client = OpenAI()
usage = client.billing.usage(
start_date=datetime.now().replace(day=1).strftime("%Y-%m-%d"),
end_date=datetime.now().strftime("%Y-%m-%d")
)
total = usage.total_usage / 100
percentage = (total / MONTHLY_BUDGET) * 100
if percentage >= 80:
emoji = "🔴" if percentage >= 100 else "🟡"
requests.post(SLACK_WEBHOOK, json={
"text": f"{emoji} Codex 预算告警\n当月使用:${total:.2f} / ${MONTHLY_BUDGET}\n已使用:{percentage:.1f}%"
})
if __name__ == "__main__":
check_budget()
ROI 计算
指标
无 AI
有 Codex
提升
功能开发时间
8h
4h
50% ⬆️
代码审查时间
2h
0.5h
75% ⬆️
Bug 修复时间
4h
2h
50% ⬆️
月度成本
$0
$20-50
-
月度节省
-
~40h
-
ROI 公式 :
月度 ROI = (节省工时 × 时薪 - AI 工具费) / AI 工具费 × 100%
示例(时薪 $50):
ROI = (40h × $50 - $25) / $25 × 100% = 7900%
即每投入 $1,回报 $80
第十六章:最佳实践
提示词四要素
优秀提示 = 目标 + 上下文 + 约束 + 完成条件
示例 :
🎯 目标:优化用户登录接口性能
📍 上下文:
• 文件:src/api/auth.ts
• 问题:每次登录 3 秒
• 相关:src/utils/cache.ts
🔒 约束:
• 接口不变
• 不破坏安全性
• 使用 Redis 缓存
✅ 完成条件:
• 响应 < 500ms
• 通过所有测试
推理级别选择
级别
场景
建议
🟢 低
快速、范围清晰
日常开发
🟡 中/高
复杂改动、调试
架构变更
🔴 极高
需主动思考的长任务
全新系统设计
⚠️ 最强推理 ≠ 最佳结果,匹配任务复杂度即可
规划优先
复杂任务务必先 /plan :
> /plan
Codex 会:收集上下文 → 提问 → 制定计划 → 等确认后执行
避坑指南
❌ 错误
✅ 正确
规则塞进提示里
移到 AGENTS.md
不告诉如何跑测试
明确构建/测试命令
复杂任务不规划
先 /plan
一上来全开权限
逐步放宽
多步不验证
每步自动测试
对话太长不压缩
定期 /compact
一次提多个需求
一次一个清晰需求
进阶路线
Level 1 → 生成代码(复制粘贴)
Level 2 → 分析修改(理解上下文)
Level 3 → 规划验证(计划 + 测试 + 审查)
Level 4 → 自动化流(Skills + Automation)
Level 5 → 团队协作(AGENTS.md + 团队规范)
Level 6 → 自定义生态(MCP + Skills + API 集成)
第十七章:实战案例
案例一:遗留代码重构
场景 :重构 3 年前的 PHP 遗留系统
codex
步骤 1:理解现有代码
> 分析 src/ 目录下的 PHP 文件结构,理解业务逻辑
> 重点关注:用户认证、订单处理、数据模型
步骤 2:创建 AGENTS.md
> /init
> 为 PHP 重构项目创建 AGENTS.md,包含:
> - 技术栈目标:Python FastAPI
> - 代码规范
> - 重构原则
步骤 3:分模块迁移
> 先迁移用户认证模块到 Python
> 为迁移后的代码编写测试
> 验证功能等价性
步骤 4:审查与优化
> /review
> 优化性能瓶颈
步骤 5:文档与部署
> 生成 API 文档
> 编写部署脚本
案例二:自动化代码审查流水线
.github/workflows/daily-review.yml
name: Daily AI Code Review
on:
schedule:
- cron: '0 9 * * *' # 每天早上 9 点
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Codex
run: npm install -g @openai/codex
- name: Run AI Review
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
codex --model o4-mini --no-input "
审查昨天以来的代码变更,生成简洁的审查报告:
1. 主要变更摘要
2. 发现的问题
3. 改进建议
"
- name: Create GitHub Issue
uses: actions/github-script@v7
with:
script: |
github.rest.issues.create({
owner: context.repo.owner,
repo: context.repo.repo,
title: '📋 AI 代码审查报告 - ' + new Date().toLocaleDateString(),
body: '请查看自动生成的代码审查报告'
})
案例三:TDD 开发工作流
codex
Test-Driven Development with Codex
步骤 1:编写测试
> 为 UserService.get_user(id) 编写测试用例,覆盖:
> - 正常获取
> - 用户不存在
> - 数据库连接失败
步骤 2:运行测试(应该失败)
> pytest tests/test_user.py -v
步骤 3:让 Codex 实现通过测试的代码
> 根据以上测试用例,实现 UserService.get_user 方法
> 确保通过所有测试用例
步骤 4:运行测试(应该通过)
> pytest tests/test_user.py -v
步骤 5:重构优化
> 重构代码,确保可读性和性能
> 确保所有测试仍然通过
案例四:全栈开发
codex
电商后台全栈开发
后端
cd backend
> 创建商品管理 REST API
> 包含 CRUD、搜索、分页
> 为所有接口编写集成测试
> 生成 OpenAPI 文档
前端
cd frontend
> 创建商品管理页面
> 使用 React + Ant Design
> 对接后端 API
> 添加表单验证和错误处理
数据库
> 设计商品表结构
> 创建 Alembic 迁移
> 编写种子数据
部署
> 编写 Dockerfile
> 配置 CI/CD
> 编写部署文档
案例五:DevOps 自动化
codex
场景:自动化发布流程
> 创建自动化部署脚本,包含:
> 1. 代码检查(lint + test)
> 2. Docker 镜像构建
> 3. 推送到镜像仓库
> 4. 滚动更新到 Kubernetes
> 5. 健康检查
> 6. 发送部署通知到 Slack
> 创建回滚脚本,能在 30 秒内回滚到上一版本
> 创建运维监控 Dashboard,展示:
> - 服务健康状态
> - 错误率
> - 响应时间
> - 资源使用率
附录
A. 命令速查卡
命令
功能
示例
codex
启动交互
codex
codex "..."
单次执行
codex "解释代码"
/new
新会话
/new
/init
初始化项目
/init
/diff
查看变更
/diff
/review
代码审查
/review
/plan
规划任务
/plan
/undo
撤销修改
/undo
/compact
压缩历史
/compact
/model
切换模型
/model
/status
查看状态
/status
/skills
浏览技能
/skills
/mcp
MCP 管理
/mcp
B. 配置文件速查
配置项
说明
默认值
model
默认模型
o4-mini
approval_mode
操作模式
auto-edit
disable_response_storage
禁用响应存储
false
allow
允许的命令
[]
deny
禁止的命令
[]
C. 模型速查
模型
适用场景
性价比
o4-mini
日常开发
⭐⭐⭐⭐⭐
gpt-4o
中等复杂度
⭐⭐⭐⭐
o3
复杂推理
⭐⭐⭐
D. 环境变量速查
变量
说明
OPENAI_API_KEY
API 密钥
OPENAI_BASE_URL
API 地址(代理时设置)
HTTP_PROXY
HTTP 代理
HTTPS_PROXY
HTTPS 代理
E. 常见错误代码
错误
原因
解决
AUTH_FAILED
API Key 无效
检查 OPENAI_API_KEY
RATE_LIMIT
请求过于频繁
降低频率或升级计划
CONTEXT_OVERFLOW
上下文超限
使用 /compact
PERMISSION_DENIED
权限不足
检查 config.toml
F. 资源链接
资源
链接
官方文档
https://docs.anthropic.com/codex
GitHub
https://github.com/openai/codex
MCP Server
https://github.com/modelcontextprotocol
OpenAI API
https://platform.openai.com