IncidentPilot — 운영 중인 시스템 장애에 대한 증거 기반 AI 에이전트
요약
IncidentPilot은 운영 중인 시스템 장애 발생 시, 일반 지식 대신 구조화된 운영 지식을 활용하여 엔지니어가 조사할 수 있도록 돕는 AI 기반의 에이전트입니다. 이 에이전트는 런북, 과거 사례, 서비스 문서 등 다양한 출처를 연결하고 증거에 기반한 조사 계획을 수립합니다. 특히 서로 충돌하는 가이드라인까지 제시하며, 모든 추천의 출처(source)를 명확히 제공하여 신뢰성을 높였습니다.
핵심 포인트
- 운영 지식 기반 활용: 일반 모델 지식이 아닌 구조화된 운영 지식을 사용합니다.
- 증거 기반 조사: 런북, 과거 사례 등 다양한 출처를 연결해 조사 계획을 수립합니다.
- 충돌하는 가이드라인 제시: 상반되는 정보를 모두 보여주어 엔지니어의 판단을 돕습니다.
- 출처 명시: 모든 추천에 대한 원본 자료(source)를 제공하여 투명성을 확보했습니다.
This is a submission for the Sanity Challenge, Path One: Ship an Agent That Queries Real Content
운영 중인 시스템 장애(Production incidents)는 결코 하나의 명확한 답변만으로 발생하지 않습니다.
API 지연 시간(latency) 급증은 데이터베이스 포화, 연결 풀 고갈, 잘못된 배포 또는 실패하는 워크로드 등 여러 원인에 의해 발생할 수 있습니다. 어려운 부분은 또 다른 AI 답변을 생성하는 것이 아니라, 올바른 증거를 찾아내고 사용 가능한 가이드라인이 서로 충돌하는지 아는 것입니다.
그래서 저는 IncidentPilot을 만들었습니다.
IncidentPilot이란 무엇인가요?
IncidentPilot은 구조화된 운영 지식(structured operational knowledge)을 사용하여 엔지니어가 운영 중인 시스템 장애를 조사할 수 있도록 돕는 AI 기반의 장애 조사 에이전트입니다.
IncidentPilot은 모델의 일반적인 지식에만 의존하는 대신, Sanity Context MCP를 통해 **Sanity 지식 기반(Knowledge Base)**에서 관련 정보를 검색합니다.
이는 다음 항목들을 연결할 수 있습니다:
- 런북(Runbooks)
- 과거 장애 사례(Historical incidents)
- 서비스 문서(Service documentation)
- 경고 정의(Alert definitions)
- 아키텍처 문서(Architecture documentation)
- 장애 조사 정책(Incident investigation policies)
그리고 이러한 출처들을 사용하여 증거에 기반한 조사 계획을 수립합니다.
흥미로운 부분
저는 의도적으로 서로 충돌하는 운영 가이드를 만들었습니다. 예를 들어, 오래된 런북 하나는 다음과 같이 말합니다:
영향을 받는 파드(pods)를 재시작하십시오.
반면, 더 최신 런북은 다음과 같이 지시합니다:
재시작하기 전에 종료 및 컨테이너 증거를 수집하십시오.
제가 **
또한 각 추천의 출처(source)를 제공합니다.
아키텍처 (Architecture)
React UI
↓
Express 백엔드 (backend)
↓
AI 에이전트 (agent)
↓
Sanity Context MCP
↓
Sanity 지식 기반 (Knowledge Base)
↓
런북(Runbooks) / 장애 기록(Incidents) / 알림(Alerts) / 문서화(Documentation)
↓
증거 기반 조사 (Evidence-backed investigation)
Sanity Context를 사용한 이유 (Why Sanity Context?)
제가 Sanity Context를 사용한 주된 이유는 에이전트가 모델의 메모리에 의존하기보다는 구조화되고 큐레이션된 운영 지식에 접근해야 하기 때문입니다.
지식 기반(Knowledge Base)은 원본 자료(source material)를 포함하고 있으며, Context MCP는 에이전트를 위한 읽기 전용 인터페이스(read-only interface)를 제공합니다.
이를 통해 답변을 근본적인 운영 지식으로 추적할 수 있게 됩니다.
지식 기반 (Knowledge Base)
IncidentPilot의 지식 기반에는 다음 내용들이 포함되어 있습니다:
- 결제 API 서비스 문서화(Payment API service documentation)
- 데이터베이스 CPU 알림(Database CPU alert)
- API 지연 시간 알림(API latency alert)
- 파드 재시작 알림(Pod restart alert)
- 데이터베이스 CPU 런북(runbook)
- 현재 파드 재시작 런북(Current pod restart runbook)
- 레거시 파드 재시작 런북(Legacy pod restart runbook)
- 과거 장애 기록 INC-248 (Historical incident INC-248)
- 결제 아키텍처 문서화(Payment architecture documentation)
- 장애 조사 정책(Incident investigation policy)
도전 과제 (Challenge)
이 프로젝트는 DEV Community × Sanity Context 챌린지를 위해 구축되었습니다.
본 프로젝트는 다음의 챌린지 요구 사항에 중점을 두고 있습니다:
- Sanity Context의 의미 있는 활용
- 구조화된 운영 콘텐츠
- 지식 기반 검색(Knowledge Base retrieval)
- 에이전트 기반 조사(Agent-based investigation)
- 출처/출신지 가시성 (Source/provenance visibility)
- 상충되는 지침 감지 (Conflicting guidance detection)
- 사용 가능한 조사 UI (Usable investigation UI)
기술 스택 (Tech Stack)
- React
- Vite
- Node.js
- Express
- OpenAI
- Sanity Context MCP
- Sanity 지식 기반 (Knowledge Base)
- 마크다운(Markdown) 지식 소스
GitHub 링크 : IncidentPilot
사용해 보기 (Try it)
IncidentPilot에게 질문하기:
**
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기