关于 skill-test
skill-test 是面向 Databricks skills 的离线、YAML 优先评估框架,提供交互式命令行用于运行测试和改进测试用例。它支持回归比较、轨迹评估,以及可选的 MLflow LLM 评审。
主要功能
- 01基于 YAML 的评估与标准答案
- 02交互式创建和审查测试用例
- 03与已保存基线进行回归检查
- 04轨迹评估
- 05使用 LLM 评审的 MLflow 评估
- 06可配置评分器与质量门槛
适用场景
- 01根据标准答案评估 Databricks skill
- 02将结果与已保存基线比较
- 03创建并审查 skill 测试用例
- 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.mdinstall_skill_test.shpyproject.tomlREADME.mdbaselines/databricks-agent-bricks/baseline.yamlbaselines/databricks-aibi-dashboards/baseline.yamlbaselines/databricks-apps-python/baseline.yamlbaselines/databricks-bundles/baseline.yamlbaselines/databricks-genie/baseline.yamlbaselines/databricks-model-serving/baseline.yamlbaselines/databricks-python-sdk/baseline.yamlbaselines/databricks-spark-declarative-pipelines/baseline.yamlbaselines/databricks-synthetic-data-gen/baseline.yamlbaselines/databricks-zerobus-ingest/baseline.yamleval-criteria/sql-correctness/references/DATABRICKS_SQL_PATTERNS.mdeval-criteria/tool-selection/references/MCP_TOOL_GUIDE.mdnotebooks/gepa_skill_optimization_demo.ipynbreferences/python-api.mdscorers.mdtrace-eval.mdworkflows.mdyaml-schemas.mdscripts/_common.pyadd_example.pyadd.pybaseline.pygenerate_examples.pygenerate_ground_truth.pyinit_skill.pylist_traces.py详细介绍
Databricks 技能测试框架
以 YAML 为先的离线评估,结合人工审查和交互式技能改进。
快速参考
- 评分器 - 可用的评分器和质量门槛
- YAML 架构 - 清单和真实数据格式
- Python API - 编程用法示例
- 工作流 - 详细的工作流示例
- Trace 评估 - 会话 Trace 分析
/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 MLflowMLFLOW_EXPERIMENT_NAME- 实验路径(例如,"/Users/{user}/skill-test")
运行脚本
所有子命令在 .test/scripts/ 中都有对应脚本:
uv run python .test/scripts/{subcommand}.py {skill_name} [options]
| 子命令 | 脚本 |
|---|---|
run | run_eval.py |
regression | regression.py |
init | init_skill.py |
add | add.py |
review | review.py |
baseline | baseline.py |
mlflow | mlflow_eval.py |
scorers | scorers.py |
scorers update | scorers_update.py |
sync | sync.py |
trace-eval | trace_eval.py |
list-traces | list_traces.py |
_routing mlflow | routing_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 时:
- 阅读技能的 SKILL.md,了解其用途
- 创建
manifest.yaml,并配置合适的评分器和 trace_expectations - 创建空的
ground_truth.yaml和candidates.yaml模板 - 根据文档示例推荐测试提示词
然后使用推荐的提示词运行 /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
参考资料
- 评分器 - 可用的评分器和质量门槛
- YAML 架构 - Manifest 和 ground truth 格式
- Python API - 编程用法示例
- 工作流 - 详细的工作流示例
- Trace 评估 - 会话 trace 分析
评论
支持 Markdown