用途
prompt-experiments 是 pangu.js 项目中的一个技能,用于运行或验证 pangu.js 的提示词实验、诊断模型分类失败,以及比较候选提示词。它明确排除将实验结果应用到生产环境——应用结果是另一项独立任务,需保持生产源码和提示词测试不变。
主要能力
该技能围绕一套结构化的实验流程展开,主要能力包括:
- 实验轮次管理:一轮实验包含多次候选迭代。从 REPORT.md 的当前状态条目和相关冻结提示词开始,搜索旧报告中的当前失败或假设,只读取匹配的发现。
- 语料与角色划分:使用已验证的真实文本作为示例、诊断、开发、确认和留出集。保持规范页面在示例、开发和留出集之间互不重叠,并记录暴露历史。
- 筛选循环:记录假设、预测效果、父变体和单一改变的提示词维度。在推理前冻结变体 ID、提示词字节和问题构建器。
- 确认与留出验证:候选通过筛选后,进行确认和留出阶段,这些阶段始终需要全新的配对比较。
- 验收门槛:定义了预检、筛选、确认、留出四个阶段各自需要的结果。
使用方式
技能提供了命令行参考中的现有辅助工具。辅助工具和持久轮次记录放在 scripts/prompt-experiments/ 下,原始输出放在 tmp/prompt-experiments/ 下。
在配置好的机器上进行推理时:
- 使用 scripts/prompt-experiments/.env.local。
- 复用现有的 pangu-eval 连接,或在将设置加载到环境后,通过
playwright-cli -s=pangu-eval attach --cdp="$PANGU_CDP_URL"将其附加到配置的 PANGU_CDP_URL。 - 先尝试已保存的连接,再检查 Chrome 设置或重新发现本地值;成功附加即完成连接设置。
检查通过后,使用 sweep.mjs 运行 shipping 和第一个冻结候选;从记录的下一比较处恢复现有轮次。
对于离线工作或诊断,使用 --check。辅助工具管理的输出会强制使用被忽略、未跟踪的目标位置。
适用场景
- 运行或验证 pangu.js 提示词实验。
- 诊断模型分类失败。
- 比较候选提示词。
- 对已完成的轮次进行审计。
- 在配置好的机器上进行推理。
限制
- 不适用于将结果应用到生产环境;这是独立任务。
- 生产源码和提示词测试保持不变。
- 合成夹具仅用于确定性实现测试,不用于示例、诊断、开发、确认和留出。
- 有争议的含义保持不计分;gold 不确定需要解释为什么确切的生产上下文不足。
- 留出文本和标签在冻结评估前保持在提示词编辑上下文之外。
- 如果留出证据指导调优,则结束该轮,将受影响页面移至开发,并保留新的留出集。
- 基础设施故障会使比较不完整;保留其产物并记录。修复后,在冻结协议下重复整个受影响的比较。
- 语义故障绝不重试直到通过。
- 解释可能是合理化,绝不作为准确性证据。
- 当合格候选表现相同时,优先选择较小的提示词。
- 如果两三次类似的措辞更改留下相同的失败,调查其他原因。
- 如果没有可信的新假设,结束该轮并记录瓶颈和支持证据。
验收门槛
- 预检:每个模型输入/示例都有已验证的真实来源和生产上下文;角色分离通过;计分集中没有未解决的标签。
- 筛选:候选保留每个基线通过的案例,并修复至少一个基线失败的案例(在其示例源页面之外);两次运行中都没有推理错误。
- 确认:同一规则在两次全新运行中独立成立,并且至少有一个相同的计分案例在两次中都是稳定改进;两次运行中都没有推理错误。
- 留出:候选保留每个基线通过的案例,并且通过的案例数至少与基线一样多;两次运行中都没有推理错误;不要求新的改进。
对于基线不稳定的案例,要求候选正确尝试次数在每个匹配运行中不低于基线。聚合收益不能抵消新的案例失败。分别报告目标、句子、页面和发布者计数;重复答案不是独立的源案例。
参考
Chrome 的评估指南描述了评估层、提示词示例的污染以及未见案例的最终评估。其生成合成数据的建议不适用于此工作流。
对于仅提示词更改,使用已检入的运行器及其记录的 API 选项。在更改依赖 API 的代码/选项或诊断未解决的 API 失败时,阅读当前 API 文档:Prompt API 用于模型会话,structured output 用于模式处理。当停滞的假设需要新证据时,研究提示词想法。