OpenClaw에서 멀티 에이전트(Multi-Agent) 리서치 팀을 구축했습니다 — 성공적인 설정을 공개합니다
요약
OpenClaw를 활용하여 리서치 효율을 극대화하는 멀티 에이전트(Multi-Agent) 워크플로우 구축 방법을 소개합니다. Scout, Analyst, Writer로 역할을 분담한 위임 계층 구조를 통해 단일 에이전트의 한계를 극복하고 자동화된 리서치 보고서 생성을 구현합니다.
핵심 포인트
- 역할 기반의 서브에이전트(Scout, Analyst, Writer) 분리를 통한 전문성 강화
- 에이전트 간 출력물을 다음 단계의 입력으로 사용하는 파이프라인 구조
- 작업 특성에 따른 모델 최적화(Sonnet vs Opus)로 비용 효율성 달성
- 환각 및 정보 불일치 문제를 해결하기 위한 명시적 인용 및 검증 프로세스
지난 화요일, 저는 새로운 LLM 제공업체를 조사해야 했습니다. 보통 이런 작업은 탭을 여러 개 열고, 한 시간 동안 읽고, 메모를 하고, 맥락을 놓치고, 다시 처음부터 시작하는 과정을 의미합니다. 하지만 저는 대신 OpenClaw에서 세 개의 서브에이전트(subagents)를 생성하고, 각각에게 뚜렷한 역할을 부여하여 18분 만에 초안 비교 보고서를 책상 위에 올려놓았습니다.
이것은 실제 설정의 모습입니다. 단순한 장난감 데모나 이론적인 아키텍처(architecture)가 아닙니다. 제가 매주 실제로 사용하는 실제 위임 계층 구조(delegation hierarchy)입니다.
단일 에이전트(Single-Agent) 리서치의 문제점
리서치 작업에 단일 에이전트를 실행하면 금방 한계에 부딪힙니다. 에이전트는 광범위하게 탐색하거나(모든 면에서 얕은 수준), 한 가지에 깊게 파고들거나(다른 맥락을 놓침) 둘 중 하나를 선택해야 합니다. 결국 당신은 에이전트를 계속 돌보게 됩니다. 다시 프롬프트를 입력하고, 더 자세한 내용을 요구하거나, 반대로 내용을 줄여달라고 요청해야 하죠.
해결책은 더 똑똑한 에이전트를 만드는 것이 아닙니다. 여러 에이전트가 단순하면서도 집중할 수 있게 만드는 구조를 만드는 것입니다.
OpenClaw의 서브에이전트(subagent) 시스템을 사용하면 각각 작업의 일부를 담당할 수 있는 격리된 세션(isolated sessions)을 생성할 수 있습니다. 몇 번의 반복 끝에 제가 도달한 설정은 다음과 같습니다.
3인 에이전트 설정
{
"research_team": {
"scout": {
...
scout는 수집합니다. analyst는 정제합니다. writer는 패키징합니다. 각 에이전트는 좁은 범위의 과업을 부여받으며, 이는 그들이 일을 빠르고 정확하게 수행함을 의미합니다.
실제 위임(Delegation) 작동 방식
저는 매주 화요일 오전 10시에 실행되는 단일 크론 잡(cron job)으로 이를 트리거합니다. 크론은 다음과 같은 시퀀스를 실행하는 격리된 세션을 생성합니다:
# 리서치 팀 생성
openclaw agents spawn --name research-scout --role gatherer --topic "$TOPIC"
openclaw agents spawn --name research-analyst --role synthesizer --sources "$SCOUT_OUTPUT"
...
핵심 통찰은 다음과 같습니다: 각 에이전트의 출력이 다음 에이전트의 입력이 된다는 점입니다. scout는 단순히 링크를 쏟아내는 것이 아니라, analyst가 즉시 소비할 수 있는 구조화된 마크다운(markdown)을 반환합니다. analyst는 단순히 요약하는 것이 아니라, writer가 직접 다룰 수 있도록 모순점과 공백을 구조화합니다.
여기서는 모델 선택이 중요합니다. scout와 analyst는 claude-sonnet에서 실행됩니다 (빠르며, 수집 및 분석에 충분히 성능이 좋습니다). writer는 claude-opus에서 실행됩니다 (더 느리지만, 일관된 장문 작성에 더 뛰어납니다). 이를 통해 파이프라인 비용을 저렴하게 유지할 수 있습니다. 링크를 수집하는 과정에서 opus 비용을 지불하지 않기 때문입니다.
무엇이 잘못되었는가 (그리고 어떻게 해결했는가)
문제 1: analyst가 가끔 소스(sources)를 다시 읽고 scout가 수집한 것과는 다른 결론을 도출하는 경우가 있었습니다.
해결책: analyst 프롬프트에 인라인(inline)으로 반드시 인용해야 하는 명시적인 sources 필드를 추가했습니다. 만약 analyst가 scout가 제공하지 않은 내용을 인용하면, 리뷰 단계에서 이를 플래그(flag) 처리합니다.
문제 2: writer가 가끔 분석 내용에 없는 발견 사항을 환각(hallucinate)하는 경우가 있었습니다.
해결책: "주장 검증 (claim verification)" 단계를 추가했습니다. writer는 각 실질적인 주장(substantive claim)에 [source: analyst] 또는 [source: scout] 태그를 반드시 달아야 합니다. 태그가 없는 모든 주장은 플래그 처리됩니다.
문제 3: 에이전트 간의 컨텍스트 혼입 (Context bleeding).
해결책: 각 서브 에이전트(subagent)는 lightContext: true 설정과 함께 격리된 세션에서 실행됩니다. 이들은 전체 대화 기록이 아닌, 제가 전송한 페이로드(payload)만을 전달받습니다. 이것이 신뢰성을 개선한 가장 큰 단일 요인이었습니다.
두 달 후의 결과
저의 리서치 파이프라인은 시작부터 초안 완성까지 약 90분에서 약 20분으로 단축되었습니다. 각 에이전트가 모든 것을 잘하려고 하기보다 각자의 단계에 최적화되어 있기 때문에 품질은 실제로 더 높아졌습니다.
사람들이 잘 이야기하지 않는 또 다른 이점은 다음과 같습니다: 위임(delegation)은 작업과의 관계를 변화시킵니다. 당신은 연구자가 아닌 편집자가 됩니다. 에이전트가 내리는 잘못된 판단을 잡아내지만, 당신은 세부 사항에 너무 깊이 빠져 있지 않기 때문에 스스로 잘못된 판단을 내리는 일은 줄어듭니다.
배운 점
가장 놀라운 점은 다음과 같습니다: 에이전트들이 함께 작동할 때는 단순한 에이전트가 복잡한 에이전트보다 성능이 더 뛰어나다는 것입니다. 저의 첫 번째 시도는 수집, 분석, 작성을 한 번에 수행하려는 "슈퍼 에이전트 (super-agent)"를 만드는 것이었습니다. 그것은 더 느리고 노이즈가 많았습니다. 핸드오프(handoffs) 과정에서 오버헤드가 발생함에도 불구하고, 이를 세 개의 전문화된 에이전트로 나누는 것이 더 나은 결과물을 더 빠르게 만들어냈습니다.
두 번째 교훈: 모델의 등급(tier)보다 프롬프트 구조가 더 중요합니다. 잘 구조화된 Sonnet은 구조가 허술한 Opus보다 더 나은 성능을 보여줍니다. 위임 계층 구조(delegation hierarchy)를 사용하면 각 에이전트가 구체적이고 좁은 범위의 입력과 출력을 갖게 되므로, 자연스럽게 프롬프트를 구조화하게 됩니다.
만약 OpenClaw를 실행하면서 서브 에이전트(subagents)를 사용하지 않고 있다면, 가장 강력한 오케스트레이션(orchestration) 기능을 놓치고 있는 것입니다. 작게 시작하세요. 하나의 위임(delegation), 하나의 핸드오프(handoff)부터 시작하여 점진적으로 확장해 나가십시오.
설정에 대해 궁금한 점이 있으신가요? 위의 설정값들은 실제 작업 파일에서 일부를 발췌한 것입니다. 전체 크론 잡(cron job) 페이로드가 필요하시다면 연락해 주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기