用 incident-response Skill 把生產事故響應流程交給 AI Agent

前言

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

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-skillsresources/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 把響應拆成固定階段:

  1. Detect & Triage(約前 5 分鐘):確認在處理;定 SEV;看監控(錯誤率、延遲、狀態頁);用 git log --oneline -10 覈對近期發佈。
  2. Mitigate(隨後 15–30 分鐘):目標是止血,不是找根因。可選回滾(git revert && deploy)、關 Feature Flag、擴容、切備、限流/封禁異常流量。
  3. Communicate:對內開事故頻道(如 #incident-2026-04-10)、每 15–30 分鐘同步、明確角色(Incident Commander、Communicator、Engineers);對外更新狀態頁,必要時通知受影響用戶,表述要誠實。
  4. Resolve:發佈修復;用指標確認恢復(不只是“報錯消失了”);用摘要關閉事故頻道。
  5. 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

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜