1. 引言为什么开通 Plus / Pro 之后第一件事是打开 Codex很多人在开通 ChatGPT Plus 或 Pro 之后第一反应是去聊天窗口里问几个问题、生成几段文案然后就没有然后了。但如果你订阅的是 Plus 或 Pro真正拉开差距的其实是那个藏在界面角落里的 Codex——一个能直接操作代码仓库、执行命令、读写文件的 AI 编程代理。Codex 不是简单的聊天窗口里写代码而是一个运行在云端沙箱里的自主代理。它有自己的文件系统、终端、甚至能访问你的 GitHub 仓库。这意味着你可以把写代码这件事从复制粘贴到本地再手动跑变成直接让 AI 在云端把活干完。这篇文章面向的是已经熟悉编程、但还没深入用过 Codex 的用户。我们不谈充值、不谈订阅价格只谈一件事开通之后Codex 到底能怎么玩出生产力。2. Codex 到底是什么不是聊天窗口是云端开发环境2.1 核心架构Codex 的本质是一个运行在云端容器里的 AI 代理。它和普通 ChatGPT 对话的最大区别在于有持久化的文件系统Codex 可以在云端创建、修改、删除文件这些文件在会话之间保留。有终端执行能力它可以运行 shell 命令、安装依赖、执行测试、启动服务。有 Git 集成可以直接 clone 仓库、创建分支、提交代码、甚至发起 Pull Request。有上下文窗口管理Codex 会自动读取项目结构、搜索相关文件而不是像聊天窗口那样只能靠你手动粘贴。2.2 和 ChatGPT 对话的区别能力ChatGPT 对话Codex生成代码片段✅✅读写本地文件❌✅云端沙箱执行命令❌✅运行测试❌✅操作 Git 仓库❌✅自主规划多步任务有限✅简单说ChatGPT 对话是顾问Codex 是外包工程师。3. 第一次打开 Codex界面与工作区3.1 入口在 ChatGPT 网页端左侧边栏找到 Codex 图标一个终端样式的图标点击进入。你会看到一个类似 IDE 的界面左侧是文件树中间是对话/任务面板右侧是终端输出。3.2 工作区模式Codex 支持两种工作区云端沙箱默认所有操作在云端容器里完成不占用本地资源。本地连接Beta通过 CLI 工具连接本地目录Codex 直接操作你本地的文件。对于日常开发云端沙箱足够对于需要和本地环境联调的项目用本地连接模式。3.3 第一个任务在输入框里输入创建一个 Python 项目包含一个 FastAPI 服务提供 /health 和 /hello 两个接口并写好测试。Codex 会自主完成创建项目目录结构生成main.py、requirements.txt、test_main.py安装依赖运行测试并报告结果整个过程你只需要观察和确认不需要手动敲一行代码。4. 实战一用 Codex 从零搭建一个完整的 Web 服务4.1 任务描述我们让 Codex 搭建一个带数据库的待办事项 API使用 FastAPI SQLite SQLAlchemy。4.2 提示词创建一个 FastAPI 待办事项应用 1. 使用 SQLite 数据库通过 SQLAlchemy ORM 操作 2. 提供 GET /todos、POST /todos、DELETE /todos/{id} 三个接口 3. 数据模型包含 id、title、completed、created_at 字段 4. 使用 Pydantic 做请求体校验 5. 写好 pytest 测试覆盖三个接口 6. 最后运行测试并展示结果4.3 Codex 生成的代码示例Codex 会生成类似下面的项目结构todo-app/ ├── app/ │ ├── __init__.py │ ├── main.py │ ├── models.py │ ├── schemas.py │ └── database.py ├── tests/ │ └── test_todos.py ├── requirements.txt └── README.md核心文件app/main.pyfromfastapiimportFastAPI,Depends,HTTPExceptionfromsqlalchemy.ormimportSessionfrom.importmodels,schemasfrom.databaseimportSessionLocal,engine models.Base.metadata.create_all(bindengine)appFastAPI(titleTodo API)defget_db():dbSessionLocal()try:yielddbfinally:db.close()app.get(/todos,response_modellist[schemas.Todo])deflist_todos(db:SessionDepends(get_db)):returndb.query(models.Todo).all()app.post(/todos,response_modelschemas.Todo)defcreate_todo(todo:schemas.TodoCreate,db:SessionDepends(get_db)):db_todomodels.Todo(titletodo.title)db.add(db_todo)db.commit()db.refresh(db_todo)returndb_todoapp.delete(/todos/{todo_id})defdelete_todo(todo_id:int,db:SessionDepends(get_db)):tododb.query(models.Todo).filter(models.Todo.idtodo_id).first()ifnottodo:raiseHTTPException(status_code404,detailTodo not found)db.delete(todo)db.commit()return{ok:True}4.4 关键点Codex 会自动安装依赖并运行pytest把测试结果直接展示给你。如果测试失败它会读取错误信息、修复代码、重新运行直到通过。你不需要把代码复制到本地云端沙箱里已经跑通了。5. 实战二让 Codex 修复一个真实 Bug5.1 场景你有一个本地项目某个接口在并发请求下会偶发 500 错误。你把项目推送到 GitHub然后让 Codex 分析。5.2 提示词clone 这个仓库https://github.com/yourname/your-repo.git 然后分析为什么 /api/order 接口在并发下会偶发 500 错误。 找到根因修复它并写一个并发测试来验证修复有效。5.3 Codex 的工作流程Clone 仓库到云端沙箱阅读项目结构和相关代码定位到order.py中的竞态条件——一个共享的dict在多个协程间被并发读写用asyncio.Lock修复写一个用asyncio.gather模拟 100 个并发请求的测试运行测试确认修复有效提交代码并推送甚至可以直接创建 PR修复后的代码片段importasynciofromfastapiimportAPIRouter routerAPIRouter()_order_lockasyncio.Lock()_order_store{}router.post(/api/order)asyncdefcreate_order(order_id:str):asyncwith_order_lock:# 原来的并发写操作现在被锁保护_order_store[order_id]{status:created}awaitasyncio.sleep(0.01)# 模拟耗时操作return_order_store[order_id]5.4 价值这个场景的价值在于Codex 不只是写代码它能理解项目上下文、定位问题、修复并验证。这已经接近一个初级工程师的完整工作流。6. 实战三用 Codex 做代码重构与迁移6.1 场景你有一个用 Python 写的脚本需要迁移到 TypeScript并且要拆分模块、补充类型定义。6.2 提示词把当前项目里的 utils.py 迁移到 TypeScript 1. 保持原有函数逻辑不变 2. 拆分成多个模块文件 3. 补充完整的 TypeScript 类型定义 4. 写单元测试 5. 用 tsc 编译验证没有类型错误6.3 结果Codex 会生成src/ ├── types.ts ├── stringUtils.ts ├── arrayUtils.ts ├── dateUtils.ts └── index.ts tests/ ├── stringUtils.test.ts └── arrayUtils.test.ts并自动运行tsc --noEmit和测试确保迁移后代码质量达标。7. 进阶技巧让 Codex 更懂你的项目7.1 使用 AGENTS.md 项目说明文件在项目根目录创建AGENTS.mdCodex 会自动读取它来理解项目约定# 项目约定 - 使用 Python 3.11 - 代码风格遵循 Black isort - 所有接口必须返回统一格式{code: 0, data: ..., msg: ok} - 测试使用 pytest覆盖率不低于 80% - 数据库迁移使用 Alembic这样 Codex 生成的代码会自动符合你的团队规范。7.2 分步确认模式对于复杂任务不要一次给太多指令。分步进行第一步先分析项目结构列出你理解的模块职责。 第二步基于分析结果给出重构方案。 第三步确认方案后再开始改代码。7.3 让 Codex 先写测试再写实现先为这个函数写完整的单元测试覆盖正常、边界、异常三种情况。 测试写好后再实现函数让测试通过。这种 TDD 模式能让 Codex 产出更可靠的代码。7.4 善用 /commands 快捷指令Codex 内置了一些快捷指令/fix让 Codex 修复当前选中的代码问题/explain解释当前代码的逻辑/review对当前改动做代码审查/test为当前代码生成测试8. 常见坑与避坑指南8.1 云端沙箱的局限性沙箱有资源限制超大项目几十 GB可能跑不动。网络受限某些内网服务无法访问。沙箱环境是临时的虽然文件会保留但建议重要成果推送到 Git 仓库。8.2 提示词太模糊❌ 错误示范帮我优化这个项目✅ 正确示范优化 src/utils.py 中的 parse_date 函数 1. 当前实现用正则解析性能差 2. 改用 datetime.fromisoformat 3. 保持对 2024-01-01 和 2024-01-01T10:30:00 两种格式的兼容 4. 补充边界测试8.3 不要让它直接操作生产环境Codex 的本地连接模式可以操作你的本地文件但不要让它直接连接生产数据库或执行生产环境的破坏性命令。把它当作开发环境助手而不是运维机器人。9. 总结Codex 的正确打开方式开通 Plus / Pro 之后Codex 才是那个真正把订阅价值放大的功能。它不是聊天窗口的替代品而是一个能自主完成理解需求 → 写代码 → 跑测试 → 修 Bug → 提交完整闭环的 AI 开发代理。给你的行动建议第一个任务让 Codex 从零搭建一个你熟悉的小项目感受它的工作流。第二个任务把一个你手头真实的、有 Bug 的项目交给它看它如何定位和修复。第三个任务在项目里加上AGENTS.md让 Codex 成为真正懂你规范的团队成员。Codex 不会取代程序员但它会取代复制粘贴到聊天窗口再手动跑这种低效工作方式。把它用起来你会发现 Plus / Pro 的订阅价值远超你的预期。