首页 > 基础资料 博客日记
agent skill实战:结构设计 + 故障排查实战
2026-04-29 10:30:02基础资料围观1次
前言
本文将使用一个例子“线上故障排查”,结合该例子,来详细讨论一下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开始使用
![watermarked-1]()
-
得到结果
![watermarked-2]()
当使用标准的输入数据
{
"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,开始分析

证据链太少,并不能分析出根因以及对应的解决方案,如果还需要继续排查,就要不断的提供对应的数据
添加数据查询工具
-
为了让skill在排查的过程中,能够获取到新的数据,在/scripts下添加一个查询工具:获取mysql的状态
get_mysql_state -
先告诉skill有工具可以调用,在SKILL.md中添加新的参考资料
references/tools.md -
在
references/tools.md添加脚本使用方式
再来看看效果:

skill启动之时,读取了参考资料,并且获取了mysql是否通畅的证据
function call 与 skill
skill的简单使用已经介绍完毕了,下面来对比一下function call与skill,这俩之间在什么场景下去使用
与之前介绍过的function call :
进行对比:
| function call | skill | |
|---|---|---|
| 定位 | function call更合适出现在底层工具的建设中 | skill是ai agent的强力助手 |
| 环境依赖 | 不依赖 Claude Code、openclaw 环境,可作为独立服务部署 | 需要claude code、openclaw等环境,不能独立存在 |
| 优化策略 | 需要不断修改代码来进行不断优化(不管是流程代码,还是prompt)更像是传统开发流程 | 通过更新 references 下的 markdown 文档即可优化策略,当然也会有script的优化 |
| 最佳场景 | 自动化、集成到现有系统 | ai agent的优秀辅助、结构化分析问题 |
| 共同协作 | skill 调用 function call 作为工具 | function call 参考 Skill 的流程规范 |
总结
本文介绍了skill的基本自称以及用了一个实际例子作为案例剖析展现了如何使用skill
再次对比了function call与skill,在各自对应的环境起到的作用
联系我
- 联系我,做深入的交流

至此,本文结束
在下才疏学浅,有撒汤漏水的,请各位不吝赐教...
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
上一篇:程序员最常用的10个AI提示词
下一篇:文档格式转换器-学术加强版



