다중 에이전트 토론: 누가 옳은가?

채널 아이콘
Prompt Engineering 구독자 190,000명

요약

이 영상은 서로 상반된 두 연구, 즉 멀티에이전트 시스템 구축을 제안하는 Enthropic(엔트로픽)과 단일 에이전트를 선호하는 Cognition Labs(코그니션 랩스)의 주장을 비교·분석한다. 전자는 웹 검색 서비스에서 멀티에이전트가 단일 에이전트 대비 90% 높은 성능을 보였다는 실험을 공유하고, 후자는 에이전트 간 맥락 공유의 어려움과 일관성 문제로 인해 단일 에이전트의 순차적 태스크 분할 방식을 선호한다. 나아가 컨텍스트 엔지니어링, 압축 LLM 병렬 운용, 프롬프트 엔지니어링 등 실제 개발과 평가, 운영 단계에서 고려해야 할 실용적인 팁을 제시하며 에이전트 시스템의 현재 한계와 최적 설계 방향을 제시한다.

주요 키워드

멀티에이전트 시스템 단일 에이전트 오케스트레이터 (Orchestrator) 어그리게이터 (Aggregator) 컨텍스트 엔지니어링 프롬프트 엔지니어링 압축 LLM 출현적 행동 (Emergent Behavior) 평가 (Eval) 자율 개선 (Self-improvement)

하이라이트

  • 🔑 멀티에이전트 병렬 실행의 문제: 서브 에이전트들이 서로의 작업을 볼 수 없어 일관된 결과를 내기 어렵다.
  • ⚡️ 핸드오프 컨텍스트 공유: OpenAI SDK처럼 대화 내역을 넘기는 방식은 장기 과제에서 컨텍스트 오버플로우를 유발한다.
  • 🌟 순차 실행 대안: 단일 에이전트가 태스크를 분할해 메모리로 기록하며 순차 처리하면 모든 결정과 맥락을 유지할 수 있다.
  • 🚀 압축 LLM 활용: 긴 대화나 메모리를 압축하는 별도 모델을 병렬로 돌려 컨텍스트 용량 제한을 해소한다.
  • 💡 토큰 사용량이 성능 변동의 80% 설명: 멀티에이전트는 토큰과 도구 호출, 모델 선택으로 대폭 성능 향상을 달성했다.
  • 📌 적절한 도구 개수: 한 에이전트당 10~15개 도구가 최적이며, 전문 서브 에이전트를 두면 관리가 수월해진다.
  • 🔥 출현적 행동(emergent behavior): 시스템 변경이 예측 불가능한 하위 에이전트 동작 변화를 일으키므로, 모든 구성 요소의 엔드투엔드 평가가 필수다.
  • ✔️ 간단한 Eval 전략: 20개 실제 질의로 시작해, LLM 단일 호출로 0~1 스코어와 통과/실패 이진 평가가 사람 판단과 가장 일치한다.

용어 설명

멀티에이전트 시스템

여러 개의 서브 에이전트가 각기 독립적으로 작업을 수행하고 결과를 모아 최종 응답을 생성하는 구조

단일 에이전트

하나의 에이전트가 태스크를 순차적으로 분할·실행하며 컨텍스트와 결정을 일관되게 유지하는 방식

오케스트레이터 (Orchestrator)

전체 태스크를 받아 서브 에이전트에게 분할·할당하고 결과를 취합하도록 조율하는 중앙 제어 컴포넌트

어그리게이터 (Aggregator)

서브 에이전트들의 결과를 종합해 최종 응답을 생성하는 컴포넌트

컨텍스트 엔지니어링 (Context Engineering)

컨텍스트(대화 내역, 상태, 메모리)를 효율적으로 관리·공유하기 위한 프롬프트 엔지니어링 확장 기법

프롬프트 엔지니어링 (Prompt Engineering)

에이전트에게 명확한 지침과 태스크 설명을 제공해 정확한 동작을 유도하는 핵심 기술

압축 LLM (Compression LLM)

장기 과제 시 대화 내역을 요약·압축해 컨텍스트 오버플로우를 방지하는 별도 LLM 모델

출현적 행동 (Emergent Behavior)

시스템 구성 요소의 작은 변경이 예기치 않은 하위 에이전트 행동 변화를 일으키는 현상

Rainbow Deployment

에이전트 시스템을 단계별로 점진적 배포해 안정성을 유지하는 소프트웨어 배포 전략

[00:00:00] 서론: 상반된 두 논문의 중요성

최근 Enthropic의 멀티에이전트 시스템 구축 사례와 Cognition Labs의 단일 에이전트 옹호 주장 두 편을 간략히 소개하며, 에이전트 시스템 연구가 아직 초기 단계임을 강조한다.

지난주 에이전트 구축에 관한 두 가지 상반된 논문이 발표되었다. 하나는 멀티 에이전트 시스템 구축 방법을 제시하고, 다른 하나는 멀티 에이전트 시스템을 구축하지 말라고 제안한다.
첫 번째는 Anthropic의 '멀티 에이전트 연구 시스템 구축' 논문이고, 두 번째는 Devon을 만든 Cognition Labs의 '멀티 에이전트를 구축하지 말라' 논문이다.
[00:00:53] 전통적 멀티에이전트 구조와 한계

사용자가 태스크를 요청하면 오케스트레이터가 이를 서브 에이전트로 분할하고, 각 에이전트는 독립 수행 후 어그리게이터가 결과를 취합한다. 이 방식은 에이전트 간 맥락 공유 부재와 태스크 오해 시 결합 오류가 발생한다.

현재 복잡한 작업을 위한 에이전트 시스템은 작업을 서브태스크로 나누고, 각각을 별도의 서브 에이전트가 수행한 후 오케스트레이터와 애그리게이터가 결합하는 방식으로 구축된다.
멀티 에이전트 시스템의 두 가지 주요 문제점이 있다. 첫째, 각 에이전트가 독립적으로 작업하여 서로의 활동을 알 수 없다. 둘째, 한 에이전트가 작업을 잘못 이해하면 전체 결과에 부정적 영향을 미친다.
[00:02:20] 컨텍스트 공유 방식

OpenAI 핸드오프 원칙처럼 대화 이력과 제어권을 서브 에이전트에 전달해 맥락을 유지하려 하지만, 장기 과제에서는 대화 내역이 계속 커져 관리가 어렵다는 한계가 있다.

이 문제를 해결하기 위한 간단한 접근법은 에이전트들 간에 실행 중인 컨텍스트 공유 히스토리를 갖는 것이다. 오케스트레이터가 대화와 행동을 추적하여 서브 에이전트들과 공유한다.
OpenAI의 Agent SDK에서 제안한 핸드오프 원리도 유사한 개념으로, 제어권과 대화 컨텍스트를 서브 에이전트에게 넘겨준다. 하지만 장기간 실행되는 작업의 경우 모든 것을 추적하기 어렵다는 문제가 있다.
멀티 에이전트 시스템의 주요 문제점들을 설명합니다. 서브 에이전트들이 서로의 대화와 행동을 추적하기 어렵고, 독립적인 결정으로 인해 일관성 없는 결과가 나올 수 있다는 점을 플래피 버드 예시로 설명합니다.
[00:03:38] 순차 실행 대안과 컨텍스트 엔지니어링

단일 에이전트가 동일한 메모리·대화 이력을 바탕으로 순차적으로 서브태스크를 수행하면 모든 결정과 맥락을 일관되게 추적할 수 있다. 맥락 엔지니어링 개념을 도입해 프롬프트 설계와 압축 LLM을 병렬 활용한다.

순차적 실행 접근법을 제안합니다. 여러 서브 에이전트 대신 단일 에이전트가 작업을 서브태스크로 나누고 순차적으로 수행하며, 대화 기록과 메모리를 유지하여 일관성을 보장하는 방법을 설명합니다.
장기 작업에서 발생하는 컨텍스트 오버플로우 문제와 해결책을 다룹니다. 병렬로 실행되는 압축 LLM을 통해 컨텍스트를 관리하고, 프롬프트 엔지니어링의 확장인 컨텍스트 엔지니어링 개념을 소개합니다.
단일 에이전트가 멀티 에이전트보다 더 적절한 솔루션이라는 주장을 뒷받침하는 실제 사례들을 제시합니다. 클로드 코드를 예시로 들며, 서브 에이전트 생성보다는 서브태스크 생성과 순차적 실행이 더 효과적임을 설명합니다.
[00:05:06] 단일 에이전트 적용 사례: Cloud Code

Enthropic Cloud Code는 멀티 에이전트를 두지 않고, 하나의 에이전트가 순차적으로 서브태스크를 생성·완료하는 구조를 활용해 코드 편집 및 생성 작업에서 높은 일관성을 얻었다.

Anthropic의 멀티 에이전트 시스템 구축 방법론을 소개하며, 이들이 개발한 클로드 내 연구 시스템이 최고 수준의 웹 검색 구현 중 하나라고 설명합니다.
[00:06:29] Enthropic의 멀티에이전트 연구 시스템

웹 검색 분야에서 리드 연구자(Orchestrator)가 플랜을 생성하고, 여러 서브 에이전트를 통한 병렬 검색·의견 수집 후 어그리게이터가 결과를 통합하는 구조를 시연한다.

멀티 에이전트 시스템의 작동 방식을 구체적으로 설명합니다. 오케스트레이터가 사용자 쿼리를 받아 계획을 세우고, 여러 서브 에이전트들이 독립적으로 다양한 검색 작업을 수행한 후 결과를 집계하는 구조입니다.
단일 거대 에이전트 방식과 비교하여 멀티 에이전트 시스템의 장점을 설명합니다. 검색과 코드 생성의 특성이 다르기 때문에 멀티 에이전트 방식이 더 효과적이라고 주장합니다.
[00:07:54] 성능 분석: 토큰·도구 최적화

멀티에이전트 구조가 단일 에이전트 대비 90% 이상 높은 성능을 보인 이유로 토큰 사용량(80% 기여), 도구 호출 횟수, 모델 선택 이 세 가지 요인을 제시한다. 에이전트당 10~15개 도구가 최적이다.

멀티 에이전트 시스템의 아키텍처를 설명합니다. 사용자 인터페이스, 계획을 생성하는 리드 연구자, 그리고 메모리를 가진 서브 에이전트들로 구성된 구조를 소개합니다.
Anthropic의 엔지니어링 블로그가 다른 회사들보다 더 자세한 정보를 제공한다고 평가하며, 시스템 설계의 중요성을 강조합니다.
Anthropic의 실험 결과를 소개합니다. Claude Opus를 리드 에이전트로, Claude Sonnet을 서브 에이전트로 하는 멀티 에이전트 시스템이 단일 에이전트 Claude Opus보다 90% 뛰어난 성능을 보였다는 놀라운 결과를 발표했습니다.
[00:09:12] 적합한 사용처 vs. 과제

검색처럼 탐색 공간이 넓을 때 멀티에이전트가 효과적이나, 복잡한 의존성이나 컨텍스트 공유가 중요한 코드 생성 등 분야에서는 단일 에이전트가 더 적합하다.

멀티 에이전트 시스템이 검색 애플리케이션에서 효과적인 이유를 설명합니다. 각 서브 에이전트가 서로 다른 연구 영역을 탐색할 수 있어, 더 많은 토큰을 사용하지만 그만큼 큰 성능 향상을 얻을 수 있다고 합니다.
성능 향상을 설명하는 세 가지 요인을 소개합니다. 토큰 사용량이 분산의 80%를 설명하며, 도구 호출 수와 모델 선택이 다른 설명 요인들입니다.
단일 에이전트에게 천 개의 도구를 제공하면 파악하기 어렵습니다. 실제로 10-15개 정도가 최적의 도구 수이며, 전문화된 서브 에이전트가 있으면 더 관리하기 쉬워집니다.
모든 애플리케이션에 멀티 에이전트 시스템을 사용할 수는 없습니다. 동일한 컨텍스트 공유나 에이전트 간 의존성이 많은 도메인에서는 적합하지 않습니다.
코딩 작업은 병렬화 가능한 작업이 적고, LLM 에이전트는 실시간 조정과 위임에 아직 뛰어나지 않습니다. Cognition Lab이 단일 에이전트에 집중하는 이유입니다.
[00:11:00] 프롬프트 엔지니어링과 위임 전략

에이전트가 인간처럼 단계별 작업 방식을 그대로 따라가게 하는 세부 지침 설계, 오케스트레이터의 위임 능력 강화, 태스크 복잡도에 따른 에이전트·도구 스케일링 기법을 소개한다.

더 실용적인 포인트들을 소개합니다. Google에서 에이전트 시스템 구축 강연을 했으며, 관심 있다면 해당 비디오 시청을 추천합니다.
두 가지 주요 집중 영역으로 나뉩니다: 프롬프트 엔지니어링과 연구 에이전트 평가. 거대한 평가 데이터 세트가 필요하지 않으며, 약 20개의 실제 사용 쿼리로 시작할 수 있습니다.
LLM 기반 시스템의 가장 중요한 구성 요소인 프롬프트 엔지니어링에 대해 설명합니다. 에이전트에게 명확한 지시를 제공하는 것이 그 어느 때보다 중요합니다.
초기 에이전트들의 오류 사례를 소개합니다. 존재하지 않는 웹 링크를 검색하거나 여러 서브 에이전트를 불필요하게 생성하는 문제들이 있었습니다.
에이전트에게 명확한 지시를 제공하고 오케스트레이터에게 위임 방법을 가르치는 것의 중요성을 강조하며, 명확한 의사소통을 통해 하위 에이전트들이 중복 작업을 피하도록 해야 한다고 설명합니다.
작업 복잡성에 따른 확장 전략을 제시하며, 간단한 사실 확인은 하나의 에이전트로, 직접 비교는 2-4개 에이전트로, 복잡한 연구는 10개 이상의 하위 에이전트로 구성해야 한다고 구체적인 예시를 들어 설명합니다.
툴 설계와 선택의 중요성을 강조하며, 복잡성을 고려한 툴 설계와 명확한 툴 설명의 필요성을 언급합니다. 특히 에이전트가 적절한 툴을 선택할 수 있도록 명확한 입출력 설명이 필요하다고 강조합니다.
에이전트의 자기개선 능력에 대해 설명하며, 에이전트가 툴 설명을 수정하거나 MCP 서버를 통해 사용 가능한 툴을 변경할 수 있다는 흥미로운 아이디어를 제시합니다.
검색 전략으로 '넓게 시작해서 좁혀나가기' 접근법을 제안하며, 사고 과정 안내의 중요성을 강조합니다. 추론 모델의 사고 능력을 오케스트레이터뿐만 아니라 하위 에이전트에서도 활용할 수 있다고 설명합니다.
RAG 애플리케이션에서의 실제 경험을 공유하며, 추론 모델이 재순위와 생성을 단일 단계에서 수행할 수 있는 흥미로운 가능성을 언급하고, 이를 로컬 GPT에 도입할 계획이라고 밝힙니다.
테스트에서 두 가지 병렬화 방식을 시도했는데, 리드 에이전트가 순차적이 아닌 병렬로 최대 5개의 서브 에이전트를 실행하고, 서브 에이전트들은 3개 이상의 도구를 병렬로 사용하는 방식입니다. 이는 연구 시간을 단축할 수 있지만 토큰 소모와 비용 증가가 단점입니다.
[00:16:00] 평가(Eval) 전략

20개 실제 질의로 소규모 평가 세트를 구성하고, LLM을 단일 호출해 0~1 점수와 합격·불합격 이진 결과를 도출하는 간단한 Eval 프레임워크를 제안한다. 사람 검증도 병행해 리워드 해킹과 출현적 행동을 감시한다.

멀티 에이전트 시스템의 평가는 복잡한 문제입니다. 이들은 결정론적 시스템이 아니어서 같은 쿼리라도 매번 다른 결과를 낼 수 있으며, 도구나 에이전트의 실행 순서도 매번 달라집니다.
평가 접근법으로는 작게 시작할 것을 제안합니다. 실제 사용 사례를 나타내는 20개의 쿼리로 시작해서 점진적으로 테스트 케이스를 확장하는 방식이 효과적입니다.
대규모 평가를 위해 LLM을 심사위원으로 활용할 수 있습니다. 복잡한 지표보다는 0에서 1까지의 점수와 통과/실패 등급을 출력하는 단일 LLM 호출이 가장 일관성 있고 인간 판단과 일치한다는 것을 발견했습니다.
RAG 시스템을 구축할 때 사람들은 진실성이나 정확성 같은 복잡한 평가 기준을 사용하지만, 실제로는 응답이 올바른지 틀렸는지 같은 단순한 이진적 결과가 더 의미 있을 수 있다.
인간 평가자에게 의미 있는 평가 방식을 고수하고, 현실에서 의미 없는 화려한 새로운 지표보다는 실용적인 평가를 LLM 시스템에 요청하는 것이 중요하다.
휴먼 인 더 루프가 필수적이며, 인간 평가가 자동 평가가 놓치는 부분을 잡아낸다. 인간 테스터들은 에이전트가 권위있는 소스보다 SEO 최적화된 콘텐츠를 선호하는 문제를 발견했다.
[00:20:00] 운영 및 배포 고려사항

에이전트 시스템은 상태(stateful) 유지와 오류 누적 특성이 있어, 오류 발생 시 재시작 대신 중단 시점부터 재개하는 설계가 필요하다. 레인보우 배포, 동기식 실행, 추적·관찰 시스템도 필수적이다.

보상 해킹은 에이전트와 LLM 기반 시스템에서 실제로 발생하는 문제이며, 생성 부분과 LLM 판사 역할 모두에서 나타날 수 있어 인간의 검증이 반드시 필요하다.
멀티에이전트 시스템은 특정 프로그래밍 없이 창발적 행동을 보이며, 리드 에이전트의 작은 변화도 서브 에이전트들의 행동을 예측 불가능하게 바꿀 수 있다.
멀티에이전트 시스템에서 단일 컴포넌트를 변경할 때는 다른 부분에 다운스트림 효과를 미치므로, 한 부분을 변경하면 반드시 엔드 투 엔드 평가를 실행해야 한다.
프로덕션 환경에서 에이전트는 상태를 가지며 오류가 누적되는 특성이 있어, 시스템을 추적하고 관찰할 수 있는 지표와 시스템 구축이 중요하다.
오류 발생 시 처음부터 재시작하는 것은 비용이 많이 들고 사용자에게 좌절감을 주므로, 오류 발생 지점에서 재개할 수 있는 시스템을 구축하고 모델의 지능을 활용해 문제를 우아하게 처리하는 것이 효과적이다.
멀티 에이전트 시스템의 도구 실패 시 자기 적응 메커니즘이 놀랍도록 효과적으로 작동한다고 소개합니다.
멀티 에이전트 시스템의 배포 방식을 설명하며, 이들 시스템이 프롬프트, 도구, 실행 로직을 포함한 높은 상태 유지 웹으로 지속적으로 실행된다고 말합니다.
지속적으로 실행되는 시스템의 특성상 전체 업그레이드가 어려워 전통적인 소프트웨어 엔지니어링 원칙이 중요하며, 레인보우 배포 전략을 통해 점진적 교체를 수행한다고 설명합니다.
동기식 실행 방식을 강조하며, 리드 에이전트가 서브 에이전트들의 완료를 기다린 후 결과를 집계하는 방식으로 작동하지만, 비동기 실행은 아직 해결하지 못했다고 언급합니다.
지난주에 에이전트 구축에 관한
매우 흥미로운 두 개의 논문이 나왔습니다.
그 중 하나는 멀티 에이전트 시스템을
구축하는 방법을 보여주고 있습니다.
다른 하나는 멀티 에이전트 시스템을
전혀 구축하지 말라고 제안합니다.
언뜻 보기에 모순적이지만
둘 다 매우 중요한 내용이라고 생각합니다.
그리고 이것은 또한 우리가 얼마나
에이전트 시스템 구축 과정의
초기 단계에 있는지를 보여줍니다.
첫 번째 논문인 '우리가 멀티 에이전트
연구 시스템을 구축한 방법'은
Anthropic에서 나온 것이고
두 번째인 '멀티 에이전트를 구축하지 말라'는
Devon을 만든 Cognition Labs의 논문입니다.
두 논문 모두 읽어보시길
강력히 추천하지만, 이 영상에서는
에이전트 시스템 구축에 대해
이 논문들이 말하는 내용을
간단히 요약해드리려고 합니다.
현재 복잡한 작업을 위한
에이전트 시스템을 구축할 때
제안되는 접근법은 작업을
서브태스크로 나누고, 각 서브태스크를
별도의 작은 서브 에이전트가 수행하게 한 다음
이들을 결합하는 것입니다.
오케스트레이터와 애그리게이터가 있고
그 사이에 여러 에이전트들이
함께 작업하는 구조입니다.
하지만 Cognition Lab의 이 논문은
이것이 가장 최적의 접근법이 아닐 수도
있다고 말합니다.
일반적으로 흔한 접근법은
다음과 같습니다. 사용자로부터
작업을 받는 오케스트레이터가 있고
이것이 작업을 서브 에이전트들로 나눕니다.
각 서브 에이전트에게 작업을 할당하고
서브 에이전트들이 그 작업들을 수행한 다음
애그리게이터가 결과를 결합합니다.
여기에는 두 가지 주요 문제가 있습니다.
첫째는 각 에이전트가 다른 에이전트들과
독립적으로 작업을 수행한다는 것입니다.
따라서 서로 무엇을 하고 있는지
전혀 알 수 없습니다.
둘째는 에이전트 중 하나가
자신의 작업을
잘못 이해하면, 애그리게이터가
결과를 결합하려고 할 때
부정적인 영향을 미친다는 것입니다.
그들이 블로그 포스트에서 제시한
예시는 Flappy Bird 클론을 구축하는 것인데
서로 다른 서브태스크들이
모델의 주요 테마들을 서로 독립적으로
구현할 수 있고, 전체적인 일관성이
전혀 없을 수 있다는 것입니다.
이제 이런 문제를 해결하기 위한
더 간단한 접근법은
에이전트들이나 서브 에이전트들 간에
실행 중인 컨텍스트 공유 히스토리를
갖는 것입니다.
이것이 어떻게 보이는지 설명하면
오케스트레이터가 있고, 지금까지 일어난
대화와 지금까지 취해진 행동들을
추적하며, 이것들이
다른 서브 에이전트들 간에 공유됩니다.
OpenAI가 그들의 OpenAI
Agent SDK에서 제안한
핸드오프 원리는 매우 유사한 개념으로
제어권과 함께 지금까지 일어난
순수한 대화의 컨텍스트를
서브 에이전트에게 넘겨주는 것입니다.
이 접근법의 문제는
때때로 장기간 실행되는
작업들이 있다는 것입니다. 따라서 모든
것들을 추적하기가 매우 어려워집니다.
다양한 서브 에이전트들이 수행하는 대화와 행동들을
추적하는 것입니다. 그리고 두 번째는
독립적으로 내려지는 결정들입니다.
플래피 버드 예시로 돌아가서,
그들은 말합니다.
에이전트에게 동일한 플래피 버드
클론 작업을 주면, 이번에는
새와 배경이 완전히 다른
시각적 스타일로 나올 수 있습니다.
그 이유는 서브 에이전트 1과
서브 에이전트 2가 런타임에
자신들이 무엇을 하고 있는지 추적할 수 없기 때문입니다.
그래서 그들은 더 순차적인 접근법을 제안합니다.
같은 에이전트가 처음에 작업을 분해하고
그 다음 서브태스크를 담당합니다.
서브 에이전트가 아니라 동일한 에이전트에게
서브태스크를 주는 것입니다. 그 서브태스크를 수행하고
메모리를 업데이트한 다음
다른 서브태스크를 담당합니다.
이 경우 동일한 에이전트 내에서
순차적 실행을 하기 때문에
바뀌는 것은 서브태스크뿐입니다. 실제로는
대화 기록뿐만 아니라 지금까지
내린 모든 결정들의 메모리도 가지고 있습니다.
그래서 지금까지 일어난 모든 것을
추적할 수 있게 됩니다.
하지만 장기 작업이나 오래 실행되는 작업으로 돌아가면,
컨텍스트 오버플로우 문제에 부딪히게 됩니다.
이를 위해 그들은
병렬로 실행되는 압축 LLM을 제안합니다.
이것은 채팅 기록의 모든 컨텍스트와
에이전트가 지금까지 작업한 메모리를 압축하고
기본적으로 에이전트가 장기 작업을 수행할 때
그것을 컨텍스트로 제공합니다.
팀은 프롬프트 엔지니어링의 확장인
컨텍스트 엔지니어링이라는 개념을 제안했습니다.
하지만 이제는 에이전트나
서브 에이전트들이 지금까지 취한
모든 행동의 컨텍스트를 가지고 있는지 확실히 해야 합니다.
그리고 그들이 본 응답들도 마찬가지로요.
그들의 제안은 지금까지 본 대부분의 작업에서
단일 에이전트가 아마도
여러 서브 에이전트보다
더 적절한 솔루션일 것이라는 것입니다.
그리고 특별히 강조한 한 가지 예시는
Anthropic의 놀라운 시스템인
클로드 코드였습니다.
실제로 우리는 멀티 에이전트 시스템을
옹호하는 Anthropic의 블로그 포스트를 볼 것입니다.
하지만 여기서 그들은
클로드 코드가 스스로를 위해
서브태스크를 생성하는 에이전트의 예라고 말합니다.
즉, 병렬로 작업을 수행하는
서브 에이전트를 생성하지 않습니다.
하지만 실제로는 단순히 서브태스크를 생성하고
순차적 실행 시스템입니다.
그 서브태스크들을 수행하고
다른 것으로 넘어갑니다.
코드 편집에서 사람들은
여러 다른 모델들을 사용했습니다.
더 작은 모델이나 큰 모델이
적용하려는 변경사항들을 제안하고
그 다음 더 작은 서브 에이전트 모델이
그 변경사항들을 적용했습니다.
하지만 그것은
좋은 접근법이 아닌 것으로 밝혀졌습니다.
그래서 그들은 오늘날 의사결정 과정과
적용이 한 번의 행동으로
단일 모델에 의해 수행되는 경우가 더 많다고 제안했습니다.
그들은 작업을 서브태스크로 나눌 수 있는
하나의 모델이 멀티 에이전트 시스템을 생성하는 것보다
훨씬 더 나은 접근법이라고 생각하는
몇 가지 예시를 제시합니다.
Anthropic이 말하는 것을 살펴봅시다.
멀티 에이전트 시스템 구축에 관해
말하는 내용입니다. 두 번째
글은 Anthropic에서 나온 것으로
멀티 에이전트 시스템 구축에 대해 논합니다.
여기서 주목할 점은 그들이 구체적으로
클로드 내에서 사용 가능한
연구 시스템에 대해 이야기하고 있다는 것입니다.
이것은 아마도 제가 본 것 중
최고의 웹 검색 구현 중 하나일 겁니다.
예시를 보여드린 다음
글을 살펴보고 그들이
공유한 학습 내용도
살펴보겠습니다.
이것은 Anthropic 팀이 공유한 예시 쿼리입니다.
웹 검색을 활성화해보겠습니다.
이것을 실행하면 오케스트레이터가
사용자 쿼리를 받아서
사용자 쿼리를 기반으로 계획을 세웁니다.
여기 계획이 있습니다.
그리고 나서 여러 개의 서브 에이전트를
생성해서 다양한 검색 결과를 수행합니다.
각 서브 에이전트는
다양한 도구에 접근할 수 있습니다.
MCP나 메모리 업데이트 같은 것들이죠.
그리고 이들은 독립적으로 작업을 수행합니다.
오케스트레이터는 마지막에
이러한 결과들을 수집하고 집계해서
사용자를 위한 최종 응답을 생성합니다.
만약 서브태스크를 생성하는
하나의 거대한 에이전트를 사용한다면
순차적 실행을 하게 되고
동일한 에이전트가
모든 웹 검색을 수행하게 됩니다.
하지만 그것은 Anthropic이
제안하는 구현 방식이 아닙니다.
생각해보면 그 이유는
이것이 매우 다른 애플리케이션이기 때문입니다.
검색의 성격과 코드 생성은
매우 다르고, 바로 여기서
이런 멀티 에이전트 시스템이
효과적일 수 있다고 생각합니다.
아키텍처는 다음과 같습니다.
사용자와 상호작용하는
시스템이 있습니다. 그 다음
계획을 생성하는 리드 연구자가 있고
메모리를 가진 서브 에이전트들이 있습니다.
이들은 오케스트레이터나
리드 연구자가 만든 계획을 실행합니다.
영상의 나머지 부분에서는
Anthropic이 제공하는
인사이트들을 살펴보겠습니다.
개인적으로 그들의 엔지니어링 블로그가
매우 도움이 된다고 생각합니다.
다른 회사들에 비해 많은 세부사항을 공유합니다.
결국 시스템을 어떻게
설계하느냐에 달려있습니다.
그들은 Claude Opus를 리드 에이전트로 하고
Claude Sonnet을 서브 에이전트로 하는
멀티 에이전트 시스템이
단일 에이전트 Claude Opus보다
내부 연구 평가에서 90% 더 뛰어난
성능을 보였다고 발견했습니다.
이는 정말 놀라운 수치입니다.
Cognition이 제안했던
단일 모놀리식 에이전트에 비해
이런 멀티 에이전트 시스템으로 거의 두 배의 성능을 얻을 수 있습니다.
그들은 멀티 에이전트 시스템이
특히 검색 애플리케이션에서
잠재적으로 효과적일 수 있는 이유를 설명합니다.
핵심 아이디어 중 하나는
여러 다른 에이전트를 사용하므로
각 서브 에이전트가 다른
연구 영역을 탐색할 수 있다는 것입니다.
더 많은 토큰을 사용하게 되지만
그들은 구체적으로 세 가지 다양한 요인에 대해 이야기합니다
이것이 성능 향상을 설명하는 요인들이죠
그래서 그들이 발견한 것은
토큰 사용량 자체가
분산의 80%를 설명한다는 것입니다
도구 호출 수와 모델 선택이
다른 설명 요인들이라고 하네요
예를 들어 단일 에이전트에
천 개의 도구를 제공한다면
에이전트가 파악하기 정말 어려울 거예요
실제로 제가 본 것은
아마도 10개에서 15개 정도가
에이전트에게 줄 수 있는
최적의 도구 수입니다
그리고 전문화된 서브 에이전트가 있다면
훨씬 더 관리하기 쉬워집니다
하지만 그렇다고 해서
모든 애플리케이션에 멀티 에이전트 시스템을
사용할 수 있다는 의미는 아닙니다
실제로, 그들은 특별히 지적합니다
동일한 컨텍스트를 공유해야 하거나
에이전트 간에 많은 의존성이 있는
특정 도메인에서는
멀티 에이전트 시스템의 좋은 사용 사례가
아닐 수도 있다고 말입니다
예를 들어 그들이 말하는 것은 대부분의 코딩 작업이
실제로 병렬화 가능한 작업이 적다는 것입니다
검색보다는 말이죠. 그리고 LLM 에이전트는
아직 실시간으로 다른 에이전트와
조정하고 위임하는 데 뛰어나지 않습니다
따라서 Cognition Lab은
코딩 에이전트에 특별히 집중하고 있고
그래서 하나의 단일 에이전트가
그들에게 실제로 효과가 있는 것 같습니다
그리고 여기서 Anthropic도
정확히 같은 점을 암시하고 있습니다
이제 더 실용적인 포인트들을
안내해 드리겠습니다. 저는 이러한 것들의 대부분을
이전 비디오에서 다뤘습니다
그리고 특별히 Google에서 에이전트 시스템 구축에 대한
강연을 했습니다. 다음으로
그 비디오를 녹화했습니다
만약 이 주제에 대한
더 깊은 분석에 관심이 있다면
그 비디오를 시청하기를 강력히 추천합니다
그들은 두 가지 주요 집중 영역으로 나누었습니다
하나는 프롬프트 엔지니어링이고
두 번째는
연구 에이전트를 위한 평가입니다
그리고 평가 부분은
매우 흥미롭습니다
나중에 평가 부분을 살펴보겠지만
빠르게 강조하고 싶은 것이 있습니다
실제로는 거대한 평가 데이터 세트가
필요하지 않다는 것입니다
실제로, 그들은 약 20개의 쿼리로 시작했고
이것들은 실제 사용을 나타내는 것들입니다
따라서 에이전트를 평가하기 위해서는
상대적으로 작은 진화 데이터 세트가 필요합니다
좋습니다. 먼저 LLM 기반 시스템의
가장 중요한 구성 요소에 대해 이야기해봅시다
그것은 바로 프롬프트 엔지니어링입니다
이것은 지금 그 어느 때보다
중요합니다. 왜냐하면 에이전트에게
매우 명확한 지시를 제공하고 싶기 때문입니다
그들이 할당받은 작업을 수행할 수 있도록 말이죠
그들이 주는 예시는
초기 에이전트들이 오류를 범했고
여러 개의 서로 다른 서브 에이전트를
생성했다는 것입니다
작업을 실행하거나
전혀 존재하지 않는 웹 링크를
검색하기 위해서 말이죠
이제 그런 종류의 문제들을 어떻게 해결할까요?
에이전트에게 명확한 지시를 제공해야
사람이 하는 일을 그대로 복제할 수
있도록 해야 합니다. 두 번째는
오케스트레이터에게 위임하는 방법을
가르쳐야 합니다. 다시 말해, 이는
매우 명확한 의사소통으로 귀결됩니다.
따라서 세부적인 작업 설명을 제공하고
두 개의 하위 에이전트가 동일한
작업을 중복으로 수행하지 않도록
해야 하는데, 이는 오케스트레이터가
계획뿐만 아니라 작업 위임을
얼마나 잘하는지에 달려 있습니다.
다음은 쿼리 복잡성에 맞춰
노력을 확장하는 것입니다. 작업
복잡성이라고 말씀드리고 싶습니다.
작업의 성격에 따라 그만큼의
확장이나 컴퓨팅을 할당해야 합니다.
예를 들어, 간단한 사실 확인은
3~10개의 툴 호출로 하나의 에이전트만
필요합니다. 직접 비교는 2~4개의
하위 에이전트가 각각 5~15개의
호출이 필요할 수 있고, 복잡한 연구는
명확히 구분된 책임을 가진 10개
이상의 하위 에이전트를 사용할 수
있습니다. 따라서 에이전틱 시스템을
설계할 때는 작업을 어떻게 위임할지와
각 작업에 할당될 복잡성의 정도를
프롬프트에 충분한 정보로
제공해야 합니다. 다음 항목은
툴 설계와 선택이 중요하다는
것입니다. 제가 본 바로는 사람들이
복잡성을 염두에 두고 툴을
설계하지 않거나, 작업에 정말 좋은
툴을 가지고 있지만 툴 설명이나
입력 또는 출력 설명이
정말 형편없습니다. 에이전트가
특정 툴을 언제 사용해야 하는지
이해하지 못한다면 실수를
하게 됩니다. 따라서 에이전트에
들어가는 프롬프트가 정말
훌륭할 뿐만 아니라 툴의 설명도
정말 명확해야 에이전트가 특정 툴을
언제 사용해야 하는지 혼동하지
않습니다. 그리고 또 다른
흥미로운 아이디어는 에이전트가
스스로 개선하도록 하는 것입니다.
에이전트는 툴 설명을 변경하거나
다른 MCP 서버를 통해 사용 가능한
툴을 수정할 수도 있습니다.
이는 정말 흥미로운 아이디어라고
생각하는데, 에이전트가 특정한
실수를 하고 있다면 자신의
프롬프트뿐만 아니라 사용 가능한
툴도 수정하려고 시도할 수
있습니다. 검색과 관련해서는
넓게 시작해서 좁혀나가는 방식을
제안하는데, 이는 인간이 수행하는
방식과 매우 유사하며, 사고
과정을 안내하는 것입니다. 즉,
적용 가능한 곳에서는 이러한
사고나 추론 모델의 사고 능력을
활용하고 싶어합니다. 이제 이는
오케스트레이터와 애그리게이터에만
제한되지 않고 하위 에이전트도
이를 활용할 수 있으며, 실제로
제가 구축하고 있는 일부 RAG
애플리케이션에서 저는 실제로
이러한 추론 모델을 사용하기
시작했습니다. 동일한 추론 모델이
재순위뿐만 아니라 단일 단계에서
생성도 할 수 있다는 것은
제가 로컬 GPT에 도입할 예정인
매우 흥미로운 아이디어입니다.
그리고 프롬프팅에 대한 마지막
제안은 병렬 툴 실행과 병렬
테스트에서 그들이 시도한 것은
두 가지 다른 유형의
병렬화를 사용하는 것이었습니다. 하나는 리드
에이전트가 순차적이 아닌 병렬로
최대 5개의 서브 에이전트를
실행하는 것입니다. 이는 코그니션이
제안한 것과는 매우 다릅니다. 그리고 서브 에이전트들은
3개 이상의 도구를 병렬로 사용합니다. 이는
확실히 연구 시간을 단축할 수 있지만
멀티 에이전트 시스템을
여러 도구 호출과 함께 사용한다면
많은 토큰을 소모하게 될 것입니다.
그래서 비용이 상당히 증가할 것입니다.
자, 이제 아무도 좋아하지 않는 주제인
평가에 대해 이야기해 봅시다. 하지만
좋은 평가 체계가 없다면
실제로 개선 사항을
측정할 수 없습니다. 그저
개인적인 선호도나
'괜찮아 보인다' 식의 지표에
의존하게 됩니다. 멀티 에이전트 시스템을 위한
평가를 만드는 것은 훨씬 복잡합니다
왜냐하면 이것들은 결정론적 시스템이
아니기 때문입니다. 같은 쿼리를
같은 시스템을 통해 여러 번 실행하면
매번 완전히 다른 계획을
세울 수 있고, 심지어 도구나
에이전트의 실행 순서도
매우 다를 것입니다. 그래서
이것이 매우 복잡하게 만듭니다. 하지만
이러한 서브 에이전트들을 평가하는 데
사용할 수 있는 매우 간단한 아이디어가 있습니다.
하지만 그 전에 그들은
작게 시작할 것을 제안했습니다. 실제로
이 멀티 에이전트 연구 도구를 만들 때
그들은 실제 사용 사례를 나타내는
20개의 쿼리 세트로 시작했습니다
이는 매우 흥미로운데, 많은 사람들이
이런 것들을 테스트에 투입하기 전에
많은 데이터를 수집하는 데
시간을 보내기 때문입니다. 목표는
모든 엣지 케이스와
테스트 케이스를 다룰 수 있는
거대한 평가 세트를 갖는 것입니다
하지만 그들은 매우 적은 수의
예제로 시작할 것을 제안했고, 이는
시스템이 얼마나 좋은지에 대한
초기 지표를 제공할 것이고, 그다음에
더 복잡한 상황이나 엣지 케이스를
접하게 되면서 더 많은
테스트 케이스를 추가할 수 있습니다. 작게 시작하되 일찍 시작하세요.
이제 질문은 어떻게
정확히 이러한 평가를 대규모로 수행할지입니다
그래서 특정 평가를 위해
LLM을 심사위원으로 사용할 수 있습니다
LLM을 심사위원으로 사용하는 것의
효과성과 어떤 유형의 지표를 사용할지에 대한
많은 논의가 있습니다. 그들은
매우 간단한 기준을 가지고 있고
저는 이것을 정말 좋아합니다. 그들은
이러한 멀티 에이전트 시스템이 매우 복잡하다고
말합니다. 왜냐하면 동시에
여러 가지 다른 것들을
추적해야 하기 때문입니다. 하지만 그들은
0에서 1까지의 점수와
통과/실패 등급을 출력하는 단일 프롬프트로
단일 LLM 호출이 가장
일관성 있고 인간의 판단과
일치한다는 것을 발견했습니다. LLM 기반
시스템을 보면, 사람들은 성능을
측정하기 위해 매우 새로운 지표들을
내놓고 있습니다. 하지만 실제로는
실제로 아무것도 측정하지 못하고 있습니다.
RAG 시스템을 구축할 때, 사람들은 진실성이나
정확성과 같은 평가 기준을 사용합니다.
하지만 인간으로서는 응답이
올바른지 아닌지에 관심이 있죠.
그래서 단순한 리콜, 이진적 결과일 수 있습니다.
따라서 인간 평가자로서
당신에게 의미 있는 것들을 고수하고
LLM 시스템이나
에이전트 시스템이 그런 평가를 출력하도록 요청하는 것이
현실에서 전혀 의미가 없는
화려하고 새로운 지표를 만들어내는 것보다
낫습니다
하지만 이는 또한
휴먼 인 더 루프가 필요하다는 뜻입니다.
그들은 인간 평가가
자동 평가가 놓치는 부분을 잡아낸다고 말합니다.
흥미로운 예로, 그들의 경우
인간 테스터들이 초기
에이전트들이 일관되게
권위 있지만 순위가 낮은
SEO 최적화된 콘텐츠 형식을 선택한다는 것을 발견했습니다.
학술 PDF 파일이나
개인 블로그와 같은 소스들보다 말이죠.
그리고 보상 해킹은
이런 에이전트나
LLM 기반 시스템에서 실제로 발생하는 문제이며
생성 부분이나 LLM을
판사로 사용할 때 모두 발생할 수 있습니다.
따라서 평가자들을 확인하고
LLM 판사가 생성하는 결과가
실제로 의미가 있는지 확인할
인간이 반드시 필요합니다. 그리고
이를 철저히 해야 하는데, 왜냐하면
그들이 강조하듯 멀티에이전트 시스템은
특정 프로그래밍 없이 발생하는
창발적 행동을 가지기 때문입니다.
예를 들어, 리드 에이전트의
작은 변화가 서브 에이전트들이
어떻게 행동하는지 예측 불가능하게 바꿀 수 있습니다.
이는 매우 중요한 점입니다.
만약 멀티에이전트 시스템을 구축한다면
단일 컴포넌트를 변경할 때, 예를 들어
오케스트레이터를 변경하면
다른 것은 건드리지 않았다고 가정하고
그 단순한 컴포넌트에 대해서만
평가를 실행할 수는 없습니다.
시스템의 나머지 부분에도 다운스트림 효과를 가질 것이기 때문입니다.
그래서 한 부분을 변경하면
엔드 투 엔드 평가를 실행해야 합니다.
이제 이런 것들을 프로덕션에
적용하는 몇 가지 권장사항이나 아이디어입니다.
하나는 에이전트들이 상태를 가지며
오류가 누적된다는 것입니다.
다시 말해, 시스템의 한 부분에
변경을 가하면 다운스트림으로 갈수록
누적될 오류를 생성하기 시작합니다.
따라서 시스템을 추적하고
관찰할 수 있는 지표나
시스템을 구축하는 것이 중요하며
이는 고유한 도전을 가져옵니다.
전체 에이전트 시스템을
단순히 재생성할 수는 없고
그들이 제안하는 방법은 오류가 발생했을 때
처음부터 재시작할 수 없다는 것입니다.
재시작은 비용이 많이 들고
사용자에게 좌절감을 줍니다.
그래서 그들은 오류가 발생했을 때
에이전트가 있던 곳에서
재개할 수 있는 시스템을 구축했습니다.
그리고 그들은 모델의
지능을 사용해 문제를
우아하게 처리한다고 말합니다.
이는 자기 개선으로 이어집니다.
예를 들어, 도구가 실패할 때
에이전트가 이를 알고 적응할 수 있도록 하는 것입니다.
작업에 적응하는 것이 놀랍도록 잘 작동하는 것 같습니다.
또 다른 매우
흥미로웠던 점은 이들이 어떻게
멀티 에이전트 시스템을 배포하는지였습니다.
에이전트 시스템은 높은 수준의 상태 유지 웹이라고 말합니다.
프롬프트, 도구, 실행 로직이
거의 지속적으로 실행됩니다. 예를 들어
시스템을 배포하면 계속
실행됩니다. 따라서 실제로는
시스템 전체를 업그레이드할 수 없습니다. 그리고 이런
방식으로 전통적인 소프트웨어
엔지니어링 원칙이 매우 중요하다고 생각합니다
이런 것들로 구축하더라도
멀티 에이전트 시스템으로 말이죠. 배포할 때
그들은 레인보우
배포 전략을 사용하고 아이디어는
이전 업데이트나 이전 시스템을 점진적으로
새로운 시스템으로 교체하는 것입니다
모든 것을 한 번에 배포하는 대신
말이죠. 그들이 강조하는 또 다른 점은
동기식 실행입니다.
현재 그들은 말합니다.
우리의 리드 에이전트가 서브 에이전트를 동기적으로 실행하여
각 서브 에이전트 세트가 완료될 때까지 기다린 후
진행하며 그 이유는
모든
에이전트의 결과를 집계해야 하기 때문입니다.
따라서 이런 시스템을
비동기적으로 실행하고 싶은 경우가 있을 수 있지만
그들의 특정 사용 사례에서는
아직 그 방법을 찾지 못한 것 같습니다.
어쨌든, 이것은 매우 흥미로운 읽을거리였습니다.
링크는
영상 설명에 있을 것입니다.
또한 구글과 OpenAI가 어떻게
에이전틱 시스템을 구축하려고 하는지에 대한 영상도 만들었습니다.
관심이 있으시다면
여기에 링크되어 있을 것입니다.
어쨌든, 이 영상이 유용했기를 바랍니다.
시청해 주셔서 감사하고
늘 그렇듯이, 다음 영상에서 뵙겠습니다.