SuperAPI AI 工具集

add-eval

测试与质量

查看项目

更新于 10-16 08:17

技能介绍

用途

add-eval 用于为某个工具或集合添加、更新 LLM 评估测试。它会创建一个新的评估场景,或更新已有场景,以覆盖新加入的工具。

适用情形:

  • 通过 /add-tool 添加了新工具,希望补充评估覆盖;
  • 修改了某个工具,需要更新对应评估场景;
  • 想为已有集合新增工作流场景;
  • /build-evals 因为评估文件已存在而跳过了该集合。

前置条件

运行前需确保:

  • 集合已存在(src/umbraco-api/tools/{collection}/index.ts);
  • 项目可构建:npm run build;
  • 具备 LLM API key(评估测试使用 Claude Agent SDK,可用 Claude Code 订阅或 ANTHROPIC_API_KEY)。

参数

  • 集合名称(必填):要添加评估覆盖的集合,例如 /add-eval form;
  • 工具或场景提示(可选):要测试的内容,例如 /add-eval form "copy form workflow"。

若未提供提示,则将集合中的工具与已有评估测试覆盖进行对比,并建议缺失的部分。

Agent

  • eval-test-creator:用于创建或更新评估测试文件(第 3 或第 4 步)。

关键规则

  • 先构建再运行。评估测试针对 dist/index.js 运行,务必先执行 npm run build。
  • 分开执行命令。构建和测试始终作为两次独立的 Bash 调用,切勿用 && 串联。
  • 迭代提示词。评估测试具有概率性,测试失败通常应修改提示词。
  • 开发时启用详细输出。创建或调试时始终设置 verbose: true。

工作流程

第 0 步:检查评估基础设施

检查评估设置是否存在:

  • tests/evals/helpers/e2e-setup.ts
  • tests/evals/jest.config.ts

若设置不存在,告知用户先运行 /build-evals {collection} 创建基础设施。本技能不创建评估设置文件。

第 1 步:了解当前覆盖情况

阅读集合工具与已有评估测试:

  • src/umbraco-api/tools/{collection}/index.ts —— 集合中的所有工具;
  • tests/evals/{collection}-*.test.ts —— 已有评估场景;
  • 每个评估测试文件 —— 了解覆盖了哪些工具、在什么场景中。

建立清单:

  • 已有评估覆盖的工具(出现在场景的 tools 和 requiredTools 数组中);
  • 没有评估覆盖的工具;
  • 已有工作流场景。

第 2 步:决定更新还是新建

根据清单和用户请求判断:

更新已有场景的情况:

  • 新工具扩展了已有工作流(例如向 CRUD 场景加入 copy-form);
  • 新工具是已有测试提示词的自然补充。

新建场景的情况:

  • 新工具代表不同能力(例如搜索、层级、导入/导出);
  • 加入已有场景会使提示词过于复杂;
  • 没有已有场景覆盖该工具的领域。

第 3 步:更新已有场景(如适用)

更新已有评估测试时:

  • 将新工具加入 COLLECTION_TOOLS 数组;
  • 若该工具必须被调用,加入 requiredTools;
  • 更新提示词,加入可演练新工具的步骤;
  • 保持提示词清晰且顺序化,不要过长。

构建并运行:

npm run build
npm run test:evals -- --testPathPatterns="{collection}"

若测试失败,迭代提示词。常见修复:

  • 让指令更明确;
  • 加入搜索/列表步骤以动态查找 ID;
  • 若提示词过于复杂,简化工作流。

第 4 步:创建新场景(如适用)

使用 eval-test-creator agent 创建 tests/evals/{collection}-{workflow}.test.ts。该 agent 负责测试模板与模式。

构建并运行:

npm run build
npm run test:evals -- --testPathPatterns="{collection}-{workflow}"

迭代提示词直到测试稳定通过。

第 5 步:报告

报告完成情况:

  • 是更新了已有场景还是创建了新场景;
  • 文件路径;
  • 覆盖的工具;
  • 测试通过状态;
  • 需要进行的提示词迭代。