agent skill实战:结构设计 + 故障排查实战
·
skill的组成
.
├── SKILL.md
├── references/
├── examples/
└── scripts/
-
SKILL.md:主入口文件
- 这个 Skill 是干什么的
- 什么时候触发
- 先读哪些参考资料
- 按什么顺序执行
- 输出结构是什么
- 哪些行为必须避免
-
references/:参考资料目录
- 规则和资料分离,维护更清楚
- 主文件不至于写成一坨
- 后面更新局部知识时,不用频繁改主 Skill
-
examples/:示例目录,这个目录里通常放两类东西:
- 标准输入示例
- 标准输出示例
-
scripts/:脚本目录
skill实践
下面我们来说一个,线上故障排查的例子
.
├── SKILL.md
├── references/
│ ├── triage-playbook.md
│ ├── metrics-checklist.md
│ └── output-template.md
├── examples/
│ ├── alert-input.json
│ └── expected-analysis.md
└── scripts/
| 文件 | 示例路径 | 作用 |
|---|---|---|
| 主 skill 文件 | SKILL.md |
定义触发条件、执行流程、边界、输出要求 |
| 排障手册 | references/triage-playbook.md |
存放排障原则、先后顺序、常见排查思路 |
| 指标检查清单 | references/metrics-checklist.md |
规定看哪些指标、哪些现象该重点关注 |
| 输出模板 | references/output-template.md |
统一分析结果结构,避免每次输出漂移 |
| 输入样例 | examples/alert-input.json |
给这个 skill 一个标准化输入示例 |
| 输出样例 | examples/expected-analysis.md |
演示符合预期的排障分析结果 |
代码路径: skill实践
使用方式
-
使用claude code作为载体来使用skill,先将该项目移动到~/.claude/skills/下面
-
登陆claude code开始使用

-
得到结果

当使用标准的输入数据
{
"service": "order-service",
"env": "prod",
"time_window": "2026-04-24 14:05 ~ 14:12",
"alert_title": "订单服务 5xx 错误率升高",
"symptom": "/api/order/create 接口错误率从 0.3% 升到 18%",
"logs": [
"2026-04-24T14:06:13 ERROR order-service create order failed: dial tcp 10.21.4.15:3306: i/o timeout",
"2026-04-24T14:06:14 ERROR order-service query inventory failed: dial tcp 10.21.4.15:3306: i/o timeout"
],
"metrics": {
"5xx_rate": "0.3% -> 18%",
"p95_latency": "120ms -> 4.8s",
"db_connection_timeout": "持续升高",
"cpu": "无明显异常",
"memory": "无明显异常"
}
}
skill返回的答案通常是非常完整的,但是如果不给它这么全的数据的时候,结果会怎样?
提供非标数据
本次不用标准数据,而是非常笼统的数据咨询,看看得到的结果是什么
order-service出现了问题,订单服务 5xx 错误率升高,日志:2026-04-24T14:06:13 ERROR order-service create order failed: dial tcp 10.21.4.15:3306: i/o timeout

成功使用对应skill,开始分析

证据链太少,并不能分析出根因以及对应的解决方案,如果还需要继续排查,就要不断的提
更多推荐

所有评论(0)