返回全部文章
文章

怎样测试一个 Skill,而不是只看一次成功?

作者:

为周报 Skill 准备正常输入、缺失资料和相近但不同的任务,分别检查事实是否保留、Skill 是否实际加载。

一个 Skill 文件夹装着多张测试卡,其中一张标记了缺失输入

周报 Skill 第一次整理记录时表现不错。下一周,记录里出现一项没有负责人、尚未完成的工作。它会保留这些未知信息,还是为了把报告写完整,擅自补一个负责人?

一次成功,只能说明那次输入得到了什么结果。保存几组不同的材料,逐一检查输出是否符合原记录。也要另外记录 AI 有没有加载 Skill:报告写对了,与使用了这个文件包,是两件需要分别观察的事。

先固定一个可重复测试的版本

把下面的练习文件放进名为 weekly-report 的文件夹,并按当前客户端的说明安装。它沿用第一个周报 Skill 教程中的固定汇报规则。本例交付英文周报,因此规则也用英文。

---
name: weekly-report
description: Draft a factual weekly work report from supplied notes. Use when a user asks to turn work updates into a weekly status report.
---

# Weekly report

Read the notes supplied for this report. If there are no notes, ask for them. Return three sections: Completed, Waiting, and Next work. Keep finished work separate from plans and work still in progress. Do not invent a deadline, approval, owner, or result. Mark an important missing fact as not confirmed. Compare every report statement with the notes before returning it. Return a draft for review. Do not send or publish it.

修改前先保存这个版本。测试记录中写下日期、客户端及其显示的模型、Skill 版本或文件哈希、输入、实际输出和可见的加载记录。客户端不显示模型或加载过程,就记为无法获取。

Agent Skills 输出评估指南建议使用不同输入,并检查具体输出要求。比较有无 Skill 的效果时,把同一份输入分别放到干净的新会话中,其他设置尽量相同,否则不能把差异归因于 Skill。

先准备三种输出测试,再加一种选择测试

下面是作者编写的输入和验收标准,不是已安装客户端的实验结果。每个案例放到新会话,避免上一组事实影响下一组。

案例请求及材料检查什么
T1:正常记录“Use weekly-report to draft my report. Monday: budget draft completed. Wednesday: waiting for Lee's review. Friday: invitations planned after approval; date not agreed.”完成的是预算初稿;审核仍在等待;邀请有批准前提,日期未定
T2:资料不全“Use weekly-report to draft my report. The signup form still shows an error. A fix has been requested. No owner or deadline is recorded.”修复未完成;负责人和期限仍未确认
T3:没有记录“Use weekly-report to draft this week's report.”索要记录,不编造一周工作
T4:相近但不同的任务“Write an invitation email for Friday's workshop. Do not write a weekly report.”完成邀请邮件,不强套周报格式;检查是否无必要地加载 Skill

T1—T3 明确点名 Skill,用于检查提供了 Skill 后的行为。T4 测试选择是否合适,不要再额外点名调用。之后还应补充不提 Skill 名称的日常周报请求,检查需要时是否会选用。

T2 的参考表述可以是:“Next work: fix the signup-form error; a fix has been requested, but the owner and deadline are not confirmed.” 如果写成“The form was fixed by Alex on Thursday”,就在完成状态、负责人和日期三处新增了事实。措辞再顺,也不能抵消这些错误。

检查意思,不要求逐字相同

把可核对的要求分开:完成的是预算初稿,没有确认批准,邀请日期未确定,没有实际发送。报告不必使用你偏好的固定句子,但状态和前提必须一致。

真实跑完后,可以按这张记录填写:

案例:T2
Skill 加载:已观察到 / 未观察到 / 无法获取
完成状态保留:通过 / 失败,附输出片段
负责人和期限仍为未知:通过 / 失败,附输出片段
外部动作:无 / 观察到的动作
输出判断:接受 / 修改

加载依据应是文件读取记录或客户端提供的其他证据,不能只靠 AI 自称“用了 Skill”。没有加载记录,即使报告事实正确,也不能确定选择过程。描述测试指南把实际加载视为检查触发的观察点。

修一条失败规则,再重跑已保存的案例

如果 T2 编造负责人,就补上针对缺失负责人的规则,再重跑 T1—T3,而不是只跑 T2。新规则可能破坏原先正确的案例。再换一组姓名和情境,用另一种措辞测试,避免规则只是记住原句。

重要案例要重复运行,因为一次表现不一定代表下一次。记录实际运行次数和结果,把加载失败与输出失败分开。小型练习足以帮助发现具体缺陷,却不能证明 Skill 普遍可靠,或一定优于保存一条普通 Prompt。

参考资料