我开始将 AI 编码代理视为合同工人,而不是聊天窗口。区别不在于模型,而在于代理是否知道 要继续做什么、如何证明进展 和 何时停止。
这就是 /loop 和 /goal 重要的地方。
Claude Code 现在直接暴露了这两个概念:/goal 用于完成条件,/loop 用于在会话保持开放时重复提示。OpenAI Codex 有 /goal 作为文档命令,OpenAI 还将基于评估的改进循环记录为工作流程。重要的细节是:除非在您安装的命令列表中出现,否则我不会将 OpenAI Codex 描述为具有相同官方 /loop 斜杠命令。在我检查的当前文档中,/goal 是官方的;“loop” 是模式。
这种区别很重要,因为这些工具从外观上看相似,但我将它们用于不同的工作。
快速回答
当代理应追求一个持久的结果,直到一个明确的条件为真时,使用 /goal。
当代理应在会话保持开放时以间隔或自我节奏重复提示时,使用 /loop。
当输出可以被评分并反复改进时,使用基于评估的循环:代码质量、视觉质量、性能、SEO、迁移、测试或任何可以测量每次通过的任务。
实用规则很简单:目标需要终点;循环需要节奏;两者都需要验证。
Claude Code /goal 的作用
Claude 的命令参考将 /goal [condition|clear] 描述为设置条件的方式,以便 Claude 在轮次之间继续工作,直到满足该条件。钩子文档添加了一个有用的实现细节:/goal 的行为就像会话范围内停止条件的内置快捷方式。
用简单的英语来说,/goal 告诉 Claude:
这很强大,但前提是条件是具体的。
弱:
text /goal 使应用程序更好
有用:
text /goal 修复结账错误,保持所有现有支付行为不变,只有当 pnpm test、pnpm build 和 Playwright 结账路径都通过时才停止。
第二个版本给了 Claude 一个目标、边界和证明。它可以决定路径,但不能在过程中重新定义成功。
我使用 /goal 来处理如下工作:
一旦任务有多个无关的结果,我就不会使用一个大目标。我将其拆分。每个结果一个目标更清晰,更容易信任。
Claude Code /loop 的作用
Claude 的命令参考将 /loop [interval] [prompt] 列为一个捆绑技能。它在会话开放时重复运行提示。您可以给它一个间隔,让 Claude 自我节奏,或者省略提示,让它在可用时使用配置的维护提示。
这使得 /loop 感觉比 /goal 更具操作性。
示例:
text /loop 5m 检查 Vercel 预览部署是否准备好,然后验证 /blog 和 /api/health
text /loop 取 PRODUCTION_READINESS.md 中下一个未检查的项目,修复它,运行相关测试,然后更新检查清单
text /loop 每 10m 检查 CI,总结失败,只有在最新运行通过后才停止升级
最佳用例是重复检查或重复的小工作单元。在我的 混合 AI 代码审查循环→ 中,有用的模式不是“永远写”。而是:取一个检查清单项目,实施它,请另一个模型进行审查,运行构建,勾选框,重复。
这就是如果您写了一个懒惰的提示,/loop 变得危险的原因。如果提示没有说明要验证什么,代理可以继续做出看似合理的工作,而没有人应该信任它。
OpenAI Codex /goal 的作用
OpenAI 在应用程序和 CLI 中都记录了 Codex 的 /goal。Codex 指南将其框定为长期工作的持久目标,特别是当任务具有明确的成功条件和验证循环时。
Codex CLI 命令参考将 /goal 列为设置、暂停、恢复、查看或清除任务目标的命令。应用程序文档以产品术语表达同样的观点:目标是持久的、可见的,并且可以暂停或恢复。
一个好的 Codex 目标看起来几乎与一个好的 Claude 目标相同:
text /goal 完成 Next.js 16 的迁移,而不改变公共路由。只有当 pnpm build 通过、主页加载、/blog 加载,并且更改的路由返回 200 时才停止。
对于 Codex,我喜欢命名的目标:
OpenAI 对于困难问题的指导与我已经工作的方式非常接近:给 Codex 一个评估系统,进行有针对性的改进,重新运行评分,检查工件,并继续进行,直到得分足够好。
这就是代理工作的重要核心。不是为了自主而自主。自主与测量相结合。
OpenAI 是否有 /loop?
这就是人们在措辞上可能变得马虎的地方。
Claude Code 有一个文档化的 /loop 命令。OpenAI Codex 有文档化的循环样式工作流程:评估循环、修复循环、带验证的目标模式、钩子和自动化。但是在我检查的当前 Codex 斜杠命令参考中,我发现了 /goal、/plan、/review、/status、/mcp 和许多其他命令,而没有一个官方的 /loop 命令等同于 Claude 的。
所以我的措辞是:
这不是一个弱点。它只是改变了我如何设置它。在 Codex 中,我通常在目标或提示中表达循环:
text /goal 改进这个组件,直到视觉回归分数超过 95%。每次进行一个有针对性的更改,在每次更改后运行屏幕截图比较,保持分数日志,并在目标连续保持两次时停止。
这给了 Codex 相同的操作节奏,而不假装有一个单独的 /loop 斜杠命令。
我的实用设置
对于严肃的工作,我使用五层模式。
1. 一个书面目标
我从一个简短的计划或检查清单开始。它可以是 `PLAN.md`、`PRODUCTION_READINESS.md`、一个 GitHub 问题或一个普通提示。格式比可检查性重要得少。
一个弱任务说“改善文章系统”。
一个强任务说“当外部 URL 返回 404、软 404、错误的内容类型或重定向到错误目标时,防止发布;保持草稿保存允许;通过构建和一个有针对性的验证案例证明。”
这就是代理可以继续执行的指令。
2. 一个所有者模型
选择谁在主导。Claude 可能是实施者。Codex 可能是实施者。除非您有工作树或严格的交接,否则不要让两者同时编辑相同的文件。没有所有权的自主性会变成合并冲突的戏剧。
3. 第二意见
对于高风险工作,我仍然喜欢模型对模型的审查。我写过我的 AI 同行审查桥→,因为它捕捉到的失败模式与单个模型自我检查不同。
审查者可以是只读的。它不需要写入访问权限就能有用。它需要差异、目标、风险文件和说“这是错误的”的权限。
4. 一个严格的验证者
测试胜过信心。构建胜过摘要。浏览器截图胜过“它应该呈现”。日志胜过感觉。
对于网络工作,这通常意味着:
bash pnpm build pnpm lint pnpm test
加上路由检查、屏幕截图或 Playwright 流,当任务是面向用户时。
对于内容工作流程,我的偏好是在发布前进行 URL QA:不仅“链接是否返回 200”,而且“它是否到达文章声称的页面?”这就是同样的原则。验证者应该验证读者实际体验的内容。
5. 一个停止规则
这是人们跳过的部分。
没有停止规则的循环会变得昂贵。没有停止规则的目标会变得模糊。停止规则应该是无聊和字面上的:
最后一条很重要。好的代理不会隐藏不确定性。它们会将其显现出来。
我何时使用每一个
| 情况 | 最佳工具 | 原因 |
|---|---|---|
| --- | ---: | --- |
| 一个大型任务,具有明确的完成定义 | /goal | 代理可以继续朝着持久的最终状态前进 |
| 每几分钟检查一次部署状态 | Claude /loop | 相同的检查需要重复运行 |
| 根据得分改进生成的工件 | 评估循环 | 得分告诉代理上一次通过是否改进了任何内容 |
| 一项一项清理检查清单 | /loop 或 /goal | 对于重复项目使用 /loop,对于最终结果使用 /goal |
| 方向不确定的研究 | 普通提示或计划模式 | 在目标明确之前不要开始自主性 |
| 敏感的生产操作 | 人工批准门 | 代理可以准备操作,但不应默默执行它 |
复制粘贴提示
Claude Code /goal
text /goal 在不改变无关行为的情况下完成此错误修复。首先阅读 AGENTS.md 和相关的路由/组件文件。仅在逻辑中进行小提交,运行 pnpm build 和有针对性的回归路径,只有在原始错误不再重现且所有验证通过时才停止。
Claude Code /loop
text /loop 取 TODO.md 中下一个未检查的项目,首先检查真实文件,进行一个有针对性的修复,运行相关的验证命令,仅在验证后更新复选框,并报告任何阻塞,而不是跳过它
OpenAI Codex /goal
text /goal 完成 PLAN.md 中描述的迁移。保持公共行为,不改变无关文件,在每个里程碑后运行列出的验证命令,保持简短的进度日志,只有在每个里程碑完成且最终构建通过时才停止。
Codex 基于评估的循环提示
text 我希望这作为一个基于评估的改进循环。找到或创建评分输出的命令。每次进行一个有针对性的改进,在每次更改后重新运行评分,直接检查任何生成的工件,记录得分变化,并不断迭代,直到目标得分连续达到两次。如果得分停止提高,解释瓶颈并停止。
常见错误
第一个错误是将 /goal 用作激励句子。“让这个准备好生产”不是一个目标。它是一种情绪。
第二个错误是使用 /loop 而没有验证者。如果每次迭代都以未检查的声明结束,则循环只是重复。
第三个错误是将无关的工作捆绑在一起。“修复身份验证、重新设计仪表板、更新定价和清理 SEO”应该是四个任务,而不是一个英雄式的自主运行。
第四个错误是在代理理解仓库规则之前给予其写入访问权限。在我自己的项目中,我希望代理阅读 `AGENTS.md`、遵守部署规则、避免秘密,并在声称成功之前进行验证。围绕模型的控制层与模型本身同样重要。这就是为什么我不断回到 MCP 开发者工作流程→:工具、权限、证据和可重放的操作是将聪明的聊天转变为操作系统的关键。
真实要点
关于 /loop 和 /goal 的有趣之处不在于斜杠命令语法。有趣的是责任的转变。
一个普通的提示说:回答我。
一个目标说:完成这个,并知道完成意味着什么。
一个循环说:继续检查或改进,直到条件改变。
这就是我希望 AI 编码代理工作的方式。不是魔法。不是无人监督的混乱。作为有合同、验证者和清晰停止规则的工人。
如果您使用 Claude Code,/loop 是将重复的操作检查转变为代理可以处理的最快方式,同时您继续工作。/goal 是在工作具有一个持久的最终状态时更好的工具。
如果您使用 OpenAI Codex,/goal 为您提供持久的目标,而循环属于验证设计:测试、评估、工件、钩子、进度日志和代理无法安静重新定义的停止条件。
这就是我信任的模式:不是“让 AI 运行”,而是“让 AI 在一个可以告诉它不的系统内运行”。
