mcpField
S
skill-test

skill-test

github.com/databricks-solutions测试与质量2.0k71 次安装1 天前更新
代码仓库

关于 skill-test

skill-test 是面向 Databricks skills 的离线、YAML 优先评估框架,提供交互式命令行用于运行测试和改进测试用例。它支持回归比较、轨迹评估,以及可选的 MLflow LLM 评审。

主要功能

  1. 01基于 YAML 的评估与标准答案
  2. 02交互式创建和审查测试用例
  3. 03与已保存基线进行回归检查
  4. 04轨迹评估
  5. 05使用 LLM 评审的 MLflow 评估
  6. 06可配置评分器与质量门槛

适用场景

  1. 01根据标准答案评估 Databricks skill
  2. 02将结果与已保存基线比较
  3. 03创建并审查 skill 测试用例
  4. 04按预期评估执行轨迹

MCP 相关

说明要求在运行命令前创建带有 MCP 工具的 CLIContext。项目未说明其向客户端公开的 MCP 服务能力。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/databricks-solutions/ai-dev-kit --skill skill-test

安装后在 Claude Code 中输入/skill-test确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CUSTOMIZATION_GUIDE.md
install_skill_test.sh
pyproject.toml
README.md
baselines/databricks-agent-bricks/
baseline.yaml
baselines/databricks-aibi-dashboards/
baseline.yaml
baselines/databricks-apps-python/
baseline.yaml
baselines/databricks-bundles/
baseline.yaml
baselines/databricks-genie/
baseline.yaml
baselines/databricks-model-serving/
baseline.yaml
baselines/databricks-python-sdk/
baseline.yaml
baselines/databricks-spark-declarative-pipelines/
baseline.yaml
baselines/databricks-synthetic-data-gen/
baseline.yaml
baselines/databricks-zerobus-ingest/
baseline.yaml
eval-criteria/sql-correctness/references/
DATABRICKS_SQL_PATTERNS.md
eval-criteria/tool-selection/references/
MCP_TOOL_GUIDE.md
notebooks/
gepa_skill_optimization_demo.ipynb
references/
python-api.md
scorers.md
trace-eval.md
workflows.md
yaml-schemas.md
scripts/
_common.py
add_example.py
add.py
baseline.py
generate_examples.py
generate_ground_truth.py
init_skill.py
list_traces.py

详细介绍

Databricks 技能测试框架

以 YAML 为先的离线评估,结合人工审查和交互式技能改进。

快速参考

/skill-test 命令

/skill-test 命令提供交互式 CLI,用于在 Databricks 上实际执行并测试 Databricks 技能。

基本用法
/skill-test <skill-name> [subcommand]
子命令
子命令描述
run根据真实数据运行评估(默认)
regression将当前结果与基线进行比较
init为新技能初始化测试脚手架
add交互式操作:提示词 -> 调用技能 -> 测试 -> 保存
add --trace添加带有 Trace 评估的测试用例
review交互式审查待处理的候选项
review --batch批量批准所有待处理的候选项
baseline将当前结果保存为回归基线
mlflow使用 LLM 评审器运行完整的 MLflow 评估
trace-eval根据技能预期评估 Trace
list-traces列出可用的 Trace(MLflow 或本地)
scorers列出为技能配置的评分器
scorers update添加/移除评分器或更新默认指南
sync将 YAML 同步到 Unity Catalog(第 2 阶段)
快速示例
/skill-test databricks-spark-declarative-pipelines run
/skill-test databricks-spark-declarative-pipelines add --trace
/skill-test databricks-spark-declarative-pipelines review --batch --filter-success
/skill-test my-new-skill init

各子命令的详细示例请参阅工作流。

执行说明

环境设置
uv pip install -e .test/

Databricks MLflow 的环境变量:

  • DATABRICKS_CONFIG_PROFILE - Databricks CLI 配置文件(默认值:"DEFAULT")
  • MLFLOW_TRACKING_URI - 设置为 "databricks" 以使用 Databricks MLflow
  • MLFLOW_EXPERIMENT_NAME - 实验路径(例如,"/Users/{user}/skill-test")
运行脚本

所有子命令在 .test/scripts/ 中都有对应脚本:

uv run python .test/scripts/{subcommand}.py {skill_name} [options]
子命令脚本
runrun_eval.py
regressionregression.py
initinit_skill.py
addadd.py
reviewreview.py
baselinebaseline.py
mlflowmlflow_eval.py
scorersscorers.py
scorers updatescorers_update.py
syncsync.py
trace-evaltrace_eval.py
list-traceslist_traces.py
_routing mlflowrouting_eval.py

在任何脚本上使用 --help 可查看可用选项。

命令处理器

调用 /skill-test 时,解析参数并执行相应命令。

参数解析
  • args[0] = skill_name(必填)
  • args[1] = 子命令(可选,默认值:"run")
子命令路由
子命令操作
run执行 run(skill_name, ctx) 并显示结果
regression执行 regression(skill_name, ctx) 并显示比较结果
init执行 init(skill_name, ctx) 创建脚手架
add提示输入测试内容、调用技能并运行 interactive()
review执行 review(skill_name, ctx) 审查待处理的候选项
baseline执行 baseline(skill_name, ctx) 并保存为回归基线
mlflow执行 mlflow_eval(skill_name, ctx) 并记录 MLflow 日志
scorers执行 scorers(skill_name, ctx) 列出已配置的评分器
scorers update执行 scorers_update(skill_name, ctx, ...) 修改评分器
init 行为

运行 /skill-test <skill-name> init 时:

  1. 阅读技能的 SKILL.md,了解其用途
  2. 创建 manifest.yaml,并配置合适的评分器和 trace_expectations
  3. 创建空的 ground_truth.yaml 和 candidates.yaml 模板
  4. 根据文档示例推荐测试提示词

然后使用推荐的提示词运行 /skill-test <skill-name> add。

上下文设置

调用任何命令之前,先创建包含 MCP 工具的 CLIContext。详情请参阅 Python API。

文件位置

重要: 所有测试文件都存储在仓库根目录下,而不是相对于此技能的目录。

文件类型路径
Ground truth{repo_root}/.test/skills/{skill-name}/ground_truth.yaml
Candidates{repo_root}/.test/skills/{skill-name}/candidates.yaml
Manifest{repo_root}/.test/skills/{skill-name}/manifest.yaml
路由测试{repo_root}/.test/skills/_routing/ground_truth.yaml
基线{repo_root}/.test/baselines/{skill-name}/baseline.yaml

例如,要在此仓库中测试 databricks-spark-declarative-pipelines:

/Users/.../ai-dev-kit/.test/skills/databricks-spark-declarative-pipelines/ground_truth.yaml

而不是相对于技能定义:

/Users/.../ai-dev-kit/.claude/skills/skill-test/skills/...  # WRONG

目录结构

.test/                          # At REPOSITORY ROOT (not skill directory)
├── pyproject.toml              # Package config (pip install -e ".test/")
├── README.md                   # Contributor documentation
├── SKILL.md                    # Source of truth (synced to .claude/skills/)
├── install_skill_test.sh       # Sync script
├── scripts/                    # Wrapper scripts
│   ├── _common.py              # Shared utilities
│   ├── run_eval.py
│   ├── regression.py
│   ├── init_skill.py
│   ├── add.py
│   ├── baseline.py
│   ├── mlflow_eval.py
│   ├── routing_eval.py
│   ├── trace_eval.py           # Trace evaluation
│   ├── list_traces.py          # List available traces
│   ├── scorers.py
│   ├── scorers_update.py
│   └── sync.py
├── src/
│   └── skill_test/             # Python package
│       ├── cli/                # CLI commands module
│       ├── fixtures/           # Test fixture setup
│       ├── scorers/            # Evaluation scorers
│       ├── grp/                # Generate-Review-Promote pipeline
│       └── runners/            # Evaluation runners
├── skills/                     # Per-skill test definitions
│   ├── _routing/               # Routing test cases
│   └── {skill-name}/           # Skill-specific tests
│       ├── ground_truth.yaml
│       ├── candidates.yaml
│       └── manifest.yaml
├── tests/                      # Unit tests
├── references/                 # Documentation references
└── baselines/                  # Regression baselines

参考资料

评论

支持 Markdown