HSEOM GeckoHSEOM
Instagram

흑섬 TECH 블로그 - 데이터 기반 브리딩 기술

레오파드게코 브리딩에 데이터 분석과 AI 기술을 접목합니다. Python, NumPy를 활용한 체중 관리, 성장 추이 분석, 환경 데이터 시각화 등 실무에서 직접 사용하는 기술을 일반인도 이해하기 쉽게 설명합니다.

주요 카테고리

AI 카테고리

AI와 머신러닝을 활용한 레오파드게코 브리딩 기술과 데이터 분석 방법을 공유합니다.

48개의 글이 있습니다.

[AI 에이전트 5편] 멀티에이전트 — 역할 나눠 협업하다

AI 에이전트 5부작의 마지막 5편. 에이전트 하나에 모든 역할을 몰면 한계가 옵니다 — 멀티에이전트는 전문 에이전트가 역할을 나눠 병렬로 일하고 매니저가 종합합니다. 오케스트레이터-워커 패턴, 병렬 실행이 빠른 이유(합이 아닌 최댓값), 그리고 게코 교배 판정을 체중·지식(Neo4j)·환경 에이전트 3명이 병렬 검토하는 걸 파이썬 오케스트레이터와 우리 Workflow 도구로 실제 실행해 캡처했습니다. 오케스트라 비유 사진, Anthropic 공식 'Building Effective Agents' 가이드 캡처 포함. 생각→도구→연쇄→표준→협업으로 이어진 에이전트 한 바퀴를 마무리합니다.

카테고리: AI

작성일: 2026-06-23

예상 읽기 시간: 23

Back to Tech
AI·23min read·

[AI 에이전트 5편] 멀티에이전트 — 역할 나눠 협업하다

AI 에이전트 5부작의 마지막 5편. 에이전트 하나에 모든 역할을 몰면 한계가 옵니다 — 멀티에이전트는 전문 에이전트가 역할을 나눠 병렬로 일하고 매니저가 종합합니다. 오케스트레이터-워커 패턴, 병렬 실행이 빠른 이유(합이 아닌 최댓값), 그리고 게코 교배 판정을 체중·지식(Neo4j)·환경 에이전트 3명이 병렬 검토하는 걸 파이썬 오케스트레이터와 우리 Workflow 도구로 실제 실행해 캡처했습니다. 오케스트라 비유 사진, Anthropic 공식 'Building Effective Agents' 가이드 캡처 포함. 생각→도구→연쇄→표준→협업으로 이어진 에이전트 한 바퀴를 마무리합니다.

에이전트 하나로 다 시키면 한계가 온다

1~4편을 거치며 에이전트 하나가 꽤 강해졌습니다. 생각하고(1편), 도구 쓰고(2편), 여러 도구를 연쇄하고(3편), 표준으로 도구를 확장(4편)하니까요.
근데 일이 복잡해지면, 한 에이전트에 모든 역할을 몰아넣는 게 오히려 비효율이에요. 맥락이 길어져 흐려지고, 한 줄기씩 순차로만 처리하죠.

그래서 마지막 5편은 멀티에이전트입니다. 사람 팀처럼, 전문 에이전트가 역할을 나눠 동시에 일하고, 매니저가 결과를 종합합니다.

지휘자와 오케스트라 — 멀티에이전트 오케스트레이션의 비유

지휘자가 단원을 조율하듯, 매니저 에이전트가 전문 에이전트들을 오케스트레이션한다. (사진: Wikimedia Commons, Public Domain)

5편에서 하는 것: 단일 에이전트의 한계 → 오케스트레이션 패턴(매니저·워커·종합) → 병렬 실행이 빠른 이유 → 게코 교배 판정을 전문 에이전트 3명이 병렬 검토하는 걸 실제로 돌려(파이썬 오케스트레이터 + 우리 Workflow 도구) 캡처. LangGraph 같은 프레임워크는 이미 다룬 글(Deep Agents)로 갈음하고, 여기선 직접 만든 오케스트레이션에 집중합니다.



왜 에이전트를 여럿 두나요?

한 에이전트에 체중·지식·환경 판단을 다 몰면, 맥락이 길어져 흐려지고 한 번에 한 줄기씩 순차로만 처리합니다. 역할이 섞여 실수도 늘죠. 멀티에이전트는 사람 팀처럼 역할별 에이전트가 각자 짧고 명확한 맥락에서 집중하고, 독립적인 일은 동시에(병렬) 처리하며, 매니저가 결과를 종합합니다. 복잡한 일일수록 분업이 유리합니다.

단일 에이전트(혼자 다 처리) vs 멀티에이전트(역할 분업·병렬·종합) 비교

물론 간단한 일엔 단일 에이전트가 낫습니다. 굳이 나눌 이유가 없죠. 분업이 빛나는 건 역할이 뚜렷하고 서로 독립적일 때예요. 우리 게코 교배 판정이 딱 그런 경우라(체중·지식·환경은 따로 봐도 됨) 멀티에이전트로 가봤습니다.



어떻게 나눠 맡기나요? — 오케스트레이션

기본형은 오케스트레이터-워커 패턴입니다. 매니저(오케스트레이터)가 일을 잘게 나눠 워커 에이전트들에게 분배(fan-out)하고, 각 워커가 자기 몫을 처리한 뒤, 매니저가 결과를 모아 종합합니다. 지휘자가 단원을 조율하듯이요. 이 패턴은 Anthropic 공식 에이전트 가이드에도 기본형으로 나옵니다.

오케스트레이션 패턴 — 매니저가 워커에게 fan-out, 결과를 종합

이게 제가 지어낸 게 아니라, Anthropic의 'Building Effective Agents' 가이드가 워크플로우·에이전트 패턴으로 정리해 둔 내용이에요. 라우팅·병렬화·오케스트레이터-워커 같은 패턴이 그대로 나옵니다.

Anthropic 'Building Effective Agents' 공식 가이드 — 워크플로우 패턴

Anthropic 'Building Effective Agents' 가이드 (출처: anthropic.com/engineering)



나눠서 동시에 하면 빨라지나요?

네. 역할이 독립적이면 병렬로 돌릴 수 있습니다. 순차로 하면 총 시간이 ①+②+③로 쌓이지만, 동시에 돌리면 가장 오래 걸리는 하나만큼(max)이면 끝납니다. 체중·지식·환경 판단은 서로를 기다릴 필요가 없으니, 세 에이전트를 한꺼번에 돌리는 게 자연스럽습니다.

순차 실행(시간 합) vs 병렬 실행(최댓값) 비교
실습 — 멀티에이전트 오케스트레이터 (병렬) (셀 1)
from concurrent.futures import ThreadPoolExecutor

# 전문 에이전트 3명: 각자 자기 도구로 자료 모아 한 줄 소견
def weight_agent(ind): ...   # get_gecko_weight
def kb_agent(q):       ...   # search_care_kb (Neo4j)
def env_agent(zone):   ...   # check_environment

# 매니저: 3명에게 동시에 분배(fan-out) → 병렬 실행
with ThreadPoolExecutor(max_workers=3) as ex:
    results = [f.result() for f in [
        ex.submit(weight_agent, "A"),
        ex.submit(kb_agent, "교배 체중 산란 주의"),
        ex.submit(env_agent, "warm"),
    ]]

# 매니저(종합 에이전트): 세 소견을 합쳐 최종 판정
final = claude("아래 3개 소견을 종합해 최종 판정: ..." + briefs)

각 에이전트는 claude -p를 추론엔진으로, 자기 도구만 씁니다. ThreadPool로 동시에 돌리고, 매니저가 결과를 합칩니다.



실제로 돌려보면? — 게코 교배 판정

"A개체, 지금 교배 진행해도 될지 종합 판정해줘." 이 한 질문을 매니저가 받아 전문 에이전트 3명에게 동시에 분배했습니다. 체중 에이전트, 지식 에이전트(Neo4j KB), 환경 에이전트가 각자 자기 도구로 자료를 모아 소견을 내고, 매니저가 종합합니다. 셋을 병렬로 돌려 15초 만에 끝났습니다.

멀티에이전트 오케스트레이터 실행 — 3 에이전트 병렬 검토 후 매니저 종합 판정

재밌는 건 세 에이전트 의견이 갈렸다는 거예요. 환경은 "적합"인데 체중·지식은 "미달". 단일 에이전트라면 한 흐름에서 뭉뚱그렸을 판단을, 역할을 나누니 각 관점이 또렷하게 드러나고, 매니저가 그걸 저울질해 "교배 보류"로 종합합니다.

같은 작업을 우리가 실제로 쓰는 오케스트레이션 도구(Workflow)로도 돌려봤습니다. 일을 여러 에이전트에 분배(parallel)하고 결과를 모으는, 같은 패턴이에요. 이 블로그 시리즈의 검수·캡처도 사실 이렇게 여러 에이전트를 병렬로 돌려 만들었습니다. ㅎㅎ

Workflow 스크립트 — parallel로 전문 에이전트 fan-out 후 종합하는 실제 코드

코드는 단순합니다. parallel([ agent(체중), agent(지식), agent(환경) ])로 동시에 돌리고, 그 결과를 종합 에이전트에 넘기면 끝. 실제로 돌린 결과가 아래입니다.

우리 Workflow 도구 실행 — 전문 에이전트 3명 병렬 fan-out 후 매니저 종합 이 블로그도 멀티에이전트(Workflow)로 만든다 — parallel 분배 후 종합

정리 — 그리고 5부작을 마치며

5편 핵심부터 정리합니다.

  1. 한 에이전트에 모든 역할을 몰면 흐려집니다. 복잡한 일은 역할별 에이전트로 분업합니다.
  2. 오케스트레이터-워커 패턴: 매니저가 fan-out으로 분배하고, 결과를 모아 종합합니다.
  3. 역할이 독립적이면 병렬로 — 총 시간이 합(sum)이 아니라 최댓값(max)이 됩니다.
  4. 관점을 나누면 각 판단이 또렷해지고, 매니저가 그걸 저울질해 더 나은 결론을 냅니다.
  5. LangGraph 같은 프레임워크는 이 패턴을 더 정교하게 다룹니다(지난 Deep Agents 글 참고).
AI 에이전트 5부작 완주 — 기초·Tool use·멀티스텝·MCP·멀티에이전트

1편에서 '생각만 하던' 에이전트로 시작했습니다. 도구를 쥐여주고(2편), 여러 도구를 스스로 골라 연쇄하게 하고(3편), 표준 규격으로 도구를 무한히 확장하고(4편), 마지막으로 에이전트를 여럿 두어 협업하게 했습니다(5편).
제가 생각하는 이 시리즈의 핵심은, '생각하고 → 도구 쓰고 → 연쇄하고 → 표준으로 잇고 → 협업한다'는 에이전트의 한 바퀴를 작은 게코 사육 예시로 직접 돌려본 거예요. 도메인이 무엇이든 구조는 같습니다.

RAG 5부작에 이어 에이전트 5부작까지, 길게 따라오느라 고생 많으셨습니다. 다음엔 이 에이전트들을 더 큰 실전 문제에 붙여보는 이야기로 돌아올게요. ㅎㅎ

#AI에이전트#멀티에이전트#오케스트레이션#Workflow#Claude#병렬#Agent