一文搞懂如何在Codex中使用goals
一文搞懂如何在Codex中使用goals
一文搞懂如何在Codex中使用goals 一文搞懂如何在Codex中使用goals Modified May 24 图 . 强目标命名最终状态、验证面和约束 如果任务清楚但还不知道怎么写Goal,也可以让Codex来帮写。先用普通语言描述工作,让Codex把它转成Goal草稿;再审查草稿,收紧成功条件、验证方法、约束和阻塞停止条件,然后再激活。 Goal激活后,三件事会改变 第一,目标持续可见。 如果Codex跑了一个测试、失败了,线程里还有原始目标。如果benchmark提升了但没过阈值,Codex可以继续。如果研究路径碰到了数据缺失,Codex可以调整证据计划,不会丢失研究标准。 第二,可以从空闲线程继续。 Codex不会在另一轮还在跑的时候继续,不会在用户输入排队的时候继续,不会在有其他线程工作待处理的时候继续。只有在线程空闲、目标激活、在预算内时才继续。 第三,完成必须有证据。 Goal不应该因为模型觉得"大概差不多了"就被标记为完成。只有把目标和具体证据对照检查之后,比如文件改动、命令运行、测试通过、benchmark输出、生成产物或研究证据,才能标完成。 Goals的内部设计 Goals是持久化的线程状态,不是全局记忆,也不是项目级指令。设计上的这个选择很重要:目标属于有相关上下文的那个线程,包括Codex检查过的文件、跑过的命令、产出的diff、看到的日志、积累的推理链。 图 2 目标为当前线程添加持久状态、延续、控制和证据检查 在架构层,Goal是一个持久的、线程范围内的状态。它记录了Codex评估线程所需的目标、生命周期、预算和进度。关键边界是范围:Goal属于当前线程,不属于全局记忆或项目指令。 Codex把这个状态作为用户、模型、线程三者之间的合约。Goal可以处于激活、暂停、完成或达预算上限等状态。这些状态决定了Codex是否可以继续、是否应该等用户、还是应该汇总进度而不是开始新工作。 继续是事件驱动的,不是简单的循环。Codex只在安全边界处检查是否继续:一轮结束后、没有其他待处理工作时、没有用户输入排队时、线程空闲时。 图 . Codex 仅在目标处于活动状态、线程处于空闲状态且没有用户输入排队时才会继续运行 调度器的行为是有意保守的。纯规划工作不触发继续。被打断会暂停目标。恢复线程时,可以在适当情况下恢复目标。如果某次继续没有产生任何工具调用,下一次自动继续会被抑制,防止Codex空转。 预算处理是明确的。达到预算上限时,Codex应该停止实质性工作,汇总进度和阻塞点,并指出下一步有用的行动。达到预算上限不等于完成目标。 工具合约让生命周期权限保持在边界内。模型可以发起Goal,也可以在证据支持的情况下将现有Goal标记为完成。暂停、恢复、清除和预算限制的状态转变,由用户或系统控制。 用Goals做复杂研究:复现一篇量化论文 来看一个具体的研究Goal示例。 研究对象是Buehler、Gonon、Teichmann和Wood的Deep Hedging论文。这篇论文探讨神经交易策略能否在不同风险偏好、交易成本和更高维度市场配置下复现基于模型的对冲。正确的Goal不是笼统地"复现这篇论文",而是尝试论文的核心数值结论,把精确的机制与近似训练替代品分开,并明确说明哪些内容因为材料不足而无法精确复现。 弱版本: Code block Plain Text Copy /goal 复现 Buehler 等人的《Deep Hedging》 这太模糊了。没有说哪个部分重要,什么算复现,怎么处理训练状态不可用的情况,怎么区分数值接近和精确重现。 更好的版本: Code block Plain Text Copy /goal 利用现有论文材料和本地资源,对 Buehler 等人的《Deep Hedging》进行最强证据支持的复现。 尝试每一个主要结果,验证输出,最终形成一份报告,将复现成功的工作机制、近似训练结果、被阻断的精确复现路径及剩余不确定性区分开来说明 强版本有效,因为它指定了证据标准和最终产出物。Codex不只是在尝试做一个令人印象深刻的复现,它是在用现有证据尽量减少不确定性,同时不夸大证据所能支持的结论。 图 一个研究目标在声明状态之前,先将论文分解为多个证据通道 在实际操作中,这个Goal给调查提供了一个具体的操作合约。 Codex用它来: • • 分离核心结论与支撑性结论 • • 把这些结论映射到可用证据上 • • 重建可以在本地测试的部分 • • 标注哪些结论因缺乏可用材料而无法精确复现 有几个部分是可行的。Codex重建了定价和对冲机制,复现了Heston参考价格,训练了CVaR对冲实验的策略,重建了主要的直方图和对冲面产出物,复现了Black Scholes交易成本斜率,并为Heston交易成本和高维示例运行了训练检查。 有些结论因缺少源材料而无法完成。论文没有提供精确的随机种子、生成的训练路径、TensorFlow计算图、优化器状态、检查点或完整的原始模拟状态。这意味着最终最诚实的结果是部分和近似的复现,而不是精确的神经网络重现。 这就是Goal的价值所在。它让工作在遇到阻塞后继续推进,同时也让最终语言保持诚实。训练替代品可以支持一个结论,数值接近可以提升置信度,重建的图表可以验证部分结果,但这些都不应该被描述为精确还原了原始实验。 最终报告应该保留这些不同层次的支撑,而不是把它们压平成一个单一的"成功"声明。 图 最终输出的内容,应明确区分各项结论背后有不同强度的证据支撑 举个账目条目的例子: Code block Plain Text Copy 结论:在没有交易成本的情况下,深度对冲近似了完全市场Heston对冲。 路径:重建了模型机制,进行了参考对冲比较,训练了神经策略。 证据来源:价格检验、直方图和对冲面。 状态:接近近似复现。 剩余不确定性:原始训练路径、种子和检查点不可用。 这就是Goals在研究中的示范价值。它让Codex在模糊中持续工作,同时防止一个似乎合理的产出物变成一个过度声明的结论。Goal不只是让Codex把事情做完,它定义了"做完"意味着什么:对每个结论逐一审计,有证据支撑,明确近似之处,并对复现和重现之间的边界保持诚实。 什么时候不该用Goals Goals不适合所有任务。 不要对一行代码的修改用Goal,不要对简单解释用Goal,不要对短小的代码评审用Goal,不要对你只想要一个答案然后停下来的问题用Goal。普通的Codex prompt更适合这些情况。 不要在终点线模糊的时候用Goal。"把这个做得更好"没有给Codex可靠的完成条件。"重构这段代码"也很弱,除非你定义了预期的最终状态、测试和约束。 不要用Goal来掩盖不确定性。如果数据可能不可用,在Goal里说清楚。如果benchmark可能不稳定,说明怎么处理。如果允许用代理证据,定义它应该怎么标注。 Goals在三个特性同时具备时最有力:有持久目标,有基于证据的完成线,以及路径可能需要多轮调查。 总结一下 Goals改变了Codex的运作模式。它把一个线程从一连串孤立的prompt变成了围绕着明确结果的有状态工作循环。 架构上是有意限制的。Goal属于线程范围,带有生命周期状态和预算,可以暂停、恢复、清除、完成或被预算停止。Codex可以继续工作,但只能在用户定义的合约范围内。 这让Goals对Codex最有价值的工作最有用:调试、优化、迁移、测试和研究。用户提供目标,Codex跟着证据走,Goal让两者保持连接,直到工作要么完成,要么诚实地宣告受阻。 对于复杂研究,这是生成一个答案和产出一份审计报告之间的区别。好的Goal不只是让Codex把事做完,它告诉Codex"做完"是什么意思。 end 最后记得⭐️我,每天都在更新:如果觉得文章还不错的话可以点赞转发推荐评论 /...@作者:你说的完全正确(YAR师) 图 . 强目标命名最终状态、验证面和约束 如果任务清楚但还不知道怎么写Goal,也可以让Codex来帮写。先用普通语言描述工作,让Codex把它转成Goal草稿;再审查草稿,收紧成功条件、验证方法、约束和阻塞停止条件,然后再激活。 Goal激活后,三件事会改变 第一,目标持续可见。 如果Codex跑了一个测试、失败了,线程里还有原始目标。如果benchmark提升了但没过阈值,Codex可以继续。如果研究路径碰到了数据缺失,Codex可以调整证据计划,不会丢失研究标准。 第二,可以从空闲线程继续。 Codex不会在另一轮还在跑的时候继续,不会在用户输入排队的时候继续,不会在有其他线程工作待处理的时候继续。只有在线程空闲、目标激活、在预算内时才继续。 第三,完成必须有证据。 Goal不应该因为模型觉得"大概差不多了"就被标记为完成。只有把目标和具体证据对照检查之后,比如文件改动、命令运行、测试通过、benchmark输出、生成产物或研究证据,才能标完成。 Goals的内部设计 Goals是持久化的线程状态,不是全局记忆,也不是项目级指令。设计上的这个选择很重要:目标属于有相关上下文的那个线程,包括Codex检查过的文件、跑过的命令、产出的diff、看到的日志、积累的推理链。 图 2 目标为当前线程添加持久状态、延续、控制和证据检查 在架构层,Goal是一个持久的、线程范围内的状态。它记录了Codex评估线程所需的目标、生命周期、预算和进度。关键边界是范围:Goal属于当前线程,不属于全局记忆或项目指令。 Codex把这个状态作为用户、模型、线程三者之间的合约。Goal可以处于激活、暂停、完成或达预算上限等状态。这些状态决定了Codex是否可以继续、是否应该等用户、还是应该汇总进度而不是开始新工作。 继续是事件驱动的,不是简单的循环。Codex只在安全边界处检查是否继续:一轮结束后、没有其他待处理工作时、没有用户输入排队时、线程空闲时。 图 . Codex 仅在目标处于活动状态、线程处于空闲状态且没有用户输入排队时才会继续运行 调度器的行为是有意保守的。纯规划工作不触发继续。被打断会暂停目标。恢复线程时,可以在适当情况下恢复目标。如果某次继续没有产生任何工具调用,下一次自动继续会被抑制,防止Codex空转。 预算处理是明确的。达到预算上限时,Codex应该停止实质性工作,汇总进度和阻塞点,并指出下一步有用的行动。达到预算上限不等于完成目标。 工具合约让生命周期权限保持在边界内。模型可以发起Goal,也可以在证据支持的情况下将现有Goal标记为完成。暂停、恢复、清除和预算限制的状态转变,由用户或系统控制。 用Goals做复杂研究:复现一篇量化论文 来看一个具体的研究Goal示例。 研究对象是Buehler、Gonon、Teichmann和Wood的Deep Hedging论文。这篇论文探讨神经交易策略能否在不同风险偏好、交易成本和更高维度市场配置下复现基于模型的对冲。正确的Goal不是笼统地"复现这篇论文",而是尝试论文的核心数值结论,把精确的机制与近似训练替代品分开,并明确说明哪些内容因为材料不足而无法精确复现。 弱版本: 这太模糊了。没有说哪个部分重要,什么算复现,怎么处理训练状态不可用的情况,怎么区分数值接近和精确重现。 更好的版本: 强版本有效,因为它指定了证据标准和最终产出物。Codex不只是在尝试做一个令人印象深刻的复现,它是在用现有证据尽量减少不确定性,同时不夸大证据所能支持的结论。 图 一个研究目标在声明状态之前,先将论文分解为多个证据通道 在实际操作中,这个Goal给调查提供了一个具体的操作合约。 Codex用它来: • • 分离核心结论与支撑性结论 • • 把这些结论映射到可用证据上 • • 重建可以在本地测试的部分 • • 标注哪些结论因缺乏可用材料而无法精确复现 有几个部分是可行的。Codex重建了定价和对冲机制,复现了Heston参考价格,训练了CVaR对冲实验的策略,重建了主要的直方图和对冲面产出物,复现了Black Scholes交易成本斜率,并为Heston交易成本和高维示例运行了训练检查。 有些结论因缺少源材料而无法完成。论文没有提供精确的随机种子、生成的训练路径、TensorFlow计算图、优化器状态、检查点或完整的原始模拟状态。这意味着最终最诚实的结果是部分和近似的复现,而不是精确的神经网络重现。 这就是Goal的价值所在。它让工作在遇到阻塞后继续推进,同时也让最终语言保持诚实。训练替代品可以支持一个结论,数值接近可以提升置信度,重建的图表可以验证部分结果,但这些都不应该被描述为精确还原了原始实验。 最终报告应该保留这些不同层次的支撑,而不是把它们压平成一个单一的"成功"声明。 图 最终输出的内容,应明确区分各项结论背后有不同强度的证据支撑 举个账目条目的例子: 这就是Goals在研究中的示范价值。它让Codex在模糊中持续工作,同时防止一个似乎合理的产出物变成一个过度声明的结论。Goal不只是让Codex把事情做完,它定义了"做完"意味着什么:对每个结论逐一审计,有证据支撑,明确近似之处,并对复现和重现之间的边界保持诚实。 什么时候不该用Goals Goals不适合所有任务。 不要对一行代码的修改用Goal,不要对简单解释用Goal,不要对短小的代码评审用Goal,不要对你只想要一个答案然后停下来的问题用Goal。普通的Codex prompt更适合这些情况。 不要在终点线模糊的时候用Goal。"把这个做得更好"没有给Codex可靠的完成条件。"重构这段代码"也很弱,除非你定义了预期的最终状态、测试和约束。 不要用Goal来掩盖不确定性。如果数据可能不可用,在Goal里说清楚。如果benchmark可能不稳定,说明怎么处理。如果允许用代理证据,定义它应该怎么标注。 Goals在三个特性同时具备时最有力:有持久目标,有基于证据的完成线,以及路径可能需要多轮调查。 总结一下 Goals改变了Codex的运作模式。它把一个线程从一连串孤立的prompt变成了围绕着明确结果的有状态工作循环。 架构上是有意限制的。Goal属于线程范围,带有生命周期状态和预算,可以暂停、恢复、清除、完成或被预算停止。Codex可以继续工作,但只能在用户定义的合约范围内。 这让Goals对Codex最有价值的工作最有用:调试、优化、迁移、测试和研究。用户提供目标,Codex跟着证据走,Goal让两者保持连接,直到工作要么完成,要么诚实地宣告受阻。 对于复杂研究,这是生成一个答案和产出一份审计报告之间的区别。好的Goal不只是让Codex把事做完,它告诉Codex"做完"是什么意思。 end 最后记得⭐️我,每天都在更新:如果觉得文章还不错的话可以点赞转发推荐评论 /...@作者:你说的完全正确(YAR师) 🔗 原文链接: https://mp.weixin.qq.com/s/q7WlpIOR... https://mp.weixin.qq.com/s/q7WlpIOR... 原创 你说的完全正确 你说的完全正确 AI寒武纪2026年5月19日 10:18 江苏 ↑阅读之前记得关注+星标⭐️,😄,每天才能第一时间接收到更新 OpenAI发了一篇关于在 Codex 中使用Goals的很好的文章。 简单来说这篇文章讲的是何时使用Goals、Goals激活时会发生哪些变化,以及如何编写Goals,以便为 Codex 提供清晰的结果、约束和验证标准。如果你感兴趣的话,还可以了解一下在架构层面上是如何设计Goals的 文章中的用goals来复现论文的例子我觉得非常有用,很多人应该对这个有强烈需求,这对科研来说简直太有用了。 原文: https://developers.openai.com/cookbook/examples/codex/using goals in codex Goals是什么 Goals是Codex里的持久目标机制。 普通的prompt是一次性的:你说做什么,Codex做完,等你下一条指令。Goals不一样,它给Codex一个持续有效的完成条件:任务什么时候算做完,怎么验证,过程中什么不能动。 图 1 Goal 把一次性对话变成了一个持续循环——每一步都有证据校验 只要目标还在、还在预算内,Codex可以自己检查进度、决定下一步,不需要你每轮重复一遍目的。 Codex原本就能处理边界清晰的任务:看代码、修bug、写测试、解释报错。Goals针对的是另一类任务:下一步该怎么做,取决于上一步发现了什么。比如性能调优、不稳定测试排查、依赖迁移、需要复现的bug、多步重构、基于benchmark的调参,或者要产出最终文档的研究任务。 这类任务不需要更长的prompt,需要的是一个持久的目标。 Goals不是放任AI无边界自主运行。它是一个有范围、用户可控的完成合约。你定义结果,Codex对着线程里的证据工作,目标可以暂停、恢复、清除、完成,也可以被预算限制住。 怎么用 Goals从Codex 0.128.0开始支持。目前只支持codex cli,更新到最新版,/experimental 用npm安装或更新: 用Homebrew: 设置目标,用 /goal 加上你想达到的结果: 生命周期管理命令: 目标激活后,Codex可以自己看代码、跑相关命令、做修改、测结果,一直到达到停止条件为止。停止条件包括:成功完成、暂停、清除、被打断、达到预算上限、或者遇到需要用户介入的阻塞点。 Goals和普通prompt的区别 普通prompt:你说做这件事,Codex做,汇报结果,等待。 Goals:Codex工作,检查是否达标,继续或完成。 区别就在这里。普通请求里,Codex做完当前指令,等下一条。Goals让Codex有一个持续附在线程上的目标。每轮结束后,它能检查当前证据,判断目标是否达成。如果没有,且目标仍然激活、仍在预算内,Codex从最新状态继续。 举个例子: 这不只是一个"提升性能"的请求。它给了Codex一个可测量的结果、一个验证方法、一个约束条件。Codex可以跑benchmark,检查热路径,做针对性修改,重跑benchmark,跑正确性测试套件,如果结果还不达标就继续。 怎么写一个好的Goal 好的Goal不是更长的prompt,是一个关于Codex怎么工作、什么算成功、成功暂时无法达到时怎么办的精简合约。 强Goal通常定义六件事: 结果 :工作完成时应该是什么状态 验证方法 :用什么来证明,比如测试、benchmark、报告、产出物、命令输出、源材料 约束 :Codex工作期间什么不能退化 边界 :Codex可以用哪些文件、工具、数据、仓库或资源 迭代策略 :每次尝试后,Codex怎么决定下一步试什么 阻塞停止条件 :什么时候应该停下来,告知当前限制下没有可行路径 一个实用的写法模板: 比较一个弱Goal和一个强Goal: 弱版本: 强版本: 强版本里,如果p95从180ms降到135ms,Goal还没完成。如果延迟降到120ms以下但正确性测试挂了,Goal也没完成。如果benchmark跑不起来,Codex必须把这个阻塞报上来,而不是宣布成功。 同样的原则适用于生成产出物。 弱: 强: 第二个Goal给了Codex可以检查的东西:一个页面、一个构建命令、命令行为。