Agent Skills
› mgechev/skillgrade
› skillgrade-setup
skillgrade-setup
GitHub用于设置和运行 Skillgrade AI Agent 评估流水线。涵盖安装、初始化 eval 配置、定义任务与评分器、执行多轮/批量评估及结果审查导出,支持 CI 集成。
Trigger Scenarios
初始化 AI Agent 或技能的评估配置
运行评估测试以检查能力或回归
审查和导出评估报告
Install
npx skills add mgechev/skillgrade --skill skillgrade-setup -g -y
SKILL.md
Frontmatter
{
"name": "skillgrade-setup",
"description": "Sets up and runs skillgrade evaluation pipelines for AI agents and Agent Skills. Use when initializing eval configurations, running trials, reviewing results, exporting reports, or integrating with CI. Don't use for writing grader scripts, general test authoring, or non-agentic documentation."
}
Skillgrade Evaluation Setup
Procedures
Step 1: Install Skillgrade
- Verify Node.js 20+ and Docker are available.
- Run
npm i -g skillgradeto install the CLI globally.
Step 2: Initialize an Eval Configuration
- Navigate to any project directory.
- If the directory contains a
SKILL.mdand an API key is set,skillgrade initgenerates AI-powered tasks and graders tailored to the skill. - Without a
SKILL.mdor API key,skillgrade initcreates a ready-to-edit generic eval template. - Pass
--forceto overwrite an existingeval.yaml.
Step 3: Configure eval.yaml
- Read
references/eval-yaml-spec.mdfor the full configuration schema. - Define tasks under the
tasks:key. Each task requires:name: unique task identifierinstruction: what the agent should accomplish (ORturns:for multi-turn evals)graders: one or more scoring mechanisms (see theskillgrade-gradersskill)
- Optionally add
workspace:(files the agent edits) andcontext:(reference material not directly graded). - Configure
defaults:for agent, provider, trials, timeout, and threshold. - For multi-turn evals, replace
instructionwithturns:— each turn has its owninstructionand optionalgraders. The workspace persists across turns. - For batch evals, add
dataset: path/to/file.jsonl(or.csv) to a task. Each row expands into a separate task with{{key}}template variables interpolated in the instruction.
Step 4: Run Evaluations
- Select an appropriate preset based on the evaluation goal:
--smoke(5 trials): Quick capability check.--reliable(15 trials): Reliable pass rate estimate.--regression(30 trials): High-confidence regression detection.
- Run the evaluation:
skillgrade --smoke. - Run a specific eval by name:
skillgrade --eval=fix-linting. - Run multiple evals:
skillgrade --eval=fix-linting,write-tests. - Run only deterministic graders (skip LLM calls):
skillgrade --grader=deterministic. - Run only LLM rubric graders:
skillgrade --grader=llm_rubric. - Run only human review graders:
skillgrade --grader=human. - The agent is auto-detected from the API key. Override with
--agent=gemini|claude|codex|acp|opencode|command. - For ACP, pass
--acp-command="gemini --acp"or setdefaults.acp.command. - For OpenCode, pass
--opencode-agent=build|plan|exploreor--opencode-model=provider/model. - For a custom agent, pass
--agent=command --command="node mycli.js"or setdefaults.command. The instruction is piped to the command's stdin. - Override the provider with
--provider=docker|local(or any custom-registered provider).
Step 5: Review Results
- Run
skillgrade previewfor a CLI report. - Run
skillgrade preview browserto open the web UI athttp://localhost:3847. - Export results:
--format=json|junit|csv|markdown. Combine with commas:--format=json,junit. - Reports are saved to
$TMPDIR/skillgrade/<eval-name>/results/. Override with--output=DIR.
Step 6: Integrate with CI
- Add a GitHub Actions step that installs skillgrade, navigates to the eval directory, and runs with
--regression --ci --provider=local. - Use
--provider=localin CI — the runner is already an ephemeral sandbox, so Docker adds overhead without benefit. - The
--ciflag causes a non-zero exit code if the pass rate falls below--threshold(default: 0.8). - Use
--format=junitto generate JUnit XML for CI dashboard integration. - Read
references/ci-example.mdfor a complete workflow template.
Step 7: Extend with Custom Registries
- Register custom graders:
registerGrader('my_grader', () => new MyGrader()). - Register custom agents:
registerAgent('my-agent', (config) => new MyAgent(config)). - Register custom providers:
registerProvider('ssh', (config) => new SSHProvider(config)). - Register custom reporters:
registerReporter('dashboard', () => new DashboardReporter()).
Error Handling
- If
skillgrade initproduces a generic template, it means noSKILL.mdwas found — this is expected for non-skill evals. - If evaluation hangs, check Docker is running and the container has network access for API calls.
- If all trials fail with "No API key," ensure the environment variable is exported, not just set inline for a different command.
- If a task has both
instructionandturns, skillgrade will error — use one or the other. - If a dataset file is not found, skillgrade errors at config load time with the resolved path.
Version History
-
ab2afd7
Current 2026-10-18 19:25
新增多轮评估支持、更多提供商适配(如 ACP/OpenCode)及批量数据集功能
- c7d6435 2026-07-19 09:27


