Codex(OpenAI):你的 AI 编程搭档
前言:Codex 能帮你做什么
Codex 是 OpenAI 出品的 AI 编程搭档,你可以把它理解成一个「住在终端里的程序员助手」。它的核心能力有三个:读懂代码、改代码、写新代码。和普通的代码自动补全工具不同,Codex 不是猜你下一行写什么,而是理解你整个项目的上下文,然后像一个真人程序员一样多步骤地执行任务。
不懂编程的人能用吗?能。你可以让 Codex 帮你读一段代码、用大白话解释它做了什么,或者帮你定位一个报错的原因。不需要写代码,只需要用中文描述你要什么。
懂编程的人怎么用?修 bug、加功能、写测试、重构、提 PR,Codex 都能胜任。把 Codex 当成一个 24 小时在线的初级工程师,你负责审查它的产出就好。
怎么和它对话?Codex 支持自然语言,你说中文它完全能懂。所有 ChatGPT Plus / Pro / Team / Enterprise 套餐都自带 Codex,也可以通过 OpenAI API Key 调用。
第 1 步:安装 Codex
不管你用什么操作系统,Codex 都装在同一类地方:一个叫「终端」或「命令行」的程序里。下面按系统分别说明。
macOS 用户
- 按 Command + 空格,输入 Terminal(终端),回车打开。
- 把下面这行命令粘贴进去,按回车:
# macOS 安装 Codex
curl -fsSL https://chatgpt.com/codex/install.sh | sh
- 等脚本跑完,看到
Installation complete就说明装好了。
如果你习惯用 Homebrew 管理软件,也可以用:
# Homebrew 方式安装
brew install codex
Linux 用户
- 按 Ctrl + Alt + T 打开终端(不同发行版快捷键可能不同,在应用列表里搜 Terminal 也可以)。
- 粘贴下面命令,回车执行:
# Linux 安装 Codex
curl -fsSL https://chatgpt.com/codex/install.sh | sh
- 如果有权限问题,在前面加
sudo:
# 如果提示权限不足
sudo curl -fsSL https://chatgpt.com/codex/install.sh | sh
Windows 用户
- 按 Win + R,输入 powershell,回车打开 PowerShell。
- 粘贴下面命令,回车执行:
# Windows 安装 Codex(PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"
- 如果弹出安全提示,选「允许」。跑完后关闭 PowerShell 再重新打开即可使用。
codex --version,如果显示版本号,说明安装成功。第 2 步:登录和第一次会话
Codex 需要登录你的 OpenAI 账号才能使用。推荐用 ChatGPT 账号登录,简单两步:
方式一:用 ChatGPT 账号登录(推荐)
- 终端里输入
codex回车。 - 浏览器会自动弹出一个 OpenAI 登录页,点「确认授权」,终端会自动收到登录信息。
# 启动 Codex,按提示完成浏览器授权
codex
# 首次启动会弹出浏览器登录页面
# 登录成功后终端会显示欢迎信息
方式二:用 API Key 登录
- 先到 platform.openai.com/api-keys 创建 API Key。
- 设置环境变量:
# macOS / Linux 设置 API Key
export OPENAI_API_KEY="sk-你的key"
# Windows PowerShell 设置 API Key
$env:OPENAI_API_KEY="sk-你的key"
API Key 方式不需要浏览器弹出登录,适合服务器环境或用自动脚本调用的场景。
codex 回车,如果出现交互提示符(类似 > 或光标等待输入),说明你已经成功连接。试试输入「你好」看看 Codex 是否回复。第 3 步:第一个任务:让 Codex 解释代码
从最安全的操作开始:让 Codex 帮你读代码并解释它在做什么。这个操作不会修改你的任何文件,特别适合零基础学员。
场景演示
假设你有一个 utils.py 文件,里面有个看了半天也没看懂的 process_data 函数。
# 进入你的项目目录
cd ~/my-project
# 启动 Codex
codex
# 在 Codex 的交互窗口里输入(回车发送)
# 你:阅读 src/utils.py 里的 process_data 函数,用中文解释它做了什么,
# 每一步是什么意思,输入什么,输出什么
Codex 会自动读取文件内容,然后用大白话告诉你函数是怎么工作的。你可以继续追问:
# 继续追问
# 你:这个函数的第 15 行是什么意思?为什么用 lambda?
# 你:如果输入不对,可能会怎么报错?
# 你:能帮我把这个函数改写成更易懂的版本吗?(不要直接改,先展示给我看)
这个阶段你可以尽情问问题,Codex 不会动你的代码,纯聊天。多试几次,你会慢慢习惯用自然语言和 AI 交流。
第 4 步:让 Codex 帮你修 bug
修 bug 是 Codex 最擅长的功能之一。关键是把 bug 描述清楚:什么现象、什么时候出现、有没有错误消息。
# 修改前先建一个临时分支
git checkout -b codex-fix-bug
# 修完后如果满意,合并回主分支
# 如果不满意,直接切回去就好
git checkout main
建分支的好处是不怕改坏,不满意随时能扔掉这个分支,主代码一点不受影响。如何描述 bug
一个好的 bug 描述包含三个要素:
- 现象:发生了什么?(网页白屏、报错 500、计算结果不对)
- 复现步骤:怎么操作会出问题?(点哪个按钮、输入什么数据)
- 期望结果:正常情况应该是什么样?
# 坏的描述(太模糊)
# 你:帮我修个 bug
# Codex:请告诉我具体是什么 bug?这样对话效率很低
# 好的描述(三要素齐全)
# 你:app.py 的 /login 接口在输入错误密码时返回 500 错误,
# 应该返回 401 并提示"密码不正确"。请定位原因并修复。
审查 Codex 的修改
Codex 改完代码后会展示一个 diff(差异对比),告诉你改了哪些行。你需要:
- 逐条看改了什么,确认每一条改动你都能看懂
- 如果看不懂某条改动,直接问 Codex:「这条为什么这么改?」
- 确认没问题后告诉 Codex「确认」,它才会真正写入文件
- 修完后跑一下测试,验证修好了没有引入新问题
第 5 步:让 Codex 帮你加新功能
这一步教你把一个模糊的需求变成可运行的代码。我们用加日志功能作为例子,因为这个需求很通用,几乎所有项目都需要。
例子:给 Python 脚本加日志功能
假设你有一个 data_processor.py 脚本,负责读文件、处理数据、写结果,但它没有任何日志,出错了也不知道卡在哪一步。
# 启动 Codex 并描述需求
codex
# 你:data_processor.py 现在没有任何日志。请在关键步骤加上 logging,
# 要求:
# 1. 程序启动时记录一行日志
# 2. 每个主要步骤开始和结束时各记一行
# 3. 出错时记录完整错误堆栈
# 4. 同时输出到控制台和 app.log 文件
# 5. 日志格式为:[时间] [级别] 消息
Codex 会:
- 先分析 data_processor.py 的结构,找出哪些是主要步骤
- 展示修改方案给你审查
- 你确认后写入文件
# 改完后在终端验证
python data_processor.py
# 看控制台有没有日志输出
cat app.log
# 看日志文件内容是否正确
# 让 Codex 帮你写测试
# 你:帮我给刚才加的日志功能写个简单测试,
# 确保日志确实会写到 app.log 里
第 6 步:进阶:多文件操作
真实项目往往不是一个文件就能搞定的。Codex 支持跨文件操作,能同时理解多个文件的关系,并保持改动的全局一致性。
场景:重构一段跨文件逻辑
假设你的项目结构是:
# 项目结构示意
my-api/
app.py # 主入口,定义路由
models/user.py # 用户模型
utils/auth.py # 认证逻辑
tests/ # 测试文件
你想把认证逻辑从 utils/auth.py 移到 models/user.py 里,并更新所有引用这个模块的文件。
# 你:把 utils/auth.py 里的认证逻辑合并到 models/user.py,
# 更新 app.py 里的 import 语句,
# 同步更新 tests/ 下所有测试文件的 import,
# 确认删除 utils/auth.py 前所有引用都已迁移。
Codex 会自动:
- 读取相关文件的当前内容
- 找出所有引用
utils.auth的地方 - 展示完整的改动方案(涉及哪些文件、每种改了什么)
- 确认后逐个文件执行修改
多文件操作注意事项
- 一次改一个主题:不要同时让 Codex 重构认证逻辑又改数据库结构,分开来降低风险
- 每步跑测试:多文件改动涉及面广,每改完一组就跑一次测试,问题早发现
- 善用 Git diff:用
git diff检查所有改了哪些文件,全局把关 - 让 Codex 自己列出改动清单:在确认之前问它「请列出你准备修改哪些文件,每个改了什么」
第 7 步:进阶:Git 和 CI/CD 集成
Codex 不仅能改代码,还能帮你打理版本控制和 CI 流水线。
自动写 Git commit message
# 你:基于这次改动生成一条规范的 commit message
# Codex 会分析 git diff 后输出类似:
#
# feat: 给 data_processor.py 添加完整日志功能
#
# - 启动时记录程序版本和启动时间
# - 每个处理步骤开始和结束时各记一条 INFO 日志
# - 异常时记录完整错误堆栈到 ERROR 级别
# - 同时输出到控制台和 app.log 文件
自动提 PR
Codex 支持 GitHub 集成,可以在你审查完改动后直接提交为 Pull Request:
# 你:把改动推到 GitHub 并创建 PR,
# 标题:feat: 添加日志系统
# 描述写清楚改了什么、怎么测试
在 CI 流水线里调用 Codex
自动化场景下用非交互模式,适合放在 GitHub Actions、Jenkins 等 CI 系统里:
# 非交互模式,适合 CI 脚本
CODEX_NON_INTERACTIVE=1 codex exec "为 utils.py 补充单元测试"
# GitHub Actions 片段示意
# jobs:
# codex-review:
# steps:
# - run: CODEX_NON_INTERACTIVE=1 codex exec "审查本次 PR 的代码变更"
第 8 步:实战:从零到 PR,全程 Codex
用一个真实场景走一遍完整流程:给一个 Flask API 项目加用户认证功能。从需求分析到提 PR,全程用 Codex 完成。
场景设定
你的项目是一个简单的 Flask API,有 /health 和 /api/data 两个接口,目前没有认证。
第一步:需求分析
# 你:分析当前项目结构,告诉我如果要加用户认证,
# 需要改哪些文件,每个文件改什么,大概多少工作量
#
# Codex 会输出类似:
# 1. app.py:添加 /register 和 /login 两个新路由
# 2. 新建 models/user.py:定义 User 模型
# 3. 新建 middleware/auth.py:JWT 认证中间件
# 4. 修改 requirements.txt:加 bcrypt 和 PyJWT 依赖
# 5. 修改 /api/data:接入认证中间件
# 6. 新建 tests/test_auth.py:认证相关测试
第二步:逐步实现
# 先修依赖
# 你:帮我在 requirements.txt 里加上 bcrypt 和 PyJWT
# 建用户模型
# 你:新建 models/user.py,定义 User 模型,
# 字段:id / username / password_hash / created_at
# 注册接口
# 你:在 app.py 加 POST /register 路由,
# 接收 username 和 password,用 bcrypt 加密后存库,
# 返回 201 和用户 id
# 登录接口
# 你:在 app.py 加 POST /login 路由,
# 验证用户名密码,返回 JWT token
# 认证中间件
# 你:新建 middleware/auth.py,写一个 JWT 认证装饰器
# 保护接口
# 你:给 /api/data 路由加上认证中间件
第三步:写测试
# 你:创建 tests/test_auth.py,写测试用例覆盖:
# 1. 正常注册 返回 201
# 2. 重复注册 返回 409
# 3. 正确登录 返回 token
# 4. 错误密码 返回 401
# 5. 不带 token 访问受保护接口 返回 401
第四步:审查并提 PR
# 你:跑一下测试,如果有失败直接修
# Codex 执行测试,修所有失败用例
# 你:基于这次改动生成 commit message,提交并创建 PR
全程总结
整个流程你只需要用中文描述每一步要做什么,Codex 负责读代码、写代码、跑测试。你的核心工作变成了「审查」和「决策」,而不是「敲键盘」。零基础同学按这个流程,第一次就能完成一个完整的工程任务。
第 9 步:写好 Codex 提示词的 10 个技巧
提示词的质量直接决定 Codex 的输出质量。下面 10 条技巧来自实战经验:
| # | 技巧 | 错误示例 | 正确示例 |
|---|---|---|---|
| 1 | 说清楚要改哪个文件 | 帮我加个日志 | 在 src/data_processor.py 的第 20 行后面加一条日志 |
| 2 | 用要点列表代替长段落 | 我想加个登录验证功能,需要密码加密还要有 token 过期时间而且... | 登录功能要求:1. 密码 bcrypt 加密 2. JWT 过期 1 小时 3. 返回 user_id |
| 3 | 给出输入输出的具体格式 | 返回用户信息 | 返回 JSON:{"id": 1, "name": "张三", "role": "admin"} |
| 4 | 先让它展示方案再执行 | 直接帮我改 | 先分析要改哪些地方,列出方案让我确认后再改 |
| 5 | 给出约束条件 | 把代码优化一下 | 优化这段代码的执行时间,不要改对外接口的签名,保持向后兼容 |
| 6 | 模仿现有代码风格 | 写个工具函数 | 参考 utils/ 目录下现有函数的写法风格,写一个类似的工具函数 |
| 7 | 出错时贴完整报错 | 跑不通,帮我看看 | 运行 python app.py 报错:TypeError: got str, expected int(line 45),帮我定位修复 |
| 8 | 分步骤,给序号 | 帮我重构整个项目 | 第一步:改 models/ 的字段名 第二步:更新 utils/ 的引用 第三步:跑测试 |
| 9 | 告诉它你的技术栈版本 | 帮我装个依赖 | 我用 Python 3.12 + Flask 3.2,帮我安装兼容的用户认证依赖 |
| 10 | 不确定就问 Codex 本身 | (自己瞎猜怎么用) | 我想把认证逻辑从单文件拆成模块,应该怎么组织?给我推荐一个目录结构 |
学习检查清单
对照下面的清单,逐个检查你是否掌握了 Codex 的用法:
- 我能独立安装 Codex(三平台任选其一)
- 我成功登录并启动了一次交互式会话,Codex 能正常回复
- 我让 Codex 解释了一个看不懂的代码文件,并看懂了它的回答
- 我描述了一个 bug(现象 + 复现 + 期望),Codex 定位了原因并修复
- 我审查过 Codex 的 diff 输出,确认没问题后才让它写入文件
- 我让 Codex 给项目加了新功能(比如日志、错误处理、参数校验)
- 我做过一次跨文件操作:改了模块 A,更新了所有引用它的文件
- 我在修改前建了 Git 分支,改完后用 git diff 检查了所有改动
- 我让 Codex 帮我生成过 commit message 或提过 PR
- 我完整走了一次「需求 → 改动 → 测试 → 提交」的全流程
- 我能用要点列表格式写出让 Codex 一次做对的提示词
- 我知道怎么让 Codex 先展示方案再执行(安全第一)
与本站教程的衔接
学好 Codex 的使用只是第一步,本站还有更多内容帮你在 AI 方向走得更远:
- 提示词工程:写好提示词的本质是「准确传达需求」。这里的技巧不仅适用 Codex,也适用 ChatGPT、Claude、Gemini 等所有 LLM。
- AI Agent 编排:Codex 是典型的「编码智能体」。学会 Agent 编排后,你可以让 Codex 和其他工具(数据库、API、搜索引擎)联合工作,自动完成更复杂的任务。
- 评估与评测:Codex 改完代码后怎么验证质量?评估模块教你建立回归测试体系,用自动化手段把关 AI 生成的代码。
- 安全与对齐:Codex 的权限模式和沙箱能力是这个模块的直接应用场景:用安全策略管好 AI 能碰哪些文件、能跑哪些命令。
- RAG 检索增强:当项目文档太多时,先让 RAG 系统帮你检索相关上下文,再把结果喂给 Codex,改代码更准。
- 国内 LLM 工具:想用国产工具?国内篇介绍了 WorkBuddy、Qwen、GLM 等方案,同样有「安装 → 配置 → 实战」的完整路径。
Claude(Anthropic)
Claude 是 Anthropic 的模型家族,以长上下文、稳健推理与「宪法式」对齐著称。Claude Code 是其命令行编程智能体,能读仓库、编辑、跑命令。
1. 工具介绍与背景
Claude 擅长长文档理解与谨慎执行,是做代码库级重构、文档生成和 Agent 的热门底座。Claude Code 与 Codex 定位接近,但更强调在终端里渐进式协作。
2. 安装部署流程
# 用 npm 全局安装 Claude Code
npm install -g @anthropic-ai/claude-code
3. 注册与账号配置
登录 Anthropic 账号或填入 API Key;团队版可配组织令牌与权限策略。
export ANTHROPIC_API_KEY="你的key"
claude # 在仓库目录启动
4. 基础使用方法
# 让 Claude Code 解释并改造当前项目
claude "阅读 src/ 目录,给每个公开函数补类型注解"
# 走 SDK 做带工具调用的对话
from anthropic import Anthropic
client = Anthropic()
r = client.messages.create(
model="claude-opus-4",
max_tokens=1024,
messages=[{"role":"user",
"content":"用一句话总结这段代码的作用。"}],
)
print(r.content[0].text)
5. 与本站教程的衔接
Claude 长上下文适合整库级RAG问答;其工具调用是AI Agent的现成积木;接入评估时可作为被评测模型之一。
Gemini(Google)
Gemini 是 Google 的多模态模型家族,原生支持文本、图像、音频、视频,长上下文窗口大,且通过 AI Studio 与 Vertex AI 提供易用的接入。
1. 工具介绍与背景
最大亮点是「原生多模态」:一次输入就能混合图文音视频,契合多模态应用模块。免费层即可在 AI Studio 里快速试跑。
2. 安装部署流程
# 安装 Google GenAI SDK
pip install google-genai
3. 注册与账号配置
在 Google AI Studio 创建 API Key,配置到环境变量。
export GEMINI_API_KEY="你的key"
4. 基础使用方法
from google import genai
client = genai.Client()
resp = client.models.generate_content(
model="gemini-2.5-pro",
contents="描述这张图片里的流程图,并给出优化建议。",
)
print(resp.text)
5. 与本站教程的衔接
Gemini 的多模态能力直接对应多模态应用模块;其 Embedding 可作为向量数据库的向量化前端;大窗口适合把长文档直接丢进RAG链路做端到端问答。
横向对比
Codex 偏「编码智能体」(改代码、提 PR),Claude 偏「稳健推理与长上下文协作」,Gemini 偏「原生多模态」。选型原则:做工程自动化选 Codex;做长文档/谨慎推理选 Claude;做图文音视频混合理解选 Gemini。