목록으로

Responsibility Partitioning

책임 분할

책임과 소유OCLS OWN

결과를 소유할 주체와 책임 경계를 명확히 정의한다.


Context

여러 에이전트가 한 시스템 안에서 공동 목표를 수행할 때, 각 에이전트의 역할과 경계가 흐릿하면 기능이 중복되고 책임이 비고 장애를 누구에게 물을지 알 수 없게 된다. 시스템이 커질수록 '누가 무엇을 책임지는가'라는 질문에 답하기 어려워진다.

Problem

역할을 나누지 않고 기능만 더하면 에이전트끼리 책임이 겹치거나 아무도 소유하지 않는 회색 영역이 생긴다. 장애가 나도 원인을 특정 에이전트로 좁힐 수 없고 개선 방향도 흐려진다. 결국 시스템의 어떤 행동에도 책임질 주체가 사라진다.

Forces

  • 에이전트의 독립성을 높이면 협업 비용이 줄지만 너무 잘게 쪼개면 조정 오버헤드가 커진다.
  • 책임 경계가 뚜렷할수록 테스트와 교체가 쉬운 반면 경계를 잘못 나누면 불필요한 핸드오프가 생긴다.
  • 처음부터 완벽히 나누려 들면 분석 마비에 빠지고 나누지 않고 시작하면 나중에 리팩토링 비용이 급증한다.

Solution

시스템의 최종 목표를 하위 책임으로 쪼개고 각 책임을 한 에이전트에 배정한다. 나누는 기준은 '이 에이전트가 무엇을 설명할 수 있는가'다. 각 에이전트는 자기 책임 범위 안에서 스스로 판단하고 실행하되, 범위를 넘는 작업은 명시적 핸드오프로 다른 에이전트에 넘긴다. 나눈 뒤에는 각 경계에 Module Contract를 부여해 계약 기반 협업 구조를 만든다.

판단 질문

이 책임은 다른 에이전트로 분리될 만큼 독립적인가?

적용 시나리오

예시 시나리오 — 본 페이지의 수치와 기업명은 패턴 설명을 위한 가상 사례이며, 실측 데이터가 아닙니다.

고객 상담 시스템 초기 버전에서는 한 에이전트가 문의 분류, 응답 생성, 에스컬레이션 판단, 품질 검토를 모두 맡았다. 처음에는 잘 돌아갔지만 문의량이 늘자 문제가 드러났다. 응답 품질이 떨어져도 분류가 틀린 탓인지 생성이 부실한 탓인지 가릴 수 없었고, 에스컬레이션 기준을 바꾸면 응답 생성까지 흔들렸다. 책임을 갈라 Intake Agent(분류), Response Agent(응답), Escalation Agent(에스컬레이션), QA Agent(검토)로 나누자 각 에이전트를 따로 평가하고 개선할 수 있게 됐고, 장애가 나면 원인을 곧바로 짚어냈다.

이렇게 하면 무너진다

모든 기능을 한 에이전트에 몰아넣고 프롬프트로만 역할을 가르면 역할끼리 간섭한다. 분류 정확도를 높이려고 프롬프트를 손대면 응답 어조가 바뀌고, 에스컬레이션 기준을 조이면 정상 응답까지 막힌다. 결국 어떤 변경도 부작용을 가늠할 수 없는 상태가 된다.

구현 패턴 연결

  • Hierarchical Decomposition
  • Parallel Fan-out/Gather

상위 에이전트가 목표를 하위 책임으로 분해하고 위임하는 구조. 병렬 처리가 가능한 책임은 Fan-out으로, 순차 의존성이 있는 책임은 Hierarchical로 구현한다.

Academic References

  • Architecting Agentic Communities using Design Patterns — arXiv 2601.03624
  • ATAM: Method for Architecture Evaluation — Carnegie Mellon SEI

이 패턴을 적용하기

저장소에서 리뷰 스킬을 사용하고, 관련 아티클의 구현 결정과 비교한다. 각 예제를 자신의 권한, 데이터, 실패 조건에 맞춰 검토한다.

관련 구현 기록

  • 문제는 풀렸는데 왜 제품이 아닌가로그 모니터링 SaaS가 하던 일을 에이전트와 함께 직접 만들었다. 로그 수집과 분석, 로그를 근거로 한 개선까지 AI로 됐고 원하는 인터페이스도 얻었다. 그래도 제품은 아니었다. 문제 해결의 최소 조건과 제품의 최소 조건을 4계층 스택에 나란히 놓으면, 둘은 쓰는 사람과 운영하는 사람과 책임지는 사람이 갈라지는 지점에서 갈린다. 그래서 직접 만들지 살지는 대체의 문제가 아니라, 단계마다 어디까지 책임질지 고르는 문제다.
  • 토큰 전략 — 효율·밸런스·공격적, 그리고 인력 배분토큰을 아끼는 것과 태우는 것은 둘 다 전략이다. 같은 루프를 효율·밸런스·공격적 세 모드로 다르게 운영하고, 비즈니스 상황과 진화 단계에 맞춰 모드와 인력을 배분한다. 토큰 사용을 기술적 선택으로 정리한다.
  • Claude Code로 reopt architecture 5단계 실행하기진단→정의→순환→실행→평가 방법론을 Claude Code의 CLAUDE.md 자동 로드, slash command, sub-agent, skill에 매핑하여 실제 레포에 적용하는 실전 가이드.

함께 적용하는 패턴

  • 모듈 계약실행 단위의 조건, 권한, 실패 경로를 계약으로 선언한다.
  • 컨텍스트 라우팅각 주체에 필요한 정보만 전달되도록 정보 흐름을 설계한다.