Loading...
Loading...
Compare original and translation side by side
| Resource | Path | Used for |
|---|---|---|
| Grader instructions | | Assertion evaluation |
| Comparator instructions | | Blind A/B comparison |
| Analyzer instructions | | Benchmark pattern analysis |
| Schema reference | | evals.json, grading.json formats |
| Assertion patterns | | Writing discriminating assertions |
| Troubleshooting | | Common errors and fixes |
| Eval review template | | Description optimization UI |
| Benchmark aggregator | | |
| Description optimizer | | |
| Eval viewer | | Human review interface |
| 资源 | 路径 | 用途 |
|---|---|---|
| 评分器说明 | | 断言评估 |
| 比较器说明 | | 盲态A/B对比 |
| 分析器说明 | | 基准测试模式分析 |
| 参考 schema | | evals.json、grading.json格式规范 |
| 断言模式 | | 编写判别式断言 |
| 故障排查指南 | | 常见错误及修复方案 |
| 评估审查模板 | | 描述优化UI |
| 基准测试聚合工具 | | 执行命令: |
| 描述优化工具 | | 执行命令: |
| 评估查看器 | | 人工审查界面 |
---
name: skill-name
description: >
[What this skill does and when to trigger it. One to three sentences.
Apply the pushy principle: include adjacent trigger contexts.]
------
name: skill-name
description: >
[技能功能及触发场景,1-3句话。遵循主动原则:包含相关的触发场景。]
---references/advanced.mdscripts/transform.pyundefinedreferences/advanced.mdscripts/transform.pyundefinedskill-name/
+-- SKILL.md (required)
+-- Optional bundled resources:
+-- scripts/ - Scripts for deterministic/repetitive tasks
+-- references/ - Docs loaded into context as needed
+-- assets/ - Templates, icons, fontscloud-deploy/
+-- SKILL.md (workflow + selection logic)
+-- references/
+-- aws.md
+-- gcp.md
+-- azure.mdskill-name/
+-- SKILL.md(必填)
+-- 可选捆绑资源:
+-- scripts/ - 用于确定性/重复性任务的脚本
+-- references/ - 按需加载到上下文的文档
+-- assets/ - 模板、图标、字体cloud-deploy/
+-- SKILL.md(工作流 + 选择逻辑)
+-- references/
+-- aws.md
+-- gcp.md
+-- azure.mdundefinedundefined
**Examples** -- include realistic ones:
```markdown
**示例**——包含真实场景:
```markdown
**Writing style** -- use imperative form. Explain the *why* rather than issuing
rules. Avoid ALWAYS/NEVER in all caps where the reasoning can be explained
instead -- models respond better to understanding than mandates. Write a draft,
then read it fresh and improve it.
**Security** -- skills must not contain malware, exploit code, or anything that
would surprise the user if they read the description. Do not create skills
designed to facilitate unauthorized access or data exfiltration. Roleplay skills
are fine.
**写作风格**——使用祈使句。解释原因,而非只给出规则。若可以解释原因,避免使用全大写的ALWAYS/NEVER——模型理解原因比遵守规则表现更好。先起草,再重新阅读并改进。
**安全性**——技能不得包含恶意软件、漏洞利用代码,或用户阅读描述时会感到意外的内容。不得创建用于未经授权访问或数据泄露的技能。角色扮演类技能不受此限制。evals/evals.json{
"skill_name": "example-skill",
"evals": [
{
"id": 1,
"prompt": "User's task prompt",
"expected_output": "Description of expected result",
"files": []
}
]
}references/schemas.mdassertionsevals/evals.json{
"skill_name": "example-skill",
"evals": [
{
"id": 1,
"prompt": "用户的任务提示词",
"expected_output": "预期结果描述",
"files": []
}
]
}references/schemas.mdassertions/skill-test<skill-name>-workspace//skill-test<skill-name>-workspace/<skill-name>-workspace/
+-- iteration-1/
| +-- eval-<name>/ <-- one per test case (descriptive name)
| | +-- eval_metadata.json <-- eval ID, prompt, assertions
| | +-- with_skill/
| | | +-- run-1/
| | | +-- outputs/ <-- files the subagent produced
| | | | +-- metrics.json
| | | +-- timing.json <-- from task notification
| | | +-- grading.json <-- written by grader agent
| | +-- without_skill/ <-- or old_skill/ when improving
| | +-- run-1/
| | +-- outputs/
| | +-- timing.json
| | +-- grading.json
| +-- benchmark.json <-- written by aggregate_benchmark.py
| +-- benchmark.md
+-- iteration-2/
+-- ...<skill-name>-workspace/
+-- iteration-1/
| +-- eval-<name>/ <-- 每个测试用例对应一个目录(名称需具描述性)
| | +-- eval_metadata.json <-- 评估ID、提示词、断言
| | +-- with_skill/
| | | +-- run-1/
| | | +-- outputs/ <-- 子代理生成的文件
| | | | +-- metrics.json
| | | +-- timing.json <-- 来自任务通知
| | | +-- grading.json <-- 由评分器代理生成
| | +-- without_skill/ <-- 改进现有技能时,替换为old_skill/
| | +-- run-1/
| | +-- outputs/
| | +-- timing.json
| | +-- grading.json
| +-- benchmark.json <-- 由aggregate_benchmark.py生成
| +-- benchmark.md
+-- iteration-2/
+-- ...Execute this task:
- Skill path: <path-to-skill>
- Task: <eval prompt>
- Input files: <eval files if any, or "none">
- Save outputs to: <workspace>/iteration-<N>/eval-<name>/with_skill/run-1/outputs/
- Outputs to save: <what the user cares about><workspace>/iteration-<N>/eval-<name>/without_skill/run-1/outputs/cp -r <skill-path> <workspace>/skill-snapshot/old_skill/run-1/outputs/eval_metadata.json<workspace>/iteration-N/eval-<name>/eval_metadata.json{
"eval_id": 0,
"eval_name": "descriptive-name-here",
"prompt": "The user's task prompt",
"assertions": []
}执行以下任务:
- 技能路径:<path-to-skill>
- 任务:<eval prompt>
- 输入文件:<若有评估文件则填写,否则填“none”>
- 输出保存路径:<workspace>/iteration-<N>/eval-<name>/with_skill/run-1/outputs/
- 需保存的输出:<用户关心的内容><workspace>/iteration-<N>/eval-<name>/without_skill/run-1/outputs/cp -r <skill-path> <workspace>/skill-snapshot/old_skill/run-1/outputs/eval_metadata.json<workspace>/iteration-N/eval-<name>/eval_metadata.json{
"eval_id": 0,
"eval_name": "descriptive-name-here",
"prompt": "用户的任务提示词",
"assertions": []
}evals/evals.jsonreferences/eval-patterns.mdeval_metadata.jsonevals/evals.jsonevals/evals.jsonreferences/eval-patterns.mdeval_metadata.jsonevals/evals.jsontiming.jsonwith_skill/run-1/timing.json{
"total_tokens": 84852,
"duration_ms": 23332,
"total_duration_seconds": 23.3
}timing.jsonwith_skill/run-1/timing.json{
"total_tokens": 84852,
"duration_ms": 23332,
"total_duration_seconds": 23.3
}You are a grader agent. Read agents/grader.md from <skill-creator-path>
to load your full instructions, then grade this eval run:
- Expectations: ["assertion 1", "assertion 2", ...]
- Transcript path: <workspace>/iteration-N/eval-<name>/with_skill/run-1/transcript.md
- Outputs dir: <workspace>/iteration-N/eval-<name>/with_skill/run-1/outputs/
Save grading.json to <workspace>/iteration-N/eval-<name>/with_skill/run-1/grading.json.grading.jsontextpassedevidencenamemetdetailspython -m scripts.aggregate_benchmark <workspace>/iteration-N --skill-name <name>benchmark.jsonbenchmark.mdbenchmark.jsonreferences/schemas.mdagents/analyzer.mdnohup python <skill-creator-path>/eval-viewer/generate_review.py \
<workspace>/iteration-N \
--skill-name "my-skill" \
--benchmark <workspace>/iteration-N/benchmark.json \
> /dev/null 2>&1 &
VIEWER_PID=$!--previous-workspace <workspace>/iteration-<N-1>--static <output_path>feedback.json你是评分器代理。从<skill-creator-path>读取agents/grader.md加载完整说明,然后评估本次运行:
- 预期:["assertion 1", "assertion 2", ...]
- 对话记录路径:<workspace>/iteration-N/eval-<name>/with_skill/run-1/transcript.md
- 输出目录: <workspace>/iteration-N/eval-<name>/with_skill/run-1/outputs/
将grading.json保存到<workspace>/iteration-N/eval-<name>/with_skill/run-1/grading.json。grading.jsontextpassedevidencenamemetdetailspython -m scripts.aggregate_benchmark <workspace>/iteration-N --skill-name <name>benchmark.jsonbenchmark.mdbenchmark.jsonreferences/schemas.mdagents/analyzer.mdnohup python <skill-creator-path>/eval-viewer/generate_review.py \
<workspace>/iteration-N \
--skill-name "my-skill" \
--benchmark <workspace>/iteration-N/benchmark.json \
> /dev/null 2>&1 &
VIEWER_PID=$!--previous-workspace <workspace>/iteration-<N-1>--static <output_path>feedback.jsonfeedback.jsonfeedback.json{
"reviews": [
{"run_id": "eval-0-with_skill", "feedback": "chart is missing axis labels"},
{"run_id": "eval-1-with_skill", "feedback": ""},
{"run_id": "eval-2-with_skill", "feedback": "perfect, love this"}
],
"status": "complete"
}kill $VIEWER_PID 2>/dev/null{
"reviews": [
{"run_id": "eval-0-with_skill", "feedback": "图表缺少坐标轴标签"},
{"run_id": "eval-1-with_skill", "feedback": ""},
{"run_id": "eval-2-with_skill", "feedback": "完美,很喜欢"}
],
"status": "complete"
}kill $VIEWER_PID 2>/dev/nullscripts/scripts/iteration-<N+1>/--previous-workspaceiteration-<N+1>/--previous-workspaceagents/comparator.mdagents/analyzer.mdagents/comparator.mdagents/analyzer.mddescriptiondescription[
{"query": "the user prompt", "should_trigger": true},
{"query": "another prompt", "should_trigger": false}
]"Format this data""Create a chart""ok so my boss just sent me this xlsx file (its in my downloads, called something like 'Q4 sales final FINAL v2.xlsx') and she wants me to add a column that shows the profit margin as a percentage. The revenue is in column C and costs are in column D i think"[
{"query": "用户提示词", "should_trigger": true},
{"query": "另一个提示词", "should_trigger": false}
]"Format this data""Create a chart""好吧,我老板刚给我发了一个xlsx文件(在我的下载文件夹里,名字大概是'Q4 sales final FINAL v2.xlsx'),她想让我加一列显示利润率百分比。我记得收入在C列,成本在D列"assets/eval_review.html__EVAL_DATA_PLACEHOLDER____SKILL_NAME_PLACEHOLDER____SKILL_DESCRIPTION_PLACEHOLDER__/tmp/eval_review_<skill-name>.htmleval_set.jsonassets/eval_review.html__EVAL_DATA_PLACEHOLDER____SKILL_NAME_PLACEHOLDER____SKILL_DESCRIPTION_PLACEHOLDER__/tmp/eval_review_<skill-name>.htmleval_set.jsonpython -m scripts.run_loop \
--eval-set <path-to-trigger-eval.json> \
--skill-path <path-to-skill> \
--model <model-id-powering-this-session> \
--max-iterations 5 \
--verbose(name, description)python -m scripts.run_loop \
--eval-set <path-to-trigger-eval.json> \
--skill-path <path-to-skill> \
--model <model-id-powering-this-session> \
--max-iterations 5 \
--verbose(name, description)best_descriptionbest_descriptionpresent_filespython -m scripts.package_skill <path/to/skill-folder>.skillpresent_filespython -m scripts.package_skill <path/to/skill-folder>.skillclaude -pname/tmp/skill-name//tmp/claude -pname/tmp/skill-name//tmp/--static <output_path>feedback.jsonrun_loop.pyclaude -peval-viewer/generate_review.py--static <output_path>feedback.jsonrun_loop.pyclaude -peval-viewer/generate_review.py