Install
openclaw skills install @lanyasheng/auto-improvement-evaluator当需要验证 Skill 改进是否真正提升了 AI 执行效果时使用。通过预定义任务集(YAML)运行 AI 任务,判定 pass/fail,输出 execution_pass_rate。不用于文档结构评分(用 improvement-learner)或候选打分(用 improvement-discriminator)。
openclaw skills install @lanyasheng/auto-improvement-evaluatorMeasures whether a Skill actually makes AI perform better on real tasks.
improvement-learnerimprovement-discriminatorimprovement-orchestrator| Mode | When | Required Params |
|---|---|---|
| Pipeline | Called by orchestrator after discriminator | --input, --candidate-id, --task-suite, --state-root |
| Standalone | Direct evaluation of current SKILL.md | --standalone, --task-suite, --state-root, --skill-path |
# Pipeline mode: evaluate candidate vs baseline
python3 scripts/evaluate.py --input ranking.json --candidate-id cand-01-docs \
--task-suite tasks.yaml --state-root ./state \
[--pass-k 1] [--eval-threshold 6.0] [--baseline-cache-dir /cache] [--mock] [--output eval.json]
# Standalone mode: evaluate current SKILL.md directly
python3 scripts/evaluate.py --standalone --task-suite tasks.yaml \
--state-root ./state --skill-path /path/to/skill [--mock]
| Param | Default | When to change |
|---|---|---|
--eval-threshold | 6.0 | Orchestrator sets per-category thresholds (e.g., docs=5.0, prompt=7.0) |
--pass-k | 1 | Raise to 3 for flaky tasks |
--mock | false | Use in CI or when claude CLI is not installed |
--baseline-cache-dir | None | Set to avoid re-running baseline on unchanged SKILL.md |
| Judge | type in YAML | Mechanism | Use When |
|---|---|---|---|
| ContainsJudge | contains | Check output contains all strings in expected list | Deterministic keyword/format checks |
| PytestJudge | pytest | Run pytest on fixtures/{test_file} against AI output | Structured output validation (JSON, code) |
| LLMRubricJudge | llm-rubric | LLM scores output against rubric text (mock mode: random pass) | Semantic quality evaluation |
skill_id: my-skill
version: "1.0"
tasks:
- id: task-001
prompt: "Given X, produce Y"
judge: {type: contains, expected: ["keyword1", "keyword2"]}
- id: task-002
prompt: "Generate a config file"
judge: {type: pytest, test_file: fixtures/test_config.py}
- id: task-003
prompt: "Explain concept Z"
judge: {type: llm-rubric, rubric: "Must cover A, B, C with examples"}
--eval-threshold are skipped (verdict=skipped)error — indicates broken task suite{"stage": "evaluated", "verdict": "pass",
"evaluation": {"execution_pass_rate": 0.80, "baseline_pass_rate": 0.60, "delta": 0.20},
"candidate_results": [{"task_id": "t1", "passed": true, "score": 1.0}],
"next_step": "gate_decision", "next_owner": "gate"}
score >= eval_threshold--evaluation artifact