에러·크래시 자동 수정

프로덕션 에러·크래시를 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 ── 품질·영향도 검토 → 리뷰 코멘트


  개발자 머지 승인
  1. 이벤트 트리거 — SDK가 보고한 예외 span 또는 크래시가 저장·인덱싱되고, 알림 규칙이 자동 수정 대상으로 평가하면 파이프라인이 시작됩니다.
  2. 분류 — Triage Agent가 신규 이슈를 중복 그룹으로 묶고 심각도를 산정합니다.
  3. 수정 — Fix Agent가 리포지토리를 탐색해 원인을 찾고 패치와 회귀 테스트를 작성한 뒤 새 브랜치에 커밋하고 PR/MR을 엽니다.
  4. 검증 — Validator Agent가 PR 본문과 diff 품질을 검토하고 리뷰 코멘트를 남깁니다.
  5. 머지 승인 — 개발자가 최종 검토 후 머지합니다. 자동 머지는 없습니다.

에이전트별 책임

Triage Agent

  • 입력 — 신규 이슈 메타데이터(에러 타입, 서비스, 세션 ID, 트레이스 ID).
  • 출력 — 그룹 ID, 심각도, 자동 수정 가능 여부.
  • 에스컬레이션 — 인프라 이슈, 외부 의존성 장애, 데이터 이슈는 자동 수정 대상에서 제외하고 사람에게 넘깁니다.

Fix Agent

  1. 리포지토리를 클론하고 관련 파일을 탐색합니다.
  2. 가능하면 세션 리플레이 또는 단위 테스트로 에러를 재현합니다.
  3. 패치 초안을 생성합니다.
  4. 회귀 방지 테스트를 추가합니다.
  5. 로컬 테스트 통과를 확인합니다.
  6. 브랜치를 푸시하고 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 링크가 포함되어 사람 리뷰어가 맥락을 바로 확인할 수 있습니다.

관련 문서