CI/CD Feedback Agent

Program Overview

CI/CD Feedback Agent

배포 후속 작업(실패 분석, 메시지 카드 생성, 수정 권장 피드백, Dev Agent 전달)을 LangGraph 기반 워크플로우 가 자동 수행합니다. Jenkins 콜백을 받아 SonarQube 게이트와 LLM 분석을 결합하고, 결과는 대시보드의 배포 결과 리포트 로 노출됩니다.

현재는 prototype 브랜치 기준 — Jira 연계 및 Slack 송신은 제외되어 있고, 인증·사용자 구분은 가짜 유저 스위처로 대체합니다.

01

한눈에 보는 시스템

유저와 시스템은 따로 도는 두 흐름이 아니라 단계마다 서로를 호출합니다. 왼쪽 열은 사용자가 겪는 단계, 오른쪽 열은 그 순간 백엔드가 닿는 외부 시스템 — 가운데 화살표가 누가 누구를 호출하는지(방향 + API)를 보여줍니다. 'LangGraph 워크플로우' 카드는 클릭하면 구현된 그래프 상세가 팝업으로 열립니다.

01
배포 지시
Jenkins UI 에서 평소처럼 빌드를 실행합니다. 이후 백엔드 파이프라인은 사용자 개입 없이 자동으로 결과 카드를 만들어둡니다.
Jenkins Build
자동 처리 파이프라인사용자 개입 없음
FastAPI Backend
POST /webhooks/jenkins · Job row 생성
auto
DB · 결과 카드 저장
jobs.steps[].output.rendered
auto
API 호출
Backend API · DB
저장된 결과 카드 응답
결과 카드 보고 유저가 분기 (유저 시점에서만 분리)
성공
배포 결과 레포트 확인
success 톤의 결과 카드 + LLM 요약. 추가 후속 작업 없음.
종료
실패
결과 레포트 확인
실패 사유 / LLM 분석 / Jenkins 로그 발췌 / SonarQube 위반 등이 카드에 담긴다.
사용자 분기
case1
수동 조치
코드 수정 후 재배포
사용자가 IDE 에서 직접 고친 뒤 Jenkins 재실행 (01 단계로 복귀).
case2
스펙 생성
generate_dev_spec 요청
GUID 복사
유저가 생성된 spec 의 GUID 를 복사
Dev Agent 전달
로컬 개발도구의 Dev Agent 에 GUID 로 직접 전달
백엔드 DBpromptschannelsintegrationsjobsspec_guid
02

프로젝트 적용 시나리오

고객사 인터뷰부터 운영 단계까지, 이 에이전트를 실제 프로젝트에 도입할 때 거치는 단계와 역할별 사용 흐름을 정리합니다.

step

사전작업

고객사 인터뷰
적용 가능 여부 / 운영 환경 확인
배포 사후 webhook 추가 요청JenkinsGitLab CI
CI/CD Feedback Agent 가 호출되도록 트리거 등록
로그 조회 권한 요청SonarQubeJenkins
실패 원인 분석을 위해 console 로그 + 빌드 메타 read 권한 필요
step

구체 적용방안

UIAIND 플랫폼
별도 탭으로 제공
권한관리AIND 플랫폼
플랫폼 기본 권한관리 이용
LLM 연계AIND 플랫폼
플랫폼 공용 LLM 이용 — 별도 키 발급 불필요
step

사용 시나리오

3-1CICD 담당자 / 아키텍트
3-2개발자
  • GUID 복사 → Dev Agent
    feedback-XXXXXXXX 고유 GUID + 복사 버튼으로 Dev Agent 와 직접 연계
03

Dev Agent Spec 합성

실패·수정 권장 결과의 컨텍스트를 모아 generate_dev_spec 가 하나의 markdown spec 으로 합성하고, GUID 가 박힌 채 저장·조회·외부 전달까지 이어집니다.

spec 생성 입력

합성에 들어가는 컨텍스트

Jenkins 콘솔 로그
failure 컨텍스트 발췌
LLM 분석 결과
case · summary · root_cause · suggested_next_action · evidence
SonarQube 위반
게이트 실패 조건 + 상위 위반 이슈 (파일:라인:룰)
양식 템플릿format
파이프라인 피드백 스펙 양식.md
generate_dev_spec
LangGraph 노드

저장 / 조회 / 외부 전달

GUID 가 박힌 spec 의 행선지

spec.md
feedback-<sha1(job:step:finished_at)[:8]>
GUID
저장
job.steps[].output.spec + spec_guid
결정적 · 백필 idempotent
내부 조회
/jobs/{id}/spec
react-markdown + GFM
외부 fetch
GET /specs/{guid}
markdown · ?format=json