본문 바로가기
AI 리뷰

Agentic AI 신뢰성 설계 7원칙 Bayer 사례로 정리 (2026)

by 정부우르사 2026. 6. 21.
반응형

"에이전트 데모는 멋진데, 막상 운영 환경에 올리면 왜 자꾸 무너질까요?"


📌 핵심 3줄 요약

  • Martin Fowler 사이트에 올라온 Bayer 의약 도메인 에이전트 사례에서 신뢰성을 만드는 7가지 원칙을 정리했습니다.
  • 7원칙은 모델이나 프레임워크를 바꾼다고 해결되지 않는 운영 레이어 체크리스트입니다.
  • 같은 원칙을 Claude Agent SDK와 LangGraph에 어떻게 매핑하는지 비교표로 한 번에 봅니다.

💡 결론부터: 신뢰성 있는 에이전트의 정의

이번 글의 출발점은 단순합니다. "환각이 없는 에이전트"를 만들 수는 없습니다. 대신 우리가 만들 수 있는 것은 실패해도 안전하게 멈추는 에이전트입니다. Bayer의 의약 도메인 에이전트가 운영 단계에 안착할 수 있었던 이유도 모델을 더 큰 것으로 바꿔서가 아니라, 실패가 일어나는 지점마다 검증과 관측, 격리 장치를 깔아 둔 덕분입니다.

따라서 7원칙은 "성능 끌어올리기"보다 "사고 났을 때 누가 어디에서 잡아내는가"에 대한 답에 가깝습니다.

💡 핵심 한 줄

신뢰성은 모델 품질이 아니라 운영 레이어에서 만들어진다. 7원칙은 그 운영 레이어의 최소 골격이다.


📊 Bayer 사례가 보여 준 7원칙

Martin Fowler 글에 정리된 원칙을 의역해 옮기면 다음 7가지입니다. 각각은 독립적으로 도입 가능하지만, 실제 운영에서는 보통 1·2·6번부터 깔고 나머지를 채워 갑니다.

  1. 역할 분리 — 거대한 만능 에이전트 대신 좁은 역할의 서브 에이전트로 쪼갠다.
  2. 결정적 도구 위임 — 계산·조회·정책 적용은 LLM이 아니라 일반 함수가 처리한다.
  3. 검증 루프 — 출력 직후 별도 검증자(critic)가 한 번 더 본다.
  4. 관측성 — 모든 호출과 도구 결과를 추적 가능한 trace로 남긴다.
  5. 평가셋·회귀 테스트 — 도메인 전문가가 만든 골든 데이터셋으로 매 배포마다 측정한다.
  6. 휴먼-인-루프 — 위험도가 높은 작업은 사람 승인 단계를 명시적으로 둔다.
  7. 실패 모드·격리 — 한 서브 에이전트의 실패가 전체를 무너뜨리지 않게 격리한다.

일곱 가지를 한 번에 다 도입하려 하지 않는 게 핵심입니다. Bayer 사례 역시 처음부터 7원칙을 갖춘 게 아니라 운영 사고가 한 번씩 날 때마다 한 칸씩 채워 간 흐름입니다.


🆚 7원칙 vs Claude Agent SDK / LangGraph 매핑

같은 원칙을 SDK·프레임워크에서 어떻게 구현하는지 한 줄로 정리한 표입니다. 코드는 개념을 보여 주는 골격으로, 실제 운영 코드는 더 두꺼워집니다.

원칙 Bayer 적용 포인트 Claude Agent SDK LangGraph
1. 역할 분리 의약 검색·요약·정책 검토를 별도 에이전트로 분리 subagents=[Agent(...)] 하위 에이전트 정의 StateGraph의 노드 단위로 역할 분리
2. 결정적 도구 위임 용량 계산·금기약 조회는 일반 함수가 처리 @tool 데코레이터로 일반 파이썬 함수 등록 ToolNode([func])로 결정적 노드 삽입
3. 검증 루프 출력 후 별도 critic 에이전트가 정책 적합성 재검토 검증용 서브 에이전트 + stop_when 조건 검증 노드 → 조건부 엣지로 루프
4. 관측성 모든 호출을 trace ID로 묶어 사후 분석 SDK 이벤트 스트림 + OpenTelemetry 익스포터 LangSmith 트레이싱 자동 연동
5. 평가셋·회귀 도메인 전문가가 만든 골든 셋으로 배포 전 회귀 SDK 외부에서 pytest + 평가 스크립트 직접 구성 LangSmith Evaluations 데이터셋·메트릭
6. 휴먼-인-루프 처방 관련 출력은 약사 승인 단계 통과 후 전달 permission_mode/도구 사용 승인 콜백 interrupt()로 그래프 일시 정지
7. 실패 모드·격리 서브 에이전트 한 곳의 오류가 본체로 번지지 않도록 격리 서브 에이전트별 컨텍스트 분리 + 타임아웃 노드 try/except + 폴백 엣지 정의

표를 한 칸씩 채워 본 결과, Claude Agent SDK는 1·2·3·6번에 강하고 LangGraph는 3·4·5·7번에 강한 편이라는 결론이 자연스럽게 나왔습니다. 한쪽만 쓰면 4·5번이나 6번이 비어 있게 되니, 실제 운영에서는 두 도구를 조합하거나 부족한 칸을 자체 코드로 메워야 합니다.


⚠️ 단점과 주의할 점

  • 7원칙 동시 도입은 비용 폭증 — Bayer도 단계적 도입이었습니다. 처음부터 평가셋·관측성·휴먼-인-루프를 다 깔면 PoC 단계에서 ROI가 무너집니다.
  • 평가셋 구축이 가장 어렵고 가장 자주 미뤄집니다. 도메인 전문가 시간을 확보하지 못하면 5번 원칙은 사실상 공란이 됩니다.
  • 휴먼-인-루프는 자동화 ROI를 깎습니다. 어떤 작업에 사람을 끼울지 위험도 등급을 먼저 정의해야 합니다.
  • 이 7원칙은 단발성 응답에는 과합니다. 멀티스텝·도구 호출 ≥3회 이상인 에이전트에서만 가치가 분명해집니다.

🙋 어떤 사람에게 맞을까

  • 맞는 경우 — 사내 운영 에이전트, 의료·금융·법무처럼 도메인 규제가 강한 영역, 멀티 에이전트로 확장 중인 팀
  • 안 맞는 경우 — 1회성 챗봇 데모, 개인용 자동화 스크립트, 단일 LLM 호출 한 번으로 끝나는 워크플로다.

✅ 핵심 정리

  • 신뢰성은 모델이 아니라 운영 레이어에서 만들어지고, 7원칙은 그 최소 골격이다.
  • Claude Agent SDK는 역할 분리·도구·승인 흐름에, LangGraph는 검증 루프·관측·격리에 강하다.
  • 한 번에 다 도입하지 말고 1·2·6번부터 깔고 평가셋·관측성을 차근차근 메운다.

🚀 지금 바로 할 일

  1. 현재 운영 중이거나 PoC 중인 에이전트의 실패 사례 5개를 수집해 어떤 원칙이 비어 있어서 발생했는지 분류합니다.
  2. 비어 있는 칸 중 가장 영향력 큰 한 가지를 골라 다음 스프린트에 넣습니다(보통 검증 루프 또는 휴먼-인-루프).
  3. 도메인 전문가와 함께 평가셋 10개부터 만들고 CI에 회귀 테스트로 붙입니다.

💬 의견

운영 중인 에이전트에서 가장 약한 고리가 7원칙 중 어느 칸이었는지 댓글로 공유 부탁드립니다.

참고 자료


작성자: AI 도구와 에이전트 운영에 관심 있는 한국어 기술 블로거. Claude Agent SDK·LangGraph·LangChain을 실제 워크플로에 붙여 본 경험을 바탕으로 한국어 사용자 관점에서 정리한다.

반응형