Prompt 评测(workflow)¶
适用读者
- 项目贡献者:希望把 prompt/规范类改动收敛为可复现的回归信号
- 需要在 CI 中观察(但暂不升级为门禁)的维护者
本仓库提供 prompt-eval 的确定性 core runner,用于对一组受控用例产出稳定的 PASS/FAIL 信号,并把结果写入受控目录供 CI 上传.
快速开始¶
just prompt-eval
CI/check 模式(确定性 core + 受控输出):
just prompt-eval-check
用例与产物¶
- 用例目录:
agentdev/prompt-eval/cases/ - 每个用例子目录包含
case.json(必需) - 可选:
patch.diff/ fixtures 等(由用例定义决定) - 输出目录:
.tmp/artifacts/prompt-eval/(每次运行会清理后重建) summary.json: runner/meta + 统计cases.jsonl: 逐用例结果failures.md: 失败摘要(用于快速定位)
LLM 套件(T0; promptfoo)¶
LLM 套件已接入 promptfoo(仅本地运行; 不是 just prompt-eval 的硬依赖)。
前置条件¶
- 本机安装
promptfoo且版本与 pin 一致:agentdev/prompt-eval/promptfoo/promptfoo-version.txt - 已设置 OpenAI 相关环境变量(例如
OPENAI_API_KEY)
运行¶
just prompt-eval-llm
为了避免误消耗 token,建议先 dry-run:
PROMPT_EVAL_LLM_DRY_RUN=1 just prompt-eval-llm
A/B: baseline vs candidate¶
用 git ref(标签/commit)做 baseline,与当前工作区(candidate)对拍,不需要 checkout/stash:
PROMPT_EVAL_LLM_BASELINE_REF=<tag-or-sha> just prompt-eval-llm
产物:
.tmp/artifacts/prompt-eval/llm/ab/baseline/.tmp/artifacts/prompt-eval/llm/ab/candidate/.tmp/artifacts/prompt-eval/llm/ab/compare.json
更多本地使用说明与省钱开关见: agentdev/prompt-eval/promptfoo/README.md
仓库外临时目录(避免 uv/.venv 冲突)¶
LLM 套件可以把产物写到仓库外(例如 /tmp)。
just prompt-eval-llm-tmp
Coding agent 套件(T1; 昂贵)¶
本仓库也提供了一个更昂贵的 coding-agent 套件(基于 promptfoo + agent provider; 低频回归用)。
PROMPT_EVAL_LLM_DRY_RUN=1 just prompt-eval-agent-tmp /tmp/scalim-prompt-eval-agent
详细说明见: Prompt 评测: Coding agent (T1)