mochi-agent-eval-kit(Agent Response Regression Kit)适合给已经记录下来的 Agent 回复做快速回归检查:某段文字是否包含必需片段、是否泄露禁止片段,或是否与指定字符串完全相等。它不运行 Agent、不调用模型,也不判断语义、事实或任务是否真正完成。把它当成离线文本断言器,而不是完整的 Agent 评测平台。[1]
安装前先区分它能测什么
候选发布包版本为 1.0.0,标注 MIT-0;需要 OpenClaw CLI 和 Python 3.10 或更高版本,运行辅助脚本只使用 Python 标准库。安装命令应在终端中运行:
openclaw skills install @hznetnewpower/mochi-agent-eval-kit --version 1.0.0
openclaw skills list
openclaw skills check
OpenClaw 的 CLI 文档支持按 owner/slug 安装并指定版本;list 可查看本地 Skill,check 用于发现缺少的依赖或配置。[2] 如果安装提示来源策略或信任警告,先停下来阅读包中的 SKILL.md 和脚本再决定;不要用 --force 一类参数绕过告警。确认 Skill 出现在列表中后,在 OpenClaw 对话里说明你要检查已有记录,并要求它使用该 Skill,而不是让它伪称自己已跑过模型。
用一条合成回复完成第一次检查
第一步是准备已脱敏的 JSON。下面是教程示例,不是真实账户数据,也不是本站运行结果:
{
"cases": [
{
"id": "timezone-label",
"actual": "The report runs at 09:00 UTC.",
"mustContain": ["09:00 UTC"],
"mustNotContain": ["API_KEY"]
},
{
"id": "exact-status",
"actual": "done",
"exact": "done"
}
]
}
字段 actual 是要检查的原始回复文本;每条 case 需要唯一 id,并至少提供 mustContain、mustNotContain 或 exact 中的一种。字符串断言是精确子串/相等判断,不会理解同义表达。示例里的“09:00 UTC”必须按原样出现才算包含通过。
把文件保存为当前 Agent workspace 中的 request.json。在 OpenClaw 对话里可以这样要求它准备并检查:
Use mochi-agent-eval-kit to check the two sanitized reply fixtures in request.json.
Run only the local evaluator from the installed skill. Show the exit status, per-case result, report path, and any failed expectation. Do not claim that an agent or model was run; these are recorded strings only.
该包的本地命令模板是:
python3 "{baseDir}/scripts/run.py" --workspace "CURRENT_WORKSPACE" --input "request.json"
{baseDir} 应由当前 Agent 对话替换为已安装 Skill 的真实目录,CURRENT_WORKSPACE 替换为实际工作区路径;不要原样复制占位符到终端。首次任务的验收点是:进程退出状态可见,JSON 输出显示总体 ok 和逐条 case 结果,且报告位于新建的 exports/mochi-…/ 目录。打开 report.json 查看失败期望,再按清单确认导出的文件名、字节数和 SHA-256。总体成功只说明这次本地转换完成;不能把它写成 Agent 行为通过或线上功能验证。[1]
把它接进真实的回归流程
先从你自己的 Agent 运行中保存一小组代表性回复和对应的目标规则,再把要测的回复放进 actual。建议分别覆盖正常答案、缺字段、含敏感标记、边界请求以及看起来相似但不应触发该 Skill 的请求。每次运行保留版本号、输入编号和实际回复来源,避免把同一个样例既当训练材料又当独立验收集。
可以先用确定性断言守住明确约束,例如输出必须含订单号、不能出现内部 token 前缀、JSON 状态必须完全等于 done。对摘要是否准确、步骤是否合理、Skill 是否选对、是否完整遵守指令,则需要检查运行轨迹、人工审阅或另一个合适的评分器。OpenAI 的 eval 教程把流程描述为提示、捕获运行轨迹与产物、少量检查、再比较分数;AWS 对 Skill 评估进一步分开“是否选中正确 Skill”和“是否遵守 Skill 步骤”。本工具只解决其中最窄的文本断言一层。[3] [4]
比较 Skill 修改前后时,给两个版本喂相同输入;另留几条从未用于调规则的 held-out 样例,防止只把现有测试答案写进说明。失败时先看具体 case 与报告:匹配条件写得过宽、测试样例不真实,和 Agent 真的漏步骤是不同问题。不要让本工具自动重写 SKILL.md,也不要只看总通过率掩盖单项失败。
常见卡点与边界
- Skill 没有加载: 用
openclaw skills list确认安装,再运行openclaw skills check看缺失依赖;检查当前 Agent 是否使用了预期 workspace,以及是否有同名 Skill 覆盖。缺 Python 3.10+ 时先处理运行环境。 - 报告路径或输入报错: 确认
request.json在 workspace 内且 JSON 合法;不要用../、绝对路径或指向 workspace 外的符号链接。脚本会把产物写入新的exports/mochi-…/目录,不会覆盖已存在目录。 - 检查全通过但结果仍不对:
mustContain等字符串断言不评估含义。比如错误答案也可能碰巧带有要求的短语;增加结构化输出检查、人工审核或轨迹评估。 - 想证明 Agent 会不会调用 Skill: 这个工具消费的是已记录文本,不采集模型轨迹。另行运行 Agent 并保存轨迹;对固定路由要求使用确定性调用检查,对语义与指令遵循使用适配的评估方法。
- 样例包含真实客户或密钥: 先脱敏。即使脚本离线运行,也要按本机 workspace、备份和报告的访问权限处理真实回复。
包内带有 smoke test,但此指南没有执行候选包脚本或测试。安装前请自行阅读发布包的 SKILL.md 和 scripts/;不要把上面的教程样例写成本站实测。该 Skill 当前是 1.0.0 发布包说明,未来版本的字段、输出和依赖应以新版本原文为准。