开发者指南 · 18 项任务
开发者用 AI:编程智能体、费用与安全的任务交接
如果你已经在用代码补全和聊天,下一步就是能读取代码库、运行命令并发起 pull request 的智能体。这能不能帮你省时间,与其说取决于模型,不如说取决于配置。第一部分适用于任何编程智能体;Claude Code 和 Codex 的部分会根据各自的官方文档,深入讲解它们的命令、文件和设置。
任何编程智能体
01
给智能体一个它能证明自己已完成的任务
智能体在“改进一下”这类任务上会失败,而在以检查收尾的任务上会成功:一个必须通过的失败测试、一条输出必须改变的命令。把证明写进任务里,智能体就会一直做到真正完成,而不是看起来像完成了就停下。
示例
“修复日期解析器对 ISO 周日期的处理。完成的标准是 npm test -- dates 通过,包括针对 2026-W01 的新测试。不要修改测试。”智能体反复运行测试直到通过,并贴出输出;你审查的是一份 30 行的 diff,而不是一个猜测。
怎么做
- 1交给它之前,先写好或指明检查方式:失败的测试,或者命令及其预期输出。
- 2用本页的提示词给它布置任务,写明哪些文件可以改,哪些不可以。
- 3让它自己运行检查,并贴出最终输出。
- 4像审查同事的 pull request 一样审查 diff;检查通过只是审查的开始,而不是结束。
内置功能
可复制的提示词
任务:[改动内容]。 完成的标准:[测试或命令] 通过,并输出 [预期输出]。结束前运行它,并把结果贴出来。 你可以修改:[路径]。不要修改:[路径]、依赖项或测试。 如果你没法让它通过,就停下来说明原因,而不是绕过这项检查。容易出错的地方
- 智能体有时会通过削弱测试来让它通过。禁止修改测试,并在 diff 里留意这种情况。
- 一项检查覆盖不了的任务,也就大到不适合一次交出去。把它拆开。
02
在云端运行任务,你同时做别的事
云端智能体在它们自己的环境里处理你的代码库,完成后交回改动供你审查,因此你做别的事的同时,可以有好几项任务在运行。只有说明清楚的任务才划算;含糊的任务交回来的是一大堆 diff,你还得一点点拆开。
示例
午饭前的三个小任务:升级一个依赖项、补上一个缺失的数据库索引、修复一个时好时坏的测试。每项都交给一个云端智能体,各配自己的检查;下午你审查三个 pull request,而不是来回切换三次工作。
怎么做
- 1选离你的代码最近的那个:Codex Cloud、GitHub 上的 Copilot cloud agent,或 Claude Code on the web。
- 2确保它的环境能安装你的依赖项并运行你的测试;否则智能体只能靠猜。
- 3像上面那项任务一样,发送小而独立的任务,每项都配有自己的检查。
- 4先让自动审查工具读一遍每个 pull request,然后你自己再审查。
内置功能
可复制的提示词
在这个代码库中:[任务]。 背景:[代码中的位置、相关 issue]。 完成的标准:[测试或命令] 在你的环境中通过;把它的输出写进 pull request 的描述里。 pull request 的改动控制在 [n] 行以内。如果需要更多改动,就停下来,提出拆分方案。容易出错的地方
- 需要机密信息或你没有配置的服务的测试,会被跳过或失败。缺了它们,即使全部通过也说明不了什么。
- 几个智能体同时处理相关代码,产生的 pull request 会相互冲突。让并行任务各管不同的区域。
03
让检查在你不在场时自动运行
机器能检查的东西,就别花审查时间。Hook 会在智能体每次改动后运行你的格式化工具、lint 工具和测试,审查机器人会在你之前先读每个 pull request。这样你的审查关注的是设计,而不是拼写错误。
示例
一个 hook 在每次编辑后运行格式化工具和单元测试。智能体的改动弄坏了两个测试;它在 hook 输出中看到失败,在你查看之前就修好了。随后审查机器人标出了一个没有处理的错误情况,这个由你来决定。
怎么做
- 1把构建、测试和 lint 命令写进智能体在每次会话开始时读取的指令文件;每个智能体的文档都写明了这个文件叫什么。
- 2在 Claude Code 中添加 hook,在每次编辑后运行格式化工具和测试,这样智能体就能看到失败并加以修复。
- 3让机器人审查每个 pull request:在 Codex 中开启“Automatic review”,或请求 Copilot 担任审查者。
- 4智能体同一个错误犯了两次,就把它变成一个测试,或指令文件里的一条规则。
内置功能
可复制的提示词
阅读这个代码库,为编程智能体写一份指令文件: 1. 安装、构建、测试、lint 和格式化的确切命令。 2. 项目结构,不超过 10 行。 3. 新人在这里容易弄错的约定,每条附一个例子。 4. 智能体在这里绝对不能做的事,比如修改迁移文件或编辑自动生成的文件。 只列出你成功运行过的命令;其余的标注为“未验证”。容易出错的地方
- 指令文件里的命令如果已经不能用了,会让智能体学会忽略这个文件。配置有变化时,重新运行一遍这些命令。
- 审查机器人也会自信地犯错。把它们的评论当作建议。
04
用最小权限把智能体连接到你的工具
智能体的能力取决于它能看到什么:issue、文档、日志、数据库结构。MCP 能把这些连接起来,但每个连接都是一份访问权限,而它从外部读到的文本可能夹带指令。从只读开始,只有任务需要时才扩大权限。
示例
智能体从问题跟踪系统中读取 issue 482,在日志中找到堆栈跟踪,查阅库的文档,然后指出出问题的文件,全程使用只读令牌。修复代码它写在你的代码库里,你照常审查。
怎么做
- 1列出你最常粘贴到对话里的内容,比如 issue、错误日志、文档或数据库结构。先连接这些。
- 2为每一项添加官方 MCP 服务器,并使用只能读取的令牌。在 Gemini CLI 中,一个扩展可以把 MCP 服务器及其配置打包在一起。
- 3给它一个需要用到这些连接的任务,检查它调用的是不是正确的那个。
- 4每隔几周,删掉你不再使用的服务器。
内置功能
可复制的提示词
在修改任何东西之前:读取问题跟踪系统中的 issue [编号],在日志中找到错误,并查阅 [库] 的文档。 说明每一项分别告诉了你什么,以及你认为哪个文件出了问题。 不要向任何已连接的工具写入内容。容易出错的地方
- 网页、issue 或文档里可能包含专门用来操纵智能体的文字。不要给会读取外部内容的工具写入权限。
- 写在配置文件里的令牌会泄露。使用客户端的机密存储或环境变量,绝不要放进代码库。
05
在订阅和按 token 付费之间做选择
智能体会话要读取文件、执行很多步骤,所以用掉的 token 比聊天多得多。做选择之前,先按你自己典型一周的用量算一下价格:订阅为亲自操作的使用设了封顶,按 token 计费则让你能为每次自动运行设定上限。
示例
一周每天都用智能体,大约会消耗 4000 万(40M)个输入 token 和 300 万(3M)个输出 token。按你所用模型在 API 价格页面上的价格算出费用,再和一个月的订阅费对比。如果订阅更便宜,而且它的用量限制能满足你一周的使用,就选订阅,同时为 CI 保留一个设了支出上限的 API 密钥。
怎么做
- 1先看看你已经在为什么付费:ChatGPT 的方案包含 Codex,Claude 的付费方案包含 Claude Code。
- 2在智能体显示 token 用量的地方,记下几次典型会话的用量。
- 3在我们的 API 价格页面上为这些用量算出费用,再与订阅对比。
- 4自动化和 CI 使用设了支出上限的 API 密钥,以免一个死循环刷出一大笔账单。
内置功能
可复制的提示词
这是我 [n] 次典型会话的用量:[输入和输出 token 数]。我每周大约工作 [天数] 天。 按以下价格估算我每月按 token 计费的费用:[从 API 价格页面粘贴]。 把它和每月 [价格] 的订阅对比。写出计算过程,方便我核对。容易出错的地方
- 订阅也有用量限制。任务进行到一半撞上限制会浪费时间;不只要看价格,还要看限制。
- 对账单影响最大的是模型。按你实际使用的模型来对比。
Claude Code
06
用 CLAUDE.md 让每次会话都有相同的起点
如果你每次会话开始时都要解释构建命令和代码约定,你做的正是 CLAUDE.md 该做的事。Claude 在每次会话开始时都会读取它;保持简短、内容属实,同样的错误就不会再出现。
示例
在一个代码库里,Claude 总是运行 npm test,而不是项目用的 pnpm test:unit,还总去编辑自动生成的文件。在 CLAUDE.md 里加两行,一行写正确的命令,一行写“绝不要编辑 src/gen/”,两个错误就都不再出现。
怎么做
- 1在代码库中运行 /init:它会分析代码库并写出一份初始的 CLAUDE.md;如果已经有了,它会提出改进建议。
- 2团队规则(比如构建和测试命令、编码规范)放在 ./CLAUDE.md 中并提交。你自己的偏好放在 ~/.claude/CLAUDE.md(对所有项目生效),或 CLAUDE.local.md(只对当前项目生效)。
- 3较长的文档不要粘贴进去,而是引用它们:@path/to/file 会在启动时导入另一个文件。
- 4Claude 每次在同一件事上错了两次,就加上那一行本可以避免这个错误的说明。
可复制的提示词
阅读这个代码库并改进 CLAUDE.md。控制在 60 行以内: 1. 构建、测试和 lint 的确切命令。 2. 用几行说明项目结构。 3. 新人在这里容易弄错的约定。 4. 绝对不能编辑的文件和文件夹。 删掉所有已经不再属实的内容。你没有运行过的命令标注为“未验证”。容易出错的地方
- CLAUDE.md 里的所有内容每次会话都会加载,并占用上下文。把细节移到它导入的文件里。
- 已经不再属实的指令比没有还糟。配置有变化时,重新检查这些命令。
07
先做计划,再让它动手编辑
对于涉及很多文件的改动,代价高昂的错误是方向错了,而不是某一行写错了。在计划模式(plan mode)下,Claude 会做调研并写出计划,但不会编辑你的源文件;你修正计划,然后批准。
示例
把身份验证从 cookie 改为令牌,涉及 14 个文件。第一版计划漏掉了移动客户端;你指出来,计划多了一个步骤,直到这时 Claude 才开始编辑。
怎么做
- 1按 Shift+Tab,直到状态栏显示“plan mode on”,或者在提示词开头加上 /plan。
- 2描述要做的改动,以及哪些东西不能变。Claude 仍然可能运行命令来探索代码,但在制定计划期间不会编辑文件。
- 3像读设计说明一样读这份计划:文件找错了、漏了某种情况、改动太大。要求修改,直到计划正确,然后批准。
- 4开始下一项无关的任务之前,用 /clear 重新开始。
可复制的提示词
/plan 修改 [什么],以便 [目标]。约束:[哪些不能变]。 列出你会改动的文件、改动的顺序、证明每一步正确的测试,以及你不确定的地方。在我批准之前,不要编辑任何东西。容易出错的地方
- 计划改动的文件比你预想的多,就是一个警告信号。批准之前问清原因。
- 计划模式仍然会运行命令来探索。它并不能让一个陌生的代码库变得可以放心运行。
官方文档原文: Claude Code docs: Choose a permission mode · Claude Code docs: Commands · Claude Code docs: Best practices
08
别再把同一条命令批准五十遍
每次测试运行都要手动批准,会让你养成不看就点“是”的习惯。在项目设置中一次性允许那些安全、重复的命令,拒绝危险的命令,其余的命令继续保留询问。
示例
一个团队在共享的项目设置中允许了测试和 lint 命令,并禁止读取 .env 文件。需要确认的提示减少到少数几条值得一读的命令,而且谁的会话都打不开那些密钥。
怎么做
- 1打开 /permissions,查看每条规则以及它来自哪个设置文件。
- 2把团队规则放在 .claude/settings.json 中并提交。个人规则放在 ~/.claude/settings.json 或 .claude/settings.local.json 中。
- 3规则的检查顺序是先 deny,再 ask,最后 allow,所以一条 deny 规则优先于任何 allow 规则。
- 4用 Shift+Tab 切换模式:acceptEdits 会自动批准工作目录中的文件编辑。bypassPermissions 会关闭提示和安全检查;文档说只应在没有互联网访问的隔离容器或虚拟机中使用它。
可复制的提示词
看看你在这次会话中运行过的命令。为 .claude/settings.json 提出权限规则:允许我们每天都用的只读命令和测试命令,拒绝任何读取机密信息或删除项目以外内容的操作,其余的都保留为询问。每条规则用一行解释。容易出错的地方
- 一条能匹配任何命令的 allow 规则,等于完全没有提示。只允许确切的命令。
- .claude/settings.json 中的规则一旦提交,就对整个团队生效。像审查代码一样审查它们。
官方文档原文: Claude Code docs: Configure permissions · Claude Code docs: Settings files and precedence · Claude Code docs: Choose a permission mode
09
让每次会话保持专注
一次会话如果处理过三项无关的任务,上下文里就仍然装着这三项,效果上也看得出来。任务之间清空上下文,长任务带着重点进行压缩,并让子智能体在它们自己的上下文中做大范围搜索。
示例
修完一个 bug 后,你在同一次会话里要求重构,它却一直沿用那个 bug 的旧变通方法。执行 /clear,再用一句话交代背景,问题就没了。
怎么做
- 1在无关的任务之间,/clear 会以空的上下文开始一段新的对话。
- 2在长任务中,带上重点执行 /compact(例如“/compact 保留计划和失败的测试”),它会总结之前的内容。
- 3把大范围搜索交给子智能体:每个子智能体都在自己的上下文窗口中运行,所以只有它的答案会回到你的会话中。
- 4Claude Code 在接近上限时也会自动压缩;在合适的时机自己压缩,保留的是你选择的内容。
内置功能
可复制的提示词
/compact 保留:目标、计划、目前为止改动过的文件,以及仍然失败的测试。丢掉探索过程。容易出错的地方
- /clear 会忘掉这段对话。凡是你之后还会用到的内容,都要先写进 CLAUDE.md。
- 你能拿回来的只有子智能体的答案。要求它给出文件路径和行号,而不只是结论。
官方文档原文: Claude Code docs: Commands · Claude Code docs: Best practices · Claude Code docs: Create custom subagents
10
同时运行两项任务,互不冲突
同一个检出目录中的两次会话,会互相改动对方正在编辑的文件。claude --worktree 让每次会话在自己的分支上拥有自己的副本,所以重构和 bug 修复可以并行进行。
示例
一个 worktree 里在升级依赖项,另一个里在修复界面问题,两者都在运行,同时你在审查第三个 pull request。哪次会话都看不到另一次会话改到一半的文件。
怎么做
- 1用 claude --worktree <name>(或 -w)启动每次会话。它会在 .claude/worktrees/<name>/ 下创建一个 git worktree,分支为 worktree-<name>。
- 2按文档的建议,把 .claude/worktrees/ 加入 .gitignore。
- 3每次会话只给一项任务,并配上它自己的检查,这样你可以逐一审查。
- 4像对待其他 pull request 一样审查并合并每个分支。
可复制的提示词
你正在分支 worktree-[名称] 上的一个 worktree 中工作。任务:[一项改动]。完成的标准:[测试或命令] 通过。只在这个分支上提交;不要合并或变基其他分支。容易出错的地方
- 每个 worktree 都是独立的文件夹,所以依赖项和构建输出不共享。在每个 worktree 中分别安装。
- 无论用不用 worktree,两项改动同一批文件的任务,在合并时仍然会冲突。
官方文档原文: Claude Code docs: Run parallel sessions with worktrees
11
用 rewind 撤销走错的一步
会话出了问题时,让 Claude 撤销它自己的改动,往往会再添一团乱。Rewind 能把对话、代码或两者恢复到出错之前的某个时间点。它无法撤销 shell 命令造成的结果,所以在有风险的步骤之前先提交。
示例
三个提示词之前,一次重构走错了方向。回退到那之前,文件和对话都会恢复,你重新表述请求,而不是跟它来回争论把代码改回去。
怎么做
- 1在空的输入框中按两次 Esc,或输入 /rewind(/checkpoint 和 /undo 也可以)。
- 2选择出错之前的那个时间点,恢复对话、代码,或两者都恢复。
- 3了解它的限制:被 rm、mv 或 cp 等 shell 命令改动的文件不会恢复,在 Claude Code 之外或在另一次会话中做的编辑也不会恢复。
- 4在有风险的步骤之前先提交。检查点用于在会话内快速恢复,不能代替 git。
可复制的提示词
开始之前,先提交当前状态,提交信息写“[任务] 之前的检查点”。然后 [任务]。执行任何删除或移动文件的命令之前,先问我。容易出错的地方
- Rewind 找不回被命令删除的文件。只有 git 可以。
- 在此期间你手动做的编辑也不会被记录。回退之前先把它们提交。
官方文档原文: Claude Code docs: Checkpointing · Claude Code docs: Commands
12
在脚本和 CI 中运行
同一个智能体也可以不通过聊天运行:claude -p 接收一个提示词,完成工作后以脚本可以检查的状态码退出。在 CI 中,--bare 会跳过你本地的 hook、skill、MCP 服务器和 CLAUDE.md,这样每次运行在任何地方的表现都一样。
示例
一个夜间任务运行 claude -p,提示词为“根据今天合并的 pull request 更新 changelog”,并加上 --output-format json;退出状态不是 0 时构建就失败,这样第二天早上就能发现运行出了问题。
怎么做
- 1claude -p "..." 以非交互方式运行。--output-format json 或 stream-json 会给出脚本可以解析的输出。
- 2成功时退出码为 0,失败时为非零值,因此 CI 可以据此决定后续步骤。
- 3在 CI 中加上 --bare,让运行不依赖本地配置。
- 4对于 pull request,/install-github-app 会设置 Claude Code GitHub Actions(仅限 github.com 上的代码库);之后在 pull request 或 issue 的评论中提及 @claude 即可。
可复制的提示词
claude -p "阅读与 main 之间的 diff。列出所有新增依赖、涉及身份验证或修改数据库迁移的改动,以 JSON 格式输出:{\"files\": [], \"reason\": \"\"}。如果没有,就返回空列表。" --output-format json容易出错的地方
- 脚本以你给它的权限运行。只给 CI 它所需的最小权限。
- /install-github-app 只适用于 github.com 上的代码库。
官方文档原文: Claude Code docs: Run Claude Code programmatically · Claude Code docs: GitHub Actions
Codex
13
AGENTS.md:每项 Codex 任务的起始指令
Codex 在开始任何工作之前都会读取 AGENTS.md,从你的全局文件一直读到它工作所在的文件夹。命令和规则只需写一次,放在离它们所适用的代码近的地方;离得最近的文件优先。
示例
一个包含网页应用和支付服务的代码库。根目录的 AGENTS.md 存放共享的命令;payments/AGENTS.md 加了一条“没有测试就绝不修改货币舍入规则”。在 payments/ 中的工作两份文件都遵守,两者不一致时,离得更近的文件优先。
怎么做
- 1在 CLI 中运行 /init,在当前文件夹中写出一份初始的 AGENTS.md。
- 2个人指导写在 ~/.codex/AGENTS.md 中,项目规则放在代码库里。子文件夹可以有自己的文件;离 Codex 工作位置越近的文件越优先。
- 3文件要保持简短:它们的总大小有上限,默认是 32 KiB。
- 4添加一个“## Code Review Rules”部分:Codex 在 GitHub 上的审查会遵循它。
可复制的提示词
阅读这个代码库并写出 AGENTS.md: 1. 安装、构建、测试和 lint 的确切命令。 2. 用几行说明项目结构。 3. 新人在这里容易弄错的约定。 4. 一个“## Code Review Rules”部分,写明审查者必须始终标出的问题。 只列出你成功运行过的命令;其余的标注为“未验证”。容易出错的地方
- 文件太长会适得其反:总大小默认上限为 32 KiB。
- 子文件夹里的文件如果和根目录的文件相矛盾却不加说明,会让人和 Codex 一样困惑。写明它覆盖了哪些内容。
官方文档原文: Codex docs: AGENTS.md · Codex docs: CLI commands · Codex docs: GitHub integration
14
决定 Codex 可以自主做多少事
权限模式决定 Codex 可以不经询问做哪些事。“Ask for approval”在工作区内工作,越出工作区之前会暂停;“Full access”会去掉沙盒和询问。按任务选择,而不是一次定终身。
示例
先以只读模式阅读一个陌生的代码库,然后切换到“Ask for approval”来修复一个 bug。Codex 在代码库内进行编辑,但在越出代码库之前会停下来询问。
怎么做
- 1在 CLI 中,/permissions 用于切换模式,/status 会显示当前生效的审批策略和可写文件夹。
- 2“Ask for approval”是推荐的默认模式,它在工作区内编辑文件、运行命令,越出工作区之前会暂停。
- 3“Approve for me”保留同样的沙盒,但把审批请求交给自动审查,而不是交给你。
- 4“Full access”会去掉文件系统和网络限制。文档对此附有警告;只在可以随时丢弃的环境中使用它。
可复制的提示词
开始之前,运行 /status,告诉我审批策略和可写文件夹。然后 [任务]。任何需要联网或在这个代码库之外写入的命令,执行之前先问我。容易出错的地方
- 使用“Approve for me”时,没有人会逐条阅读请求。只在错误操作很容易撤销的场合使用。
- “Full access”作用于整台机器,而不只是这个代码库。
官方文档原文: Codex docs: Permission modes · Codex docs: Sandboxing · Codex docs: Approvals and security · Codex docs: CLI commands
15
在脚本和 CI 中运行 Codex
codex exec 不通过聊天运行任务:进度输出到 stderr,只有最终消息输出到 stdout,因此脚本可以直接使用答案。它以只读方式启动;只有任务需要时才给它写入权限。
示例
一个发布脚本运行 codex exec,提示词为“根据上一个标签之后的提交撰写发布说明”,并把 stdout 保存到 RELEASE.md。只读就够了,因为文件是脚本自己写的。
怎么做
- 1codex exec "..." 以非交互方式运行,默认使用只读沙盒。
- 2需要编辑文件时加上 --sandbox workspace-write;--full-auto 已被弃用。
- 3--json 会输出 JSON Lines 格式的事件流,供需要了解每一步的脚本使用。
- 4在 GitHub Actions 中,openai/codex-action@v1 会替你运行 codex exec。
可复制的提示词
codex exec "阅读自标签 [v1.2.0] 以来的改动。撰写发布说明,按新增、变更和修复分组:每项改动一行,用用户能看懂的话来写,不要写提交哈希。"容易出错的地方
- 较早的指南仍在使用 --full-auto。它已被弃用;请使用 --sandbox workspace-write。
- 只需读取的任务就应保持只读,在 CI 中也一样。
官方文档原文: Codex docs: Non-interactive mode · Codex docs: GitHub Action
16
推送之前先做一次审查
Codex 可以审查你的工作树、某个分支或某个 pull request。在 GitHub 上,它只标出最严重的问题,即 P0 和 P1,所以它的评论值得一读。推送之前运行它,并让它审查每个 pull request。
示例
推送一个迁移之前,/review 指出新列没有默认值,已有的行会因此出错。推送前花一分钟,而不是换来一次失败的部署。
怎么做
- 1CLI 中的 /review 会审查你的工作树。codex review 不通过聊天完成同样的事,可以针对某个基准分支、某个提交或未提交的改动。
- 2在 GitHub 上,在 pull request 中评论 @codex review。
- 3在 Codex 设置的“Personal preferences”下开启自动审查;之后就不需要评论了。
- 4把团队的规则写在 AGENTS.md 的“## Code Review Rules”部分中。
内置功能
可复制的提示词
## Code Review Rules - 标出任何涉及身份验证或权限的改动。 - 标出无法回滚的数据库迁移。 - 标出新增的依赖项,并说明是否必要。 - 忽略格式问题;lint 工具会处理。容易出错的地方
- GitHub 上的审查只标出 P0 和 P1 问题。没有评论并不代表设计是对的。
- 审查是第二意见,不是测试运行。测试还是要保留。
官方文档原文: Codex docs: CLI commands · Codex docs: GitHub integration
17
把任务交给 Codex Cloud
Codex Cloud 在你的电脑休眠时也会继续工作,每项任务都在各自的工作区中进行,工作区由你一次性配置好的环境创建。有了合适的环境,它就能安装、构建和测试;没有的话,它只能靠猜。
示例
开会前用 codex cloud exec 发出四个小型重构任务,每个都在由同一环境创建的独立工作区中运行。最棘手的那个你要求尝试三次,保留最好的结果;会后你审查四份 diff。
怎么做
- 1创建一个环境,包含任务所需的代码库、依赖项、工具和访问设置。新环境会记录一个安装脚本和一个启动 skill。
- 2为每个环境分别设置互联网访问:仅限包管理器、指定的域名,或全部放开。
- 3可以从 ChatGPT 启动任务;较长的工作可以从 IDE 扩展启动;也可以在终端用 codex cloud exec 启动;--attempts 1-4 会要求尝试多次,以便对比。
- 4Code Review 以及 GitHub 和 Linear 集成仍然运行在旧版 Codex Cloud(Legacy)上,OpenAI 计划将其停用。
内置功能
可复制的提示词
codex cloud exec --attempts 3 "任务:[改动]。背景:[文件]。完成的标准是 [测试] 在这个环境中通过。diff 控制在 [n] 行以内。"容易出错的地方
- 不受限制的互联网访问会让任务能访问任何网站,包括专门写来操纵它的网页。只允许任务所需的访问。
- 如果缺少安装脚本,测试可能根本没有运行。确认任务真的运行了测试。
官方文档原文: Codex docs: Cloud environments · Codex docs: CLI commands · Codex docs: IDE extension
18
一次性配置好 Codex:配置文件、profile 和 MCP
如果你每次会话都要手动更改模型和设置,就把它们写进 config.toml。Codex 每次都会读取 ~/.codex/config.toml,在受信任的项目中还会读取项目设置;一个 profile 可以一次切换一整套设置。
示例
一个名为“deep”、推理强度设为高、用于设计问题的 profile,以及用于快速修复的默认设置。问架构问题之前运行 codex --profile deep;其余情况直接运行 codex。
怎么做
- 1在 ~/.codex/config.toml 中设置默认模型和推理强度(model 和 model_reasoning_effort)。CLI 和 IDE 扩展共用这个文件。
- 2把 profile 写成单独的文件 ~/.codex/<name>.config.toml,并用 --profile <name> 启动。
- 3用 codex mcp add <name> -- <command> 添加 MCP 服务器;每个服务器都会成为一个 [mcp_servers.<name>] 表,/mcp 会列出当前启用的服务器。
- 4/status 显示当前生效的设置,codex resume --last 会接着这个文件夹中最近的一次会话继续。
可复制的提示词
阅读 ~/.codex/config.toml 和这个项目的 .codex/config.toml。告诉我当前生效的模型、推理强度、沙盒和 MCP 服务器,每项分别来自哪个文件,以及任何相互冲突的地方。容易出错的地方
- 项目设置只在受信任的项目中加载。如果某项设置似乎被忽略了,先检查这一点。
- profile 现在是单独的文件。把 [profiles.name] 写在 config.toml 里的指南已经过时了。
官方文档原文: Codex docs: MCP · Codex docs: Config basics · Codex docs: Advanced config · Codex docs: CLI commands
开发者使用守则
- 永远不要把机密信息、密钥或客户数据粘贴进提示词;也不要把它们放在会被索引的文件夹里。
- 在分支上运行智能体,并把权限设置为执行命令前先询问;审查每一处 diff。
- 合并智能体写的代码之前,自己运行一遍测试。
- 给智能体使用的每个 API 密钥设置支出上限。
深入了解
- 提供合适的背景信息 课程,约 8 分钟
- 给出示例和你想要的格式 课程,约 8 分钟
- 一步步改进回答 课程,约 8 分钟
- Claude Code 101 Anthropic (Claude Academy)
- Get Started with Codex OpenAI (OpenAI Academy)
- AI Agents Course Hugging Face
- Full Course: Spec-Driven Development with Coding Agents DeepLearningAI on YouTube