前言¶
线上服务一旦出问题,值班同学最怕的不是“不会修”,而是流程乱:先查根因还是先回滚?该不该开事故频道?对外怎么说?复盘文档又拖到下周。经验靠人脑记,换人值班就容易漏步骤。
Agent Skill 可以把这类流程写成可复用的 SKILL.md,让 Cursor、Claude Code、Codex CLI 等 AI 编程工具在对话里按同一套规范协助你。本文介绍的是 spencerpauly 维护的 awesome-cursor-skills 仓库里的 incident-response:覆盖分级、缓解、沟通与无责事后复盘(blameless postmortem)。
这是什么¶
incident-response 是一份面向生产事故响应的 Agent Skill。官方描述很直接:Handle production incidents — triage, mitigate, communicate, and write postmortems。
它收录在 spencerpauly/awesome-cursor-skills 的 resources/incident-response/ 目录下,核心文件是 SKILL.md。该仓库把 Skills 定义为可复用的指令文件,复制到项目的 .cursor/skills/(或个人目录)后,由 Agent 自动发现;incident-response 还标注了 user-invocable: true,适合在聊天里用 /incident-response 一类方式显式唤起。
它解决的不是“替你写业务代码”,而是把 SRE/DevOps 里常见的事故响应清单编码进 Agent,减少高压下的人为遗漏。
核心功能与亮点¶
对照仓库里的 SKILL.md,能力可以分成三块。
1. 统一严重级别(SEV1–SEV4)
| 级别 | 定义 | 响应时间 | 示例 |
|---|---|---|---|
| SEV1 | 服务不可用,影响全体用户 | 立即 | 数据库宕机、DNS 故障、登录鉴权全挂 |
| SEV2 | 核心功能受损,影响大量用户 | 30 分钟内 | 支付失败、搜索不可用 |
| SEV3 | 次要功能异常,存在临时方案 | 4 小时内 | 导出按钮坏了、看板变慢 |
| SEV4 | 外观或低影响问题 | 下一工作日 | UI 文案错误、轻微样式问题 |
分级写进 Skill 后,Agent 会先帮你对齐“这件事有多严重、该多快动”,而不是一上来就深挖根因。
2. 五步事故工作流
Skill 把响应拆成固定阶段:
- Detect & Triage(约前 5 分钟):确认在处理;定 SEV;看监控(错误率、延迟、状态页);用
git log --oneline -10核对近期发布。 - Mitigate(随后 15–30 分钟):目标是止血,不是找根因。可选回滚(
git revert && deploy)、关 Feature Flag、扩容、切备、限流/封禁异常流量。 - Communicate:对内开事故频道(如
#incident-2026-04-10)、每 15–30 分钟同步、明确角色(Incident Commander、Communicator、Engineers);对外更新状态页,必要时通知受影响用户,表述要诚实。 - Resolve:发布修复;用指标确认恢复(不只是“报错消失了”);用摘要关闭事故频道。
- Postmortem(48 小时内):写无责复盘,聚焦流程改进,不归咎个人。
3. 可直接套用的复盘模板
Skill 内置了 Markdown 复盘骨架:事故标题、日期、时长、级别、影响、时间线、根因、做得好/不好的地方、带负责人和截止日期的 Action Items。Agent 可以按这个结构起草,团队再改事实细节即可。
另外还有几条实践提示:优先回滚再深挖;最近一次发布往往最可疑;复盘不甩锅;为常见故障维护 Runbook;用 game day 演练再等真实事故。
安装与启用¶
incident-response 遵循通用的 Agent Skills(SKILL.md)格式。Cursor 官方文档说明:启动时会扫描技能目录;也可在 Agent 聊天里输入 / 按名称手动调用。兼容目录包括 Claude / Codex 的 skills 路径。
方式一:用 skills CLI 安装(推荐)
skills.sh 与 vercel-labs 的 npx skills 工具给出的安装命令为:
npx skills add https://github.com/spencerpauly/awesome-cursor-skills --skill incident-response
也可写简写形式:
npx skills add spencerpauly/awesome-cursor-skills --skill incident-response
若目标是 Claude Code,第三方目录(如 Claude Skills Hub)会提示加 --agent claude-code,安装到项目的 .claude/skills/。以你实际使用的 Agent 为准。
方式二:手动复制
awesome-cursor-skills 的 README 说明:把现成的 SKILL.md 拷进 .cursor/skills/ 即可。推荐目录结构:
.cursor/skills/incident-response/SKILL.md
Cursor 还会加载:
| 位置 | 作用域 |
|---|---|
.agents/skills/、.cursor/skills/ |
项目级 |
~/.agents/skills/、~/.cursor/skills/ |
用户级(全局) |
.claude/skills/、.codex/skills/ 及对应家目录 |
兼容 Claude Code / Codex CLI |
装好后,在 Agent 对话里用自然语言描述事故(例如“支付成功率骤降,帮我按事故响应流程处理”),或显式调用该 Skill,即可按上述流程协助分级、缓解建议、沟通话术和复盘草稿。
典型用法示例¶
下面用法均来自官方 SKILL.md,可按你们团队工具链微调。
1. 刚接到告警时
可以对 Agent 说:
支付成功率掉到 20%,请按 incident-response 做分级和前 5 分钟 triage。
先查最近发布:git log --oneline -10
Agent 应先确认在处理、建议 SEV(例如对照 Skill 中支付失败偏 SEV2)、提醒看监控与近期部署,而不是一上来改业务逻辑。
2. 止血阶段
若怀疑是某次发布引入:
怀疑刚上的迁移导致 webhook 500。按 Skill 优先缓解:评估 git revert && deploy,
或关相关 feature flag。先止血,根因放后面。
Skill 明确列出的缓解手段还包括扩容、故障转移、限流/封禁异常流量。
3. 起草无责复盘
事故关闭后,可以让 Agent 按官方模板生成初稿。Skill 中的示例结构如下(内容为官方示例,正式使用时换成你们的真实时间线):
# Incident: Payments failing for Stripe webhook
**Date:** 2026-04-10
**Duration:** 45 minutes (14:30 — 15:15 UTC)
**Severity:** SEV2
**Impact:** ~200 users unable to complete purchases
## Timeline
- 14:30 — Alert fires: payment success rate drops to 20%
- 14:35 — On-call engineer acknowledges, begins investigation
- 14:40 — Identified: Stripe webhook endpoint returning 500
- 14:45 — Root cause: migration added NOT NULL column without default
- 14:50 — Fix deployed: added default value to migration
- 15:00 — Payment success rate recovering
- 15:15 — Metrics back to normal, incident closed
## Root Cause
Database migration #47 added a `currency` column with NOT NULL
but no DEFAULT value. Existing rows were fine (backfilled), but
new webhook events failed because the insert didn't include `currency`.
## What Went Well
- Alert fired within 5 minutes of the issue starting
- Rollback was considered but the fix was faster
## What Went Wrong
- Migration wasn't tested with live webhook payloads
- No staging test for the webhook flow
## Action Items
- [ ] Add webhook integration test to CI (@alice, due 2026-04-17)
- [ ] Require DEFAULT for all new NOT NULL columns in migration review (@bob)
- [ ] Add runbook for payment failures (@charlie, due 2026-04-14)
把真实时间戳、影响面、负责人填进去,再人工审一遍事实与措辞即可。
适用场景与注意事项¶
适合:
- 有 On-call、需要统一 SEV 与沟通节奏的研发/SRE/DevOps 团队
- 希望把事故响应和复盘模板写进仓库、随项目共享的团队
- 用 Cursor / Claude Code / Codex CLI 等支持 Agent Skills 的工具做值班协助时
注意:
- Skill 提供的是流程与文案骨架,不能替代监控告警、发布系统、状态页或真正的权限操作;回滚、扩容、切流仍要在你们现有平台上执行,并对变更负责。
- 示例中的时间线、用户数、迁移编号是 Skill 自带的教学样例,不是你们线上的真实事故,不要原样当事实发布。
- 不同组织的 SEV 定义、响应时限、角色命名可能不同;装完后建议改
SKILL.md,对齐公司内部 Runbook。 - Agent 可能建议回滚或关开关,执行前务必二次确认影响面与审批要求。
小结¶
incident-response 把生产事故里最容易漏的几件事——定级、先止血、内外沟通、48 小时内无责复盘——写进了一份可安装的 SKILL.md。对已经在用 AI 编程 Agent 的团队来说,成本很低:装到 skills 目录,或一条 npx skills add 命令,就能在值班对话里按同一套流程协作。
官方地址:https://github.com/spencerpauly/awesome-cursor-skills/tree/main/resources/incident-response