前言¶
線上服務一旦出問題,值班同學最怕的不是“不會修”,而是流程亂:先查根因還是先回滾?該不該開事故頻道?對外怎麼說?覆盤文檔又拖到下週。經驗靠人腦記,換人值班就容易漏步驟。
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