Przejdź do głównej zawartości

Reagowanie na incydenty wspomagane przez AI łączy Claude Code, Codex lub Cursor z Sentry, Grafaną, Datadogiem i PagerDuty przez serwery MCP tylko do odczytu. Agent układa alerty, wdrożenia i błędy w oś czasu ze źródłami, sprawdza hipotezy, przygotowuje mitygację, komunikaty i post-mortem. Każdą zmianę na produkcji zatwierdza incident commander, a powrót do normy potwierdza zapytanie do monitoringu.

Jest 02:47. PagerDuty budzi cię z powodu błędów w płatnościach, Grafana, Datadog i Sentry są otwarte w sześciu kartach, a product manager już pyta na kanale incydentu, kiedy będzie naprawione. Sama poprawka może zająć dwie minuty; czas zjada ustalenie, co się właściwie zepsuło. Ta strona jest dla dyżurnego developera, który prowadzi taki incydent, i dla tech leada odpowiedzialnego za proces obsługi incydentów. Pokazuje, gdzie agent pracuje w każdej fazie, jakie prompty wkleić i jakie bramki pozwalają zaufać jego wynikom bez czytania każdej linijki.

  • Podział na fazy: co robi agent, a o czym decyduje konkretna osoba, od alertu do post-mortemu.
  • Konfigurację MCP tylko do odczytu dla Sentry, Grafany, Datadoga i PagerDuty w Claude Code, Codeksie i Cursorze, wraz z przełącznikiem, który odbiera każdemu serwerowi prawo zapisu.
  • Sześć promptów do wklejenia: korelacja, weryfikacja hipotezy, przygotowanie mitygacji, sprawdzenie powrotu do normy, komunikat o statusie i szkic post-mortemu.
  • Tabelę decyzyjną: rollback, flaga funkcji czy poprawka do przodu, oraz test powrotu do normy, który zamyka incydent.
  • Sposób na post-mortem, w którym każdy czynnik przyczynowy zamienia się w test, regułę alertu albo ewaluację.

Gdzie agent pomaga w incydencie, a gdzie się zatrzymuje?

Dział zatytułowany „Gdzie agent pomaga w incydencie, a gdzie się zatrzymuje?”

Agent jest analitykiem i protokolantem incydentu. Nigdy nie obsługuje produkcji. Każda faza ma wynik, który sprawdzisz bez ufania prozie agenta.

FazaAgent robiDecyduje człowiekDowód, który sprawdzasz
WykrycieNic: monitoring budzi człowiekaDyżurny otwiera incydentID alertu w narzędziu do incydentów
KorelacjaBuduje oś czasu w UTC z alertów, błędów i wdrożeń—Każda linia wskazuje zapytanie, ID alertu, ID zgłoszenia lub SHA commita
DiagnozaSzereguje hipotezy z dowodami za i przeciwIncident commander wybiera, na podstawie której działaćŹródła ponownie otwarte przez drugie uruchomienie
MitygacjaPrzygotowuje krok z runbooka, revert albo zmianę flagiIncident commander zatwierdza, pipeline wykonujeLog audytowy systemu wdrożeń lub flag
Powrót do normyUruchamia zapytanie i porównuje z progami ustalonymi wcześniejCommander ogłasza powrót do normyWynik zapytania o SLO dołączony do incydentu
KomunikacjaPrzygotowuje każdy komunikat o statusieOsoba od komunikacji lub incident commander go publikujeOpublikowana wiadomość, podpisana nazwiskiem
WnioskiPisze szkic post-mortemu i testy regresjiWłaściciele usługi scalają pull request z post-mortememTesty i ewaluacje, które nie przechodzą na starym zachowaniu

Dwie sąsiednie strony opisują to, co dzieje się na granicach tego procesu. Jeśli chcesz zamknąć agenta triażowego na osobnym koncie serwisowym, z listą dozwolonych narzędzi i ćwiczeniem z wstrzykiwaniem promptów, przejdź do zawężonego triażu incydentów z AI. Gdy to agent spowodował incydent, zacznij od strony gdy incydent wywoła agent: tam ograniczanie skutków zaczyna się od odebrania agentowi tożsamości.

Podłącz źródła incydentów tylko do odczytu, zanim przyjdzie następny alert

Dział zatytułowany „Podłącz źródła incydentów tylko do odczytu, zanim przyjdzie następny alert”

Zrób to spokojnym popołudniem, a nie w trakcie incydentu. Konfiguracja MCP różni się tylko poleceniem albo plikiem; serwery, adresy URL i przełączniki trybu tylko do odczytu są takie same w każdym agencie. Pełny przewodnik instalacji, z zakresami OAuth i kosztem kontekstu, znajdziesz na stronie serwery MCP do obserwowalności.

SerwerOficjalny pakiet lub URL (sprawdzone 2026-09-26)Co wymusza tryb tylko do odczytu
Sentryhttps://mcp.sentry.dev/mcp (OAuth); stdio @sentry/mcp-server 0.42.0 dla instalacji self-hostedZawęź udostępniane narzędzia parametrem ?skills= w URL-u, na przykład ?skills=inspect,seer (README Sentry MCP, sprawdzone 2026-09-26). seer uruchamia analizy Seer; ściśle tylko do odczytu daje ?skills=inspect
GrafanaPyPI mcp-grafana 1.6.3, uruchamiany przez uvx--disable-write i konto serwisowe z rolą Viewer
Datadoghttps://mcp.datadoghq.com/v1/mcp (US1; UE używa mcp.datadoghq.eu)README nie opisuje przełącznika tylko do odczytu; zaloguj się jako użytkownik z adekwatną rolą
PagerDutyPyPI pagerduty-mcp 1.1.0, uruchamiany przez uvx (repozytorium wycofane w 2026 roku; nadal domyślnie tylko do odczytu). Utrzymywaną drogą jest hostowany zdalny serwer MCP PagerDuty z OAuth; zobacz jego bazę wiedzyDomyślnie tylko do odczytu; do triażu nigdy nie dodawaj --enable-write-tools

Uruchom w terminalu w katalogu głównym repozytorium usługi. -s project zapisuje .mcp.json, więc konfiguracja przechodzi przez review, a pojedyncze cudzysłowy zostawiają każde ${VAR} nierozwinięte aż do startu:

Okno terminala
claude mcp add -s project --transport http sentry 'https://mcp.sentry.dev/mcp?skills=inspect,seer'
claude mcp add -s project grafana \
-e GRAFANA_URL=https://yourstack.grafana.net \
-e 'GRAFANA_SERVICE_ACCOUNT_TOKEN=${GRAFANA_SERVICE_ACCOUNT_TOKEN}' \
-- uvx mcp-grafana --disable-write
claude mcp add -s project --transport http datadog https://mcp.datadoghq.com/v1/mcp
claude mcp add -s project pagerduty \
-e 'PAGERDUTY_USER_API_KEY=${PAGERDUTY_USER_API_KEY}' \
-- uvx pagerduty-mcp

W sesji uruchom /mcp, aby dokończyć logowania OAuth i sprawdzić, czy każdy serwer jest połączony.

Tryb tylko do odczytu jest cechą poświadczenia, a nie promptu. Token bez prawa zapisu wytrzyma agenta, którego ktoś namówił do działania; zdanie „niczego nie zmieniaj” już nie. Serwery wskazuj zwykłym językiem („Using the Grafana and Sentry MCP servers, …”). W Claude Code wzmianki @serwer:protokół://zasób odwołują się do zasobów MCP, a nie do narzędzi (sprawdzone na 2.1.283).

Uruchom agenta w chwili, gdy potwierdzasz alert. Pierwszy wynik, którego potrzebujesz, to oś czasu, w której każda linia wskazuje swoje źródło, bo tylko taką formę sprawdzisz w dwie minuty.

Interaktywnie zacznij w trybie planowania, w którym agent może odpytywać serwery, ale nie edytuje plików: claude --permission-mode plan, potem wklej prompt. Żeby skrypt dopisał oś czasu do zapisu incydentu, uruchom go bez interfejsu i pozwól tylko na serwery MCP:

Okno terminala
claude -p "$(cat prompts/correlate.md) Incident: $INCIDENT_ID" \
--allowedTools "mcp__sentry mcp__grafana mcp__datadog mcp__pagerduty" \
--permission-mode dontAsk \
--output-format stream-json --verbose > "timeline-$INCIDENT_ID.jsonl"

dontAsk odrzuca każde wywołanie narzędzia, które wymagałoby pytania, zamiast czekać na odpowiedź, której nikt nie udzieli (Claude Code 2.1.283). Serwery dodane z -s project wymagają jednorazowego zatwierdzenia, zanim się załadują, więc na świeżej maszynie lub runnerze CI to uruchomienie może wystartować bez narzędzi MCP i zwrócić oś czasu bez żadnych wywołań. Zatwierdź serwery projektu raz w sesji interaktywnej (albo dodaj je z -s user na maszynie, która uruchamia skrypt), a potem sprawdź claude mcp list, zanim zaufasz uruchomieniu bez interfejsu.

Przydatna odpowiedź jest krótka i sprawdzalna. Na przykład (ilustracyjnie):

02:30 payment-service v2.3.1 deployed [commit 9f3c2e1]
02:44 DB connection wait p95 150 ms -> 4.2 s [grafana: query A]
02:45 5xx rate 0.2% -> 15% [datadog monitor 81234]
02:47 ConnectionTimeoutError spike, first seen in v2.3.1 [sentry PAY-4F2]
02:47 PagerDuty incident triggered [pagerduty Q2X9]
Downstream: checkout-web 502s follow payment-service 5xx.
H1 connection pool too small after v2.3.1 (pool config changed in 9f3c2e1).
Against: none found.
H2 database saturation. Against: DB CPU flat at 35% [grafana: query B].

Jak sprawdzić główną hipotezę, zanim ktokolwiek zacznie mitygację?

Dział zatytułowany „Jak sprawdzić główną hipotezę, zanim ktokolwiek zacznie mitygację?”

Oś czasu podsuwa przyczynę, ale jej nie dowodzi. Zanim ktoś dotknie produkcji, poproś agenta, żeby spróbował obalić własną najlepszą hipotezę i wskazał, co by ją potwierdziło.

„Najmniejsza odwracalna akcja” to celowy zapis. Kieruje odpowiedź w stronę flagi albo revertu, które da się cofnąć, a nie spekulatywnej zmiany w kodzie pisanej pod presją.

Wybierz mitygację, zanim ktokolwiek napisze kod. Zadaniem agenta jest przygotować wariant wybrany przez incident commandera i z góry zapisać próg powrotu do normy.

SytuacjaMitygacjaCo przygotowuje agent
Wdrożenie w oknie incydentu i czysta poprzednia wersjaRollback przez pipelinePull request z revertem i krok rollbacku z runbooka
Zmiana jest za flagą funkcjiWyłączenie flagiDokładną flagę, jej obecne targetowanie i oczekiwaną zmianę metryki
Rollback jest niebezpieczny (poszła migracja, zmienił się kształt danych)Poprawka do przoduMinimalną łatkę z testem, który najpierw nie przechodzi, a potem przechodzi
Żadna zmiana nie koreluje (pojemność, awaria zależności)Skalowanie, failover albo zrzucanie ruchu według runbookaKrok z runbooka i liczby, które go uzasadniają

Nieprzećwiczona ścieżka rollbacku zawodzi o trzeciej w nocy. Jej budowę opisuje przećwiczony rollback z ludzką decyzją o produkcji, a to, kto może nacisnąć przycisk, strona zatwierdzanie produkcji jako granica systemu.

Mitygacja to faza, w której trzeba zwolnić. Od v2.1.283 (oba kanały wydań w dniu 2026-10-12) tryb auto jest trybem startowym sesji interaktywnych, więc tę sesję zacznij w trybie Manual, żeby każda akcja wymagała zgody:

Okno terminala
claude --permission-mode manual

Podczas incydentu nigdy nie używaj --dangerously-skip-permissions ani bypassPermissions. Agent otwiera pull request, a wdraża go pipeline.

Jak ogłosić powrót do normy, nie ufając podsumowaniu agenta?

Dział zatytułowany „Jak ogłosić powrót do normy, nie ufając podsumowaniu agenta?”

Powrót do normy to wynik zapytania porównany z progami zapisanymi przed wdrożeniem. Ustalanie poprzeczki po zobaczeniu liczb to prosta droga do uznania połowicznej poprawki za gotową. Agent uruchamia sprawdzenie i raportuje PASS albo FAIL; powrót do normy ogłasza incident commander.

Agent pisze szkic, publikuje konkretna osoba. Bot, który publikuje sam, prędzej czy później powie klientom coś, na co incident commander się nie zgodził.

W Slacku oficjalny serwer MCP jest częścią wtyczek: /plugin install slack@claude-plugins-official w Claude Code i codex plugin add slack@openai-curated w Codeksie (obie sprawdzone 2026-09-26). W planach Claude Team i Enterprise drogą do Slacka jest Claude Tag, który działa jako wspólna tożsamość organizacji, więc zanim zaprosisz go na kanał incydentu, sprawdź, jakie uprawnienia nadał mu administrator. Codex działa też ze Slacka: wspomnij @ChatGPT, a przy włączonym Cloud delegation ChatGPT wysyła pracę na repozytorium do zadania Codex Cloud (dokumentacja OpenAI, sprawdzone 2026-10-12).

Post-mortem opłaca się tylko wtedy, gdy każdy czynnik przyczynowy staje się sprawdzeniem, które zawiedzie, jeśli problem wróci. Agent odtwarza oś czasu z tych samych zapytań, które uruchamiał na żywo, więc szkic zaczyna się od dowodów, a nie od pamięci. Oznacz każdy czynnik klasą z taksonomii błędów, żeby powtarzające się przyczyny były widoczne w wielu incydentach.

Właściciel usługi przegląda post-mortem jako pull request, który trafia do repozytorium tylko razem z testami albo z podlinkowanymi zgłoszeniami dla każdego działania naprawczego. Gdy przyczyną była zmiana napisana przez agenta, przypadek ewaluacyjny trafia do zestawu ciągłych ewaluacji, dzięki czemu ten sam błąd zatrzyma build, zamiast kogoś budzić.

Skąd wiesz, że pracy agenta przy incydencie można ufać?

Dział zatytułowany „Skąd wiesz, że pracy agenta przy incydencie można ufać?”

Wynik agenta sprawdzają bramki, a nie ponowne czytanie:

  • Źródła, a potem audyt. Każda linia osi czasu ma źródło, a drugie uruchomienie otwiera je ponownie i oznacza jako VERIFIED, CONTRADICTED albo UNSOURCED. Prompt audytowy jest na stronie zawężony triaż incydentów z AI. Hipoteza oparta na linii bez źródła nie trafia do incident commandera.
  • Log wywołań narzędzi. Strumień stream-json z Claude Code i strumień JSONL z Codeksa rejestrują każde wywołanie MCP. Oś czasu bez wywołań za nią jest zmyślona.
  • Poświadczenia, nie instrukcje. O tym, czego agent może dotknąć, decydują role Viewer, --disable-write, lista umiejętności w Sentry (samo inspect dla ścisłego odczytu) oraz domyślny tryb tylko do odczytu w PagerDuty.
  • Progi ustalone z góry. Powrót do normy przechodzi albo nie względem liczb zapisanych w pull requeście przed wdrożeniem.
  • Zwykłe bramki dostarczania. Revert albo poprawka przechodzi przez review, CI i pipeline wdrożeń jak każda zmiana. Zobacz, jak przeglądać pull request agenta.
  • Podpis z nazwiskiem. Incident commander zatwierdza mitygację i ogłasza powrót do normy; właściciele usługi scalają post-mortem.

Żeby ocenić praktykę w skali kwartału, dla każdego incydentu śledź trzy rzeczy: minuty od alertu do pierwszej osi czasu ze źródłami, odsetek linii osi czasu oznaczonych przez audyt jako VERIFIED oraz działania z post-mortemów zamknięte z dołączonym sprawdzeniem. Uruchomienia, koszty i wywołania narzędzi samego agenta należą do panelu obserwowalności agentów.

Wprowadzaj ten proces w kolejności z tabeli na początku strony: najpierw korelacja tylko do odczytu, potem szkice komunikatów i post-mortemów, a przygotowywanie mitygacji dopiero wtedy, gdy zespół zobaczy, że osie czasu sprawdzają się w kilku prawdziwych incydentach.

Co psuje się w reagowaniu na incydenty z AI i jak z tego wyjść?

Dział zatytułowany „Co psuje się w reagowaniu na incydenty z AI i jak z tego wyjść?”

Agent podaje metryki, o które nigdy nie zapytał. Objaw: pewna siebie oś czasu bez wywołań narzędzi. Wyjście: sprawdź /mcp (Claude Code), codex mcp list albo ustawienia MCP w Cursorze; najczęściej winny jest wygasły token OAuth albo brakujący zakres. Uruchom ponownie z serwerami wymienionymi wprost i odrzuć każdą linię bez źródła. Pełna diagnostyka jest na stronie problemy z połączeniem MCP.

Serwer stdio kończy działanie zaraz po starcie. Objaw: Grafana albo PagerDuty nigdy się nie łączy. Wyjście: oba to pakiety Pythona, więc uruchamia się je przez uvx, a nie npx; zainstaluj uv na maszynie. Pakiet npm @leval/mcp-grafana to port społeczności, nie serwer Grafany.

Serwer Datadoga zwraca 401 albo złe dane. Objaw: uwierzytelnianie się nie udaje albo zapytania trafiają do pustej organizacji. Wyjście: dopasuj host MCP do regionu z adresu Datadoga; app.datadoghq.eu oznacza mcp.datadoghq.eu.

Agent wycisza, potwierdza albo zamyka alerty. Objaw: alerty milkną, a użytkownicy nadal widzą błędy. Wyjście: odbierz prawo zapisu u źródła (--disable-write, bez --enable-write-tools, bez umiejętności triage w Sentry) i wznów powiadamianie w narzędziu do incydentów.

Tekst z logów steruje agentem. Objaw: agent proponuje akcję, która przyszła z linii logu albo zgłoszenia. Wyjście: traktuj wiadomości z kanału, logi i ślady jako dane; trzymaj narzędzia zapisu poza zasięgiem i przeprowadź ćwiczenie z wstrzykiwaniem promptu ze strony zawężony triaż incydentów z AI, zanim agent dołączy do prawdziwego incydentu.

Komunikaty zalewają kanał. Objaw: ludzie przestają je czytać. Wyjście: publikuj tylko przy zmianie stanu albo w uzgodnionym odstępie, ogranicz komunikat do pięciu linii i niech publikuje człowiek.

Post-mortem obwinia model. Objaw: „AI się pomyliło” jako przyczyna źródłowa. Wyjście: zakończ łańcuch przyczyn na mechanizmie kontrolnym, który powinien był wyłapać zmianę, czyli brakującym teście, uprawnieniu albo ścieżce review, i postępuj według strony gdy incydent wywoła agent.