概览
让 Codex 检查你的 AI 应用,识别你想要评估的行为,并添加一个可运行的 Promptfoo eval 套件。
适合场景
- 已经具备提示词、模型调用、工具、检索、代理或产品需求,但还没有可重复执行的 eval 套件的 AI 应用。
- 准备变更模型、提示词、检索或代理,并希望在 pull request 合并前先做好回归测试的团队。
- 需要将重复性的人工检查转化为已提交 eval 用例的质量评审场景。
在更改行为之前添加 Evals
使用 $promptfoo-evals 为这个 AI 应用添加一个 Promptfoo eval 套件。如果当前还没有可用的 Promptfoo provider 或 target adapter,请先使用 $promptfoo-provider-setup。 要评估的行为:[支持回答质量 / tool-call 正确性 / 检索依据性 / 业务规则 / agent 任务完成情况] 编辑前: - 检查用户实际会经过的应用路径,以及任何现有的 evals 或测试。 - 提出最小但有用的 eval 方案:target adapter、初始用例、断言、文件、命令,以及所需的环境变量或本地服务。 - 在基线 eval 建立并运行之前,不要更改生产提示词、模型设置或应用行为。 要求: - 尽可能覆盖用户实际会经过的应用路径,而不只是原始模型提示词。 - 保持夹具数据不包含密钥、客户数据和敏感个人数据。 - 添加本地 eval 命令,例如 `npm run evals`,或记录准确的运行命令。 最后请给出: - 修改的文件 - 已运行的 eval 命令 - 通过和失败的用例 - 建议接下来添加的 evals
建议推理强度:中
简介
当你在构建一个 AI 应用,或对现有应用进行更改时,你会希望确保它的行为符合预期。Evals 是一种系统化测试一组场景、并在发布前发现回归问题的方法。
你可以使用 Promptfoo 在你的 AI 应用上运行 evals,并借助 Codex 帮助你创建和维护这些 evals。
如何使用
将 Codex 与 Promptfoo 插件中的 $promptfoo-evals skill 配合使用,把某个 AI 应用行为转化为可重复执行的 eval 套件。当应用还没有可用的 Promptfoo target 时,$promptfoo-provider-setup 可以帮助你把套件连接到你想测试的应用路径。
Codex 可以检查应用、提出高价值用例、添加 Promptfoo 配置和测试数据、在本地运行套件,并给你一个可持续使用的命令。
这个用例最适合行为足够具体的场景:支持回答质量、检索依据性、分类器标签、工具调用、JSON 结构、业务规则,或提示词与模型迁移的信心验证。
一个强有力的首版结果应当是可审查的代码和测试数据:promptfooconfig.yaml 或等效配置、一个小型 evals/ 目录、测试用例、调用应用所需的 target adapter,以及一个本地命令,例如 npm run evals。
选择要评估的内容
从一个用户可感知的承诺开始。不要让 Codex 一次性评估整个 AI 系统。更小的套件更容易建立信任、审查并持续运行。
好的首批目标包括:
- 正确性: 分类、抽取、摘要、路由或转换。
- 依据性: 回答应始终与检索到的文档或引用来源保持一致。
- 工具使用: 选择正确工具、传递有效参数,以及处理工具错误。
- 格式或业务规则: JSON schema、字段名、业务规则限制,或面向 UI 的文案契约。
- 提示词或模型迁移: 确保新的提示词、模型、system message 或检索设置不会破坏重要用例。
可以从产品需求、缺陷报告、支持升级问题,或你的团队愿意安全提交到仓库中的脱敏示例入手。
请求一个 eval 方案
Codex 应当先检查再编辑。请求一个明确列出目标路径、夹具数据、断言、adapter 和命令的方案。这样在添加文件之前,你就有机会发现目标选错了,或者测试用例太弱。
在实现前审查这个方案。它应该说明 Promptfoo 将调用的应用路径或端点、第一批初始用例、断言、Codex 将创建的文件、本地命令,以及任何必需的密钥或服务。如果这个方案测试的是原始模型,而不是用户实际会经过的应用路径,请询问 Codex 这是否是有意为之。
实现、运行和迭代
一旦方案正确,就让 Codex 去实现。第一次实现应当尽量朴素:配置、用例、夹具数据、必要时的 target adapter、命令,以及命令已运行的证明。
一个由应用驱动的小型套件可能如下所示:
evals/
promptfooconfig.yaml
tests/
cases.yaml
providers/
provider.js # only if the built-in provider cannot call the app directly在更改行为之前先运行套件。这个基线会告诉你:应用是否已经无法通过这些用例、断言是否需要调整,或者 target adapter 是否有误。当断言过于脆弱或模糊时,要进行调整,但也要让真实的产品失败保持可见。
第一次运行之后,在应用发布前使用这个套件比较变更效果。每当 bug、上线要求或产品评审暴露出某些你希望保持稳定的行为时,就添加新的用例。一旦本地命令稳定下来,就让 Codex 把它加入 CI 或你的发布检查清单中。
