1️⃣ 멀티에이전트의 개념
- 서로 다른 맥락과 도구, 지시사항을 가진 두개 이상의 에이전트
- 병렬 작업, 하위 에이전트에 위임 등 다양한 구조가 가능
2️⃣ 왜 멀티에이전트를 쓰는가?
- 맥락의 분리: 각 에이전트가 자신의 작업에 필요한 맥락만 유지하면, 하나의 에이전트가 모든 작업의 내용이 섞인 무거운 맥락을 유지할 필요가 없음.
- 도구와 지시사항의 분리: 각 에이전트가 맡은 역할과 기능에 맞는 특화된 작은 셋의 도구 집합과 지시사항을 설계할 수 있음.
- 동시에 일하기: 성질상 서로 의존적이지 않은 작업은 다른 에이전트가 맡아 동시에 처리하는 것이 효율적임.
3️⃣ 에이전트 사이의 소통
- 작업 큐: 작업 요청을 큐에 쌓고 작업에이전트가 하나씩 가져가 처리함
- 이벤트 구독: 새 알림, 특정 작업의 완료 등 이벤트가 일어나면, 거기 구독하고 있던 에이전트들이 깨어나서 작업함
- 핸드오프: 한 에이전트가 다른 에이전트에게 일을 넘겨줌. 예로, 접수 에이전트가 접수완료 후 상담에이전트에게 넘겨줌
- 공동작업공간: 에이전트들이 공유하는 DB, 화이트보드, 게시판 따위에 여러 에이전트가 쓰고 읽는 방식으로 소통
4️⃣ 실전 팁
- 정보 경계와 허가 레벨: 에이전트마다 접근할 수 있는 정보가 다른 경우, 소통 채널을 통해 접근 권한이 없는 다른 에이전트에 정보가 전달되는걸 방지하는 액세스 관리 체계가 필요할 수 있음
- 여러 에이전트가 동시에 쓰는 화이트패드나 DB는 항상 모든 에이전트가 같은 최신 상태를 보도록 유지되어야 함. 특히 수만개의 에이전트가 빠르게 결과를 쓰고 읽는 경우 정합성에 대한 고민이 필요함
5️⃣ 멀티에이전트 시스템 예시
작업 큐 + 병렬 작업 방식
[slide deck]
https://claude.ai/artifact/1r3ydLX1sVHhAcUPPGWqzV
[github]
