用途:在 Kibana 仓库中脚手架式创建一个新的 LLM 评测套件包 kbn-evals-suite-<name>。每个套件是自包含的 Playwright 项目,使用 @kbn/evals 的 evaluate fixture 运行带数据集、任务和评估器的 LLM 实验。
主要能力:生成标准目录结构(evals/<name>.spec.ts、src/evaluate.ts、playwright.config.ts、package.json、kibana.jsonc、tsconfig.json);提供各文件模板;支持在基础 evaluate 上扩展自定义 fixture(如 chatClient、esArchiver、supertest、领域 API 客户端);并说明套件在 .buildkite/pipelines/evals/evals.suites.json 中的注册方式。
使用方式:先收集套件名(kebab-case)、x-pack/ 下的父目录、Owner GitHub 团队、group、visibility 以及是否需要自定义 fixture。不要使用 node scripts/scout generate。playwright.config.ts 必须放在包根目录,使用 createPlaywrightEvalsConfig,testDir 用 Path.resolve 指定绝对路径。kibana.jsonc 的 type 必须为 "functional-tests"。tsconfig 的 kbn_references 需包含 @kbn/evals 与 @kbn/scout。创建后运行 yarn kbn bootstrap 注册包,用 node scripts/evals list 验证,本地运行 node scripts/evals start --model <connector-id> --judge <connector-id>。
适用场景:需要为 Kibana 功能编写 LLM 评测、复用统一评测模式、或在 CI 中按标签运行评测时。
限制与常见错误:配置不能放在 test/scout/ 下,否则 Scout CI 发现会崩溃;不要用 Scout 生成器;type 不能设为 shared-common 或 plugin;忘记 @kbn/evals 引用会导致 TS 解析失败;testDir 不能用 Path.join;扩展时须从套件自身 src/evaluate 导入 evaluate;创建包后必须运行 yarn kbn bootstrap。注册对本地开发可选,但对 CI 标签和 node scripts/evals list 是必需的。