Multi-Agent 12
Hierarchical 패턴으로 큰 Agent 조직 관리하기
Supervisor 하나를 크게 만들면 모든 규모를 처리할 수 있다고 생각하기 쉽다.
근거 · 교안 p32-p34
1장: 단일 Supervisor, 왜 한계에 부딪히는가?
솔라는 태블릿 화면에 네모와 선들을 한창 늘어놓고 있었다. 가장 위에는 큼직한 네모 하나, ‘슈퍼바이저(Supervisor)’. 그 아래로는 수십 개의 작은 네모, ‘워커(Worker)’들이 빽빽하게 이어져 있었다. 마치 거대한 문어의 머리에서 수많은 다리가 뻗어 나가는 모양새였다.
“언니, Agent가 많아지면 그냥 Supervisor를 엄청 강력하게 만들면 되는 거 아니야?”
솔라가 화면을 거실 테이블 너머에 앉은 루나에게 휙 돌려 보이며 말했다.
“요즘 컴퓨터 성능도 좋잖아. 모든 요청을 한 번에 처리할 수 있는 초고성능 Supervisor 하나만 있으면, 아무리 많은 Worker가 있어도 문제없을 것 같은데. 굳이 복잡한 구조가 왜 필요한지 모르겠어.”
솔라의 그림 속에서, 모든 Worker로부터 뻗어 나온 선은 오직 하나의 Supervisor에게로 집중되고 있었다. 가장 단순하고 직관적인 지휘 체계였다.
루나는 솔라가 내민 태블릿을 잠시 들여다보더니, 고개를 들어 솔라를 바라보았다. 루나는 태블릿의 그림을 가리키는 대신, 다른 질문을 던졌다.
“강력하게 만든다는 게 구체적으로 어떤 뜻일까? 처리 속도가 아주 빠른 사람이라고 생각해볼까?”
“응, 그렇지. 1초에 수천 개의 요청을 처리할 수 있는 사람!”
솔라가 자신만만하게 대답했다. 그러자 루나가 재미있는 상상을 해보자는 듯 눈을 반짝였다.
“좋아. 그럼 솔라, 네가 세상에서 가장 유능하고 일 처리가 빠른 팀장이라고 상상해봐. 팀원이 열 명도, 백 명도 아니고… 천 명이야.”
“천 명?”
상상만으로도 입이 살짝 벌어졌다.
“응, 천 명. 그리고 그 천 명의 팀원이 각자 맡은 일을 하다가, 다음 단계로 넘어가려면 반드시 너의 확인과 승인을 받아야만 해. 아주 사소한 결정이라도 말이야. 어떨 것 같아?”
솔라는 잠시 생각에 잠겼다. 천 명의 팀장이라니, 왠지 멋지게 느껴졌다.
“내가 엄청 빠릿빠릿하니까 괜찮을지도? 결재 서류가 이메일로 쏟아져 들어오면, 그냥 ‘확인’ 버튼만 빠르게 누르면 되잖아!”
“단순히 버튼만 누르는 게 아니야.”
루나가 말을 이었다.
“각 작업이 제대로 되었는지, 다음 작업으로 넘겨도 안전한지, 혹시 예상치 못한 문제는 없는지, 그 모든 걸 네가 직접 ‘판단’하고 ‘결정’해야 해. 한 팀원이 ‘신제품 A 시장 분석 보고서 초안입니다. 이 방향으로 계속 조사할까요?‘라고 물어보면, 그 방향이 맞는지 검토해야 해. 동시에 다른 팀원이 ‘B 캠페인 광고 문구 1안, 2안, 3안입니다. 어떤 걸로 진행할까요?‘라고 물어보면, 그것도 네가 골라줘야 하고. 그런 요청이 천 명에게서 거의 동시에 밀려들어온다면?”
솔라의 표정이 미묘하게 변하기 시작했다. 처음의 자신감은 온데간데없었다. 머릿속으로 그 장면을 그려보는 듯했다.
“음… 내 메일함이 터져나가겠네. 내가 첫 번째 팀원의 보고서를 검토하고 답장을 보내는 동안… 나머지 999명은 전부 나만 기다리고 있는 거잖아. 아무리 내가 빨라도, 한 번에 한 가지 일밖에 못 보니까. 내 책상 앞, 그러니까 내 메일함 앞에 보이지 않는 줄이 끝도 없이 늘어서겠구나.”
솔라는 무언가 깨달았다는 듯 말을 이었다.
“결국 일이 진행되는 게 아니라, 내 결정을 기다리느라 멈춰있는 시간이 훨씬 더 길어지겠어. 회사는 돌아가지 않고, 모두 내 ‘승인’만 기다리는 거지. 아…”
탄식과 함께 한 단어가 솔라의 입에서 흘러나왔다.
”…이게 바로 병목 현상이구나.”
“바로 그거야.”
루나가 조용히 고개를 끄덕였다.
“Agent 시스템의 Supervisor도 똑같아. 아무리 처리 능력이 뛰어난 슈퍼컴퓨터라도, 모든 판단과 결정이 단 한 곳으로만 집중되면 그 지점이 시스템 전체의 속도를 발목 잡는 병목이 돼. 시스템 전체의 속도는 가장 빠른 Worker가 아니라, 가장 느린 지점, 바로 그 Supervisor의 결정 속도에 맞춰지게 되는 거지.”
솔라는 루나의 말을 들으며 자신의 태블릿 화면을 다시 들여다봤다. 문어처럼 수많은 다리를 거느린 거대한 Supervisor. 처음에는 가장 이상적이고 강력해 보였던 그 그림이 이제는 다르게 보였다. 수십, 수백 개의 길이 하나의 좁은 길목으로 합쳐지는 거대한 교통 체증의 현장 같았다.
“아… 그럼 내가 생각했던 ‘강력한 Supervisor’는 그냥 그 병목 지점의 처리 속도를 조금 높이는 것에 불과했네. 근본적으로 모든 걸 혼자 처리한다는 구조 자체가 문제였구나. Worker 수가 적을 땐 괜찮았겠지만, 시스템이 커질수록 문제는 걷잡을 수 없이 심각해지겠어.”
솔라는 그림 속 거대한 Supervisor 박스를 손가락으로 톡톡 건드렸다. 더 이상 강력함의 상징으로 보이지 않았다. 오히려 시스템 전체를 마비시킬 수 있는 거대한 위험 요소로 느껴졌다. 그녀는 미련 없이 그림을 지웠다. 텅 빈 화면을 보며 솔라가 혼잣말처럼 중얼거렸다.
“한 명의 Supervisor로는 안 된다는 건 이제 알겠어. 그럼 이 병목은 어떻게 해결해야 하지? 관리 책임을 효율적으로 나눌 방법이 있을까?“
2장: Supervisor의 Supervisor, 계층 구조의 등장
텅 비었던 솔라의 태블릿 화면은 다시 분주해졌다. 지난번의 거대한 단일 Supervisor와 수많은 Worker 그림은 온데간데없었다. 대신, 화면 위쪽에는 세 개의 ‘Supervisor’ 네모 상자가 나란히 놓여 있었고, 전체 Worker들이 세 그룹으로 나뉘어 각각의 Supervisor에게 연결된 모습이었다. 병목 지점을 여러 개로 나누어 교통을 분산시키려는 시도였다.
솔라는 자신이 만든 새로운 구조를 보며 고개를 갸웃거렸다. 천 명의 결재를 기다리던 한 명의 팀장 대신, 약 333명씩 담당하는 세 명의 팀장을 둔 셈이었다. 확실히 한 명에게 모든 부담이 쏠리는 것보다는 나아 보였다. 하지만 무언가 근본적인 문제가 해결되지 않은 듯한 찜찜함이 남았다. 그녀는 그림을 이리저리 확대하고 축소하며 중얼거렸다. “책임을 나눈 건 좋은데… 이 세 명의 Supervisor들은 서로 어떻게 협력하지? 만약 전체 프로젝트의 방향을 바꿔야 할 땐 누가 결정하지? 결국 이 세 명에게 동시에 명령을 내릴 누군가가 또 필요한 거 아닌가?”
“그럼 결국 그 ‘누군가’가 새로운 병목이 되는 걸까?”
솔라의 혼잣말을 들은 루나가 조용히 다가와 태블릿 화면을 들여다보았다. 루나는 솔라의 새로운 그림을 손가락으로 가리켰다.
“이 Supervisor 세 명이 완전히 다른 회사에서 일하는 게 아니라면, 분명 그들을 조율하고 전체적인 목표를 제시할 존재가 필요하겠지. 솔라 네 생각대로, 그 존재에게 다시 모든 결정권이 집중된다면 문제는 원점으로 돌아갈 거야.”
“맞아! 바로 그거야. 그럼 Supervisor를 늘리는 건 의미가 없잖아. 이걸 어떻게 해결해야 하지?”
솔라는 답답한 듯 태블릿 화면을 껐다. 평평하게 늘어놓은 Supervisor들이 마치 해결책이 아니라, 문제를 더 복잡하게 만든 것처럼 느껴졌다.
루나는 잠시 생각하더니, 거실 한쪽에 놓인 잡지꽂이에서 비즈니스 잡지 한 권을 꺼내 들었다. 그녀는 특정 페이지를 펼쳐 테이블 위에 올려놓았다. 그곳에는 어떤 대기업의 조직도가 그려져 있었다. 가장 위에는 ‘CEO’가 있었고, 그 아래로 ‘전략기획본부’, ‘개발본부’, ‘마케팅본부’ 같은 여러 본부가 나무줄기처럼 뻗어 있었다. 그리고 각 본부 아래에는 여러 ‘팀’이, 팀 아래에는 ‘팀원’들이 자리 잡고 있었다.
“이 그림, 우리 문제랑 비슷해 보이지 않아?”
솔라는 잡지에 그려진 복잡한 조직도를 들여다보았다. CEO, 본부장, 팀장, 팀원… 수많은 네모와 선들이 얽혀 있었다.
“회사 조직도잖아. 이걸 Agent 시스템에 대입해보라고?”
“한번 해볼까? 팀원들은 실제로 일을 하는 ‘Worker’ Agent라고 생각해보자.”
루나의 말에 솔라는 다시 태블릿을 켰다. 그녀는 잡지를 보며 새로운 그림을 그리기 시작했다. 맨 아래에 작은 ‘Worker’들을 그렸다. 그다음, 서너 개의 Worker를 묶어 선을 긋고, 그 위에 ‘팀장 Supervisor’라고 이름 붙인 네모를 그렸다.
“팀장들이 팀원들, 그러니까 Worker들을 직접 관리하는 거지. 좋아.”
솔라는 이어서 여러 개의 ‘팀장 Supervisor’들을 묶어 다시 선을 긋고, 그 위에 ‘본부장 Supervisor’라는 더 큰 네모를 그렸다. 마지막으로, 모든 본부장들을 묶어 가장 위에 단 하나의 ‘CEO Supervisor’를 그렸다. 그림을 완성하고 나자, 솔라는 놀란 표정을 지었다.
“아…”
그녀가 처음 그렸던, 여러 Supervisor가 수평으로 늘어선 구조와는 완전히 다른 모양이었다. 꼭대기의 한 점에서 시작해 아래로 갈수록 넓게 퍼지는, 마치 나무를 거꾸로 뒤집어 놓은 듯한 ‘트리(Tree)’ 구조였다.
“내가 아까 그렸던 그림이랑은 완전히 다르네. 나는 Supervisor들을 그냥 옆으로 나열하기만 했는데, 이건… Supervisor 위에 또 다른 Supervisor가 있잖아. 관리자를 관리하는 관리자가 있는 셈이네.”
솔라는 방금 전까지만 해도 ‘관리자를 늘려봤자 결국 그들을 관리하는 또 다른 병목이 생길 뿐’이라고 생각했다. 하지만 조직도를 직접 그려보고 나니 생각이 바뀌었다. 이것은 단순히 관리자의 수를 늘리는 문제가 아니었다. 관리의 ‘단계’ 혹은 ‘계층’을 만드는 문제였다.
“CEO가 모든 신입사원의 업무를 일일이 검토하고 승인하지는 않잖아. CEO는 본부장들에게 각 본부의 목표를 알려주고, 본부장들은 그 목표를 달성하기 위해 자기 본부의 팀들을 조율하고, 팀장들은 팀원들에게 구체적인 업무를 지시하고 결과를 확인하지. 책임과 역할이 단계별로 나뉘어 있어.”
솔라는 자신의 새로운 그림을 보며 깨달음을 얻었다. ‘Supervisor가 또 다른 Supervisor를 관리하는 구조’. 처음 들었을 때는 그저 복잡하고 비효율적인 말장난처럼 들렸을지 모른다. 하지만 이제 그 문장은 거대한 시스템이 마비되지 않고 유기적으로 움직이게 하는 핵심 원리로 다가왔다. 병목을 해결하는 열쇠는 책임의 분산이되, 무질서한 분산이 아닌 ‘계층적 분산’에 있었다.
그녀는 만족스러운 표정으로 새로 그린 트리 구조도를 저장했다. 하지만 이내 새로운 궁금증이 고개를 들었다.
“좋아, 구조는 알겠어. 이렇게 계층을 만들면 병목이 해결된다는 건데… 그럼 각 단계의 Supervisor들은 정확히 ‘무엇’을 다르게 하는 걸까? CEO Supervisor가 ‘우리 회사 이번 분기 목표는 시장 점유율 10% 상승!’이라고 명령을 내리면, 가장 아래에 있는 Worker Agent까지 그 일이 어떻게 전달되고 실행되는 거지? 그냥 명령을 아래로 전달만 하는 거라면, 중간 단계는 왜 필요한 거야?“
3장: ‘무엇을 할까’와 ‘어떻게 할까’: 책임 위임과 모듈화의 힘
솔라는 태블릿 화면에 자신이 공들여 그린 트리 구조도를 띄워놓고 있었다. 꼭대기의 ‘CEO Supervisor’에서 시작해 ‘본부장 Supervisor’를 거쳐 수많은 ‘Worker’로 가지를 뻗어 나가는 계층 구조. 분명 한 명의 Supervisor가 모든 것을 떠안던 처음의 구조보다 훨씬 정교하고 안정적으로 보였다. 하지만 솔라는 화면의 중간 계층, ‘본부장 Supervisor’라고 이름 붙인 상자들을 손가락으로 톡톡 건드리며 미간을 찌푸렸다.
이 중간 관리자들이 없다면 CEO가 모든 팀장을 직접 관리해야 하니 병목이 생길 것이고, 팀장들이 없다면 본부장이 모든 실무자를 상대해야 하니 마찬가지일 것이다. 구조적으로 필요하다는 건 알겠다. 하지만 그들의 역할이 구체적으로 무엇인지가 명확하게 와닿지 않았다. 솔라는 혼잣말처럼 중얼거렸다. “CEO가 내린 명령을 그냥 아래로 전달만 하는 역할이라면, 굳이 이 비싼 중간 관리자를 둘 필요가 있나? 그냥 더 성능 좋은 우편배달부 아닌가?”
“그 우편배달부가 편지의 내용을 다시 써서 보낸다면 어떨까?”
솔라의 질문을 들은 루나가 조용히 다가와 말했다.
“단순히 봉투만 바꿔서 전달하는 게 아니라, 받는 사람에 맞춰 내용을 완전히 새로 번역하고, 더 구체적인 지침을 덧붙여서 말이야.”
“내용을 다시 쓴다고?” 솔라는 고개를 갸웃거렸다. “명령을 왜곡하면 안 되잖아.”
“왜곡이 아니라 구체화지.” 루나는 테이블 위에 놓인 빈 노트를 솔라 쪽으로 밀어주었다. “우리가 함께 ‘대규모 콘텐츠 생성 프로젝트’를 한다고 상상해보자. 내가 최상위 Supervisor, 즉 CEO 역할을 할게. 그리고 이런 지시를 내리는 거야.”
루나는 노트 맨 위에 큼지막하게 썼다.
[ 목표: ‘미래 도시’를 주제로 대규모 영상 시리즈 제작 (총 10편) ]
“자, 이게 내 지시야.” 루나가 말했다. “이걸 받은 하위 Supervisor들은 이제 뭘 해야 할까? 그냥 이 문장을 그대로 복사해서 밑에 있는 수많은 Worker Agent들에게 똑같이 전달만 하면 일이 진행될까?”
솔라는 그 상황을 상상해봤다. 수백 명의 Worker들이 전부 똑같은 한 문장짜리 지시를 받는 모습. 혼란 그 자체였다. “아니… 누구는 자료 조사를 시작할 거고, 누구는 대본을 쓰려고 할 거고, 누구는 갑자기 영상 편집 툴을 켤지도 몰라. 완전히 중구난방이겠는데. 뭘 먼저 해야 할지도 모르고.”
“바로 그거야. 최상위 Supervisor의 지시는 전략적이고 추상적이야. ‘무엇을 할 것인가(What)‘에 집중하지. 이걸 실제로 실행 가능한 일로 만드는 게 바로 중간 계층의 역할이야.”
루나는 첫 번째 목표 아래에 두 개의 중간 상자를 그렸다. 하나는 ‘콘텐츠 기획 Supervisor’, 다른 하나는 ‘제작 Supervisor’라고 적었다. 그리고 ‘콘텐츠 기획 Supervisor’가 할 법한 일을 그 아래에 적어 내려갔다.
[ ‘콘텐츠 기획 Supervisor’의 역할 ]
- ‘미래 도시’ 주제를 10개의 구체적인 소주제로 분할 (예: 자율주행, 수직 농업, AI 도우미…)
- 각 소주제에 필요한 자료 조사 항목 정의 (보고서, 이미지, 통계 데이터)
- 조사 담당 Worker Agent들에게 작업 할당
솔라는 루나가 써 내려간 목록을 보며 눈을 동그랗게 떴다. “아! CEO의 ‘미래 도시 영상 만들기’라는 막연한 목표를 ‘자율주행 자료 조사하기’ 같은 구체적인 실행 계획으로 바꿔주는 거구나. 이 Supervisor는 ‘어떻게 할 것인가(How)‘를 고민하네.”
“맞아. 그리고 ‘제작 Supervisor’는 ‘콘텐츠 기획 Supervisor’에게서 완성된 대본과 자료를 넘겨받아서, 촬영과 편집이라는 또 다른 ‘How’를 담당하겠지. 이렇게 각 Supervisor는 자신의 전문 분야에 맞춰 상위의 ‘What’을 하위의 구체적인 ‘How’로 변환하고 책임을 지는 거야. 이것이 바로 책임의 위임이야. CEO는 더 이상 자율주행 자료를 어떻게 찾을지 걱정할 필요가 없어. 오직 ‘콘텐츠 기획’이 잘 진행되는지만 확인하면 되니까. 덕분에 병목이 사라지는 거지.”
솔라는 무릎을 탁 쳤다. “그렇구나! 계층은 단순히 명령을 전달하는 통로가 아니라, 책임을 나누고 문제를 분해하는 장치였어.”
루나가 덧붙였다. “그리고 또 하나의 큰 장점이 있어. 만약 자료 조사를 하는 Worker Agent들의 성능이 떨어져서 프로젝트 전체가 느려진다고 해보자. 그럼 어떻게 할까?”
“음… ‘콘텐츠 기획 Supervisor’가 담당하는 부분이니까, 그쪽 팀을 통째로 바꾸면 되지 않을까? 더 성능 좋은 자료 조사 Agent들로 구성된 팀으로.”
“정확해. ‘제작 Supervisor’ 팀은 아무런 영향을 받지 않고 자기 일을 계속할 수 있어. 이렇게 기능 단위로 팀이 구성되어 있어서, 필요에 따라 특정 부분만 쉽게 교체하거나 확장할 수 있지. 이걸 모듈화라고 불러. 마치 레고 블록처럼 말이야.”
솔라는 이제 모든 조각이 맞춰지는 기분이었다. 그녀는 자신의 태블릿에 그려진 트리 구조도를 다시 보았다. 이제 그저 복잡하게 얽힌 선과 상자가 아니었다. 거대한 목표가 어떻게 구체적인 행동으로 변환되고, 각자의 책임 아래 효율적으로 실행되는지를 보여주는 유기적인 시스템 설계도였다. 단일 Supervisor의 병목 현상을 해결하는 열쇠는 단순히 관리자를 늘리는 것이 아니라, ‘무엇을 할까’와 ‘어떻게 할까’의 책임을 현명하게 나누고 위임하는 계층적 구조에 있었다.
솔라는 잠시 생각에 잠기더니, 새로운 페이지를 열었다. 그리고 스스로에게 문제를 냈다. ‘실시간으로 전 세계 뉴스를 수집, 요약해서 사용자에게 전달하는 AI 시스템을 만든다면?’
그녀는 망설임 없이 화면에 새로운 조직도를 그리기 시작했다.
맨 위에는 [전체 서비스 총괄 Supervisor]. 그의 역할은 단 하나, ‘사용자에게 시의성 있는 고품질 뉴스 요약을 제공한다’는 ‘What’을 정의하는 것이다.
그 아래, 솔라는 세 개의 중간 Supervisor를 배치했다. [데이터 수집 Supervisor], [콘텐츠 가공 Supervisor], [배포 Supervisor]. 각각은 상위의 ‘What’을 받아 자신만의 ‘How’로 변환하는 책임을 진다.
마지막으로 그녀는 [콘텐츠 가공 Supervisor] 아래에 다시 두 개의 하위 Supervisor, **[기사 요약 Supervisor]**와 **[번역 Supervisor]**를 그려 넣었다. 가장 구체적인 ‘How’를 실행할 Worker Agent들을 지휘하는 역할이었다.
솔라는 자신이 완성한 조직도를 보며 만족스럽게 미소 지었다. 어떤 Supervisor에게 병목이 생길지, 문제가 생기면 어떤 ‘모듈’을 교체해야 할지 한눈에 보였다. 더 이상 거대하고 복잡한 시스템 앞에서 막막함을 느끼지 않았다. 그녀는 이제 거대한 문제를 잘게 나누고, 각자에게 명확한 책임을 부여하여 효율적으로 해결하는 방법을 손에 넣은 것이다.