译者说明:译自 OpenAI 官方 Cookbook 中关于 Codex「目标」(Goals)的一篇。 这一篇的价值超出工具本身——它讲的是怎么定义「什么算做完了」,而那件事和交办任何一件活是同一个问题。
关于日期:Cookbook 是持续更新的仓库,页面上没有发布日期。本文的日期取自 OpenAI 官方 Cookbook 索引(
registry.yaml)里为这一篇登记的日期,也就是这份内容第一次被生产出来的时间。
原文最关键的一句对照:
普通指令说:接着做这件事。 目标说:一直做,直到这个结果成立。
目标是什么
它是挂在一次会话上的持续目标,跨多轮保持不变。原文用了一个词:完成契约。
一个目标要写清六样:
| 是什么 | |
|---|---|
| 结果 | 你想要的终态 |
| 验证面 | 用什么证据证明它成立(测试、跑分、产出物) |
| 约束 | 过程中哪些东西不许变差 |
| 边界 | 它可以碰哪些资源 |
| 迭代策略 | 一次没成,下一次怎么选做法 |
| 卡住的停止条件 | 什么情况下停下来报告,而不是继续硬试 |
第二条是整件事的重心。 没有验证面的目标,等于没有目标。
它改变了什么
原文说有三处变化:
① 目标一直在视野里。 中间某一轮结果不理想,它不会顺势跑偏——目标还在那儿。
② 可以从停下的地方自己接着做。 条件合适时,它能主动往下走一步。
③ 完成的判据变了。 这一条最重要:
一个目标只有在「对照具体证据核对过」之后才算完成,不是在模型觉得完成的时候。
什么时候不该用它
原文老实列了三种:
① 目标本身太虚。 「提升性能」不是目标——它没有终点线。 提升多少?用什么量?
② 一次性的活。 做完就该停的事,套一个持续目标只是多一层。
③ 把不确定藏起来的时候。 目标应该明说「这个数据拿不到」「这个证据只是近似」,而不是把这些含糊过去凑一个「达成」。
它故意不做的事
原文特别说明:这套设计刻意不给无限自主权。
目标限定在一次会话里、有预算上限、而且用户随时可以暂停、恢复、清除。
这个设计取向值得注意。 它没有把「能自己一直干下去」当成卖点,而是把边界写在了功能定义里。
为什么这一篇对不写代码的人也有用
因为「什么算做完了」是交办任何一件活都要回答的问题,而多数人交办的时候不回答它。
对照着看:
| 交办方式 | 完成的判据 |
|---|---|
| 「帮我看看这份材料」 | 没有判据。 他看完就算完 |
| 「帮我从这份材料里找出所有和 X 有关的说法,逐条列出来,标上出处」 | 有判据:每一条都能回到原文 |
第二种才是一个目标。 它有结果、有验证面(能不能回到原文)、有边界(只在这份材料里找)。
站上有一篇讲同一件事的:任务交办的六个要素。两篇的结构几乎一样——这不是巧合,是因为「怎么把一件活说清楚」这个问题,对人和对机器的答案是同一个。