👥 适用人群:开发者、架构师、团队负责人、编程爱好者 🛤️ 学习路径:安装配置 → 基础使用 → 高级功能 → 团队协作 → 安全合规 → 实战案例
第一章: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/codexHomebrew(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 --versionCodex App 桌面端安装
macOS 安装
官网下载(推荐):
- 访问 https://chatgpt.com/codex
- 点击 “Download for Mac” 下载 .dmg 文件
- 双击 .dmg → 将 Codex 拖入 Applications 文件夹 Homebrew Cask:
brew install --cask openai-codexWindows 安装
官网下载(推荐):
- 访问 https://chatgpt.com/codex
- 点击 “Download for Windows” 下载 .exe 安装包
- 双击运行安装程序,按向导完成安装 winget 命令安装:
winget install OpenAI.CodexMicrosoft 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 → LintRust 技术栈
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 |