English
主导航
Codex

Codex 用例

迭代解决疑难问题

将 Codex 用作打分的改进循环来解决难题。

难度 高级
时间周期 长时间运行

为 Codex 提供一个评估系统,例如脚本和可审查的产物,这样它就能不断改进一项艰难的任务,直到得分足够好。

适用场景

  • 适用于每次迭代都可以打分,但最佳结果通常需要多次循环的问题
  • 适用于输出结果带有视觉性或主观性,需要同时进行确定性检查和 LLM-as-a-judge(作为评判者的 LLM)评分的任务
  • 适用于长时间的 Codex 会话,你希望清晰地追踪进度,而不是仅仅依赖上下文

目录

    ← 所有用例

    迭代解决疑难问题

    将 Codex 用作打分的改进循环来解决难题。

    为 Codex 提供一个评估系统,例如脚本和可审查的产物,这样它就能不断改进一项艰难的任务,直到得分足够好。

    高级
    长时间运行

    为 Codex 提供一个评估系统,例如脚本和可审查的产物,这样它就能不断改进一项艰难的任务,直到得分足够好。

    高级
    长时间运行

    适用场景

    • 适用于每次迭代都可以打分,但最佳结果通常需要多次循环的问题
    • 适用于输出结果带有视觉性或主观性,需要同时进行确定性检查和 LLM-as-a-judge(作为评判者的 LLM)评分的任务
    • 适用于长时间的 Codex 会话,你希望清晰地追踪进度,而不是仅仅依赖上下文

    起始提示词

    我在这个工作区中有一项困难的任务,希望你将其作为一个由评估驱动的改进循环来运行。在修改任何内容之前:- 阅读 `AGENTS.md`。- 找到为当前输出打分的脚本或命令。迭代循环:- 每次只进行一项重点改进。- 在每次实质性更改后重新运行评估命令。- 记录分数和更改内容。- 直接检查生成的产物。如果输出是视觉性的,请使用 `view_image`。- 持续进行,直到总分和 LLM 平均分均高于 90%。约束条件:- 不要在出现第一个可接受的结果时就停止。- 不要回退到较早的版本,除非新结果在分数或产物上明显更差。- 如果评估有所改善但仍低于目标,请解释瓶颈所在并继续。输出:- 当前最佳分数- 主要迭代的日志- 残余风险或薄弱环节
    我在这个工作区中有一项困难的任务,希望你将其作为一个由评估驱动的改进循环来运行。在修改任何内容之前:- 阅读 `AGENTS.md`。- 找到为当前输出打分的脚本或命令。迭代循环:- 每次只进行一项重点改进。- 在每次实质性更改后重新运行评估命令。- 记录分数和更改内容。- 直接检查生成的产物。如果输出是视觉性的,请使用 `view_image`。- 持续进行,直到总分和 LLM 平均分均高于 90%。约束条件:- 不要在出现第一个可接受的结果时就停止。- 不要回退到较早的版本,除非新结果在分数或产物上明显更差。- 如果评估有所改善但仍低于目标,请解释瓶颈所在并继续。输出:- 当前最佳分数- 主要迭代的日志- 残余风险或薄弱环节

    简介

    有些任务很容易一次性验证:构建通过,测试变绿,你就完成了。但是有些优化问题很难解决,需要在紧凑的评估循环中进行多次迭代。为了明确改进的方向,Codex 需要检查当前输出,对其进行评分,决定下一步的修改,然后重复这个过程,直到结果真正变好。

    这种类型的用例非常适合与自定义 UI 搭配使用,让你可以通过让 Codex 记录每次迭代的输出和生成的产物,来直观地检查进度。你可以看着 Codex 在应用中继续工作,同时目标产物、模型输出或生成的资产不断得到改进。关键在于为 Codex 提供必要的脚本以生成评估指标,以及用于检查的产物。

    从评估开始

    在任务开始之前,定义衡量成功的标准。最佳的设置通常会结合:

    • 确定性检查: 脚本可以直接评分的内容,例如约束违规或使用代码计算的确定性指标
    • LLM-as-a-judge(LLM 作为评判者)检查: 针对难以精确编码的特质进行基于评分标准的打分,例如相似度、可读性、有用性或整体质量——这可以依赖于文本或图像输出

    如果主观部分很重要,请为 Codex 提供一个可以调用模型的脚本,例如使用 Responses API 并返回结构化的分数。重点不是要取代确定性检查,而是用一个一致的评判者来补充它们,以处理那些原本需要人类用肉眼评估的部分。

    当评估输出易于机器读取、在每次运行后都会保存,并且易于随时间进行比较时,这种循环的效果最好。

    提示: 要求 Codex 为你生成评估脚本,描述你想运行的检查。

    为 Codex 设定停止规则

    困难的任务经常会出现偏离,因为提示词只说了“不断改进”,却没有说明何时停止。请明确设定停止规则。

    A practical pattern is:

    1. 为总分设定一个目标。
    2. 为 LLM 评判平均分单独设定一个目标。
    3. 告诉 Codex 继续运行,直到两者都高于阈值,而不仅仅是其中一个。

    例如,如果目标是获得高质量的产物,请要求 Codex 持续运行,直到总分和 LLM 平均分均高于 90%。这能让任务变得清晰:Codex 可以判断自己是否仍低于目标,差距在哪里,以及最新的更改是否有所帮助。

    维护循环的持续运行日志

    当 Codex 对循环进行记录,而不是试图从会话线索中记住所有内容时,长时间运行的工作会变得更加可靠。

    该持续运行日志应记录:

    • the current best scores
    • 上一次迭代更改了什么
    • 评估显示哪些方面变好或变差了
    • Codex 下一步计划尝试什么

    当任务运行很长时间时,这一点尤为重要。该日志会成为下一次会话的交接点,以及当前会话的自我评估记录。

    检查产物,而不仅仅是日志

    对于某些困难的任务,代码差异和指标输出是不够的。Codex 应该查看它生成的产物。

    如果输出是视觉性的(例如生成的图像、布局或渲染状态),请让 Codex 直接检查该产物,例如当输出以磁盘上的图像形式存在时,将当前结果与之前的最佳结果或预期的评分标准进行比较。

    这会让循环变得更强大:

    • 评估脚本报告分数
    • 产物展示了分数遗漏的内容
    • 下一步的更改会基于两者进行考量

    这种组合比在运行之间盲目更改代码要有效得多。

    让每一次迭代都明确

    要求 Codex 每次都遵循相同的循环:

    1. 在当前基线上运行评估。
    2. 从分数和产物中找出最大的失败模式。
    3. 进行一项针对性的更改,以解决该瓶颈。
    4. 重新运行评估。
    5. 记录新的分数以及该更改是否有帮助。
    6. 继续,直到满足阈值要求。

    这种纪律性至关重要。如果每次迭代同时更改太多内容,Codex 将无法判断是哪个想法提升了分数。如果它跳过了日志记录,会话就会变得难以信任,也难以恢复。

    相关用例