에러·크래시 자동 수정
프로덕션 에러·크래시를 AI 에이전트가 분석해 코드 수정 PR/MR까지 자동으로 작성하는 파이프라인입니다.
에러·크래시 자동 수정 파이프라인은 Sophonz SDK가 수집한 실제 사용자 에러를 분석해 원인을 찾고, 코드 수정과 회귀 테스트를 담은 PR/MR을 자동으로 작성합니다. 에러 모니터링이 알림에서 멈추지 않고 코드 수정 후보까지 이어지도록 만듭니다.
해결하는 문제
에러 모니터링 도구는 알림만 줄 뿐, 수정은 여전히 사람이 합니다. 스택 트레이스와 소스 코드를 연결하고 유사 이슈를 찾는 데 시간이 들고, 반복되는 단순 버그까지 개발자가 수작업으로 처리합니다. 이 파이프라인은 분류·원인 분석·코드 수정 시도를 에이전트에게 위임하고, 사람은 머지 승인처럼 판단이 필요한 지점에만 개입하도록 합니다.
NOTE — v2 계획
이 페이지는 v2 파이프라인 계획을 설명합니다. 에이전트 구성과 재시도 정책은 확정되었으나, 세부 동작과 임계값은 구현 과정에서 달라질 수 있습니다.
단계별 흐름
Sophonz SDK ──▶ 텔레메트리 저장·인덱싱
│
▼
알림 규칙 평가 (자동 수정 플래그 on)
│ 이슈 핸드오프
▼
Triage Agent ── 중복 그룹화 · 심각도 산정
│ 수정 위임 (리포 ID + 컨텍스트)
▼
Fix Agent ── 소스 탐색 · 재현 · 패치 · 테스트
│ branch + commit + PR/MR
▼
GitHub / GitLab App ──▶ CI 트리거
│ PR open 이벤트
▼
Validator Agent ── 품질·영향도 검토 → 리뷰 코멘트
│
▼
개발자 머지 승인- 이벤트 트리거 — SDK가 보고한 예외 span 또는 크래시가 저장·인덱싱되고, 알림 규칙이 자동 수정 대상으로 평가하면 파이프라인이 시작됩니다.
- 분류 — Triage Agent가 신규 이슈를 중복 그룹으로 묶고 심각도를 산정합니다.
- 수정 — Fix Agent가 리포지토리를 탐색해 원인을 찾고 패치와 회귀 테스트를 작성한 뒤 새 브랜치에 커밋하고 PR/MR을 엽니다.
- 검증 — Validator Agent가 PR 본문과 diff 품질을 검토하고 리뷰 코멘트를 남깁니다.
- 머지 승인 — 개발자가 최종 검토 후 머지합니다. 자동 머지는 없습니다.
에이전트별 책임
Triage Agent
- 입력 — 신규 이슈 메타데이터(에러 타입, 서비스, 세션 ID, 트레이스 ID).
- 출력 — 그룹 ID, 심각도, 자동 수정 가능 여부.
- 에스컬레이션 — 인프라 이슈, 외부 의존성 장애, 데이터 이슈는 자동 수정 대상에서 제외하고 사람에게 넘깁니다.
Fix Agent
- 리포지토리를 클론하고 관련 파일을 탐색합니다.
- 가능하면 세션 리플레이 또는 단위 테스트로 에러를 재현합니다.
- 패치 초안을 생성합니다.
- 회귀 방지 테스트를 추가합니다.
- 로컬 테스트 통과를 확인합니다.
- 브랜치를 푸시하고 PR/MR을 생성합니다.
실패하면 사유를 기록하고 Triage 단계로 롤백합니다.
Validator Agent
PR 본문과 diff 품질을 검토하고, 누락된 테스트를 지적하며, 이중 수정 충돌을 경고합니다. Validator는 읽기 전용 권한만 갖습니다.
재시도 정책
| 실패 유형 | 행동 |
|---|---|
| 재현 실패 | 유사 세션을 추가 탐색한 뒤 재시도 (최대 2회) |
| 테스트 실패 | 패치를 재설계 (최대 3회) |
| CI 실패 | Fix Agent가 CI 로그를 읽고 재패치 (최대 2회) |
| 상한 초과 | 사람에게 에스컬레이션하고 트레이스·시도 내역을 요약 |
사람의 개입 지점
자동화의 목표는 사람을 없애는 것이 아니라, 사람이 판단할 곳에만 집중하게 만드는 것입니다.
| 단계 | 에이전트 | 사람 |
|---|---|---|
| 에러 분류 | O | - |
| 원인 분석 | O | - |
| 코드 수정 시도 | O | - |
| PR/MR 머지 승인 | - | O |
| 프로덕션 배포 결정 | - | O |
차별점
- 트레이스 컨텍스트 보유 — 에러 스택만 보는 것이 아니라, 해당 트레이스의 프론트엔드·백엔드 span 전체를 에이전트에 전달합니다.
- 세션 리플레이 연계 — 재현이 필요하면 RUM 세션에서 실제 사용자 세션을 재생해 참고합니다.
- 폐쇄망 지원 — 엔터프라이즈 온프레미스 배포에서도 자체 GitLab과 연동합니다.
보안과 안전장치
- 민감 경로(예: 인증·결제 관련 디렉터리)는 자동 수정을 비활성화하는 플래그가 기본값입니다.
- 시크릿 수정과 인프라 코드는 자동 수정 대상에서 제외됩니다.
- 프로덕션 브랜치에 직접 푸시하지 않습니다. 항상 새 브랜치와 PR/MR을 거칩니다.
- 파이프라인 전체가 하나의 트레이스로 기록되며, PR 본문에 트레이스 ID 링크가 포함되어 사람 리뷰어가 맥락을 바로 확인할 수 있습니다.