jongkwan.dev
개발 · Essay №039

Multi-Agent Debate

여러 AI 에이전트가 서로 토론하며 문제를 해결하는 방식. 다양한 관점과 상호 검증으로 더 나은 답에 도달한다

이종관2026년 2월 4일9 min read
Contents

여러 에이전트가 서로 반박하고 검증하며 단일 모델보다 나은 답에 수렴하는 기법이다.

개념

Multi-Agent Debate는 여러 AI 에이전트가 서로 토론하며 문제를 해결하는 기법이다. 다양한 관점과 상호 검증으로 더 나은 답에 도달한다.

구조

에이전트 A: "답은 X이다. 왜냐하면..."

에이전트 B: "아니요, ...을 간과했다. 답은 Y이다."

에이전트 A: "좋은 지적이다. 그렇다면 ...는 어떻게 보는가?"

여러 라운드를 반복한 뒤, 투표 또는 중재로 최종 답을 결정한다.

왜 잘 동작하는가

이유설명
다양한 관점각 에이전트가 다른 방식으로 접근
상호 검증한 에이전트의 오류를 다른 에이전트가 발견
할루시네이션 감소근거 없는 주장이 쉽게 반박됨
신중한 추론정당화를 위해 더 깊이 생각

성능

작업단일 에이전트다중 에이전트 토론
팩트 검증 (MMLU)63.9%71.1%
수학 문제 (GSM8K)77.0%85.0%

위 수치는 Du et al. 2023, 'Improving Factuality and Reasoning in Language Models through Multiagent Debate'(arXiv:2305.14325)의 표 1·표 2에서 단일 에이전트와 3개 에이전트·2라운드 토론을 비교한 값이다. 같은 논문은 Biographies(66.0% → 73.8%)와 산술(67.0% → 81.8%) 과제에서도 향상을 보고한다. 실제 향상폭은 모델·벤치마크·라운드 수에 따라 달라진다.

토론 예시

수학 문제

문제: "3개의 주사위를 던졌을 때, 합이 10이 될 확률은?"

Agent A (1라운드): "각 주사위의 경우의 수는 6이므로 전체 경우의 수는 63=2166^3 = 216이다. 합이 10이 되는 조합은 (1,3,6), (1,4,5), (2,2,6), (2,3,5), (2,4,4), (3,3,4) 6가지이므로 확률은 6/216=1/366/216 = 1/36이다."

Agent B (반박): "Agent A는 순서를 무시한 조합만 셌다. 분모 216은 순서를 구분한 값이므로 분자도 순서를 펼쳐야 한다. (1,3,6)·(1,4,5)·(2,3,5)는 각각 3!=63! = 6가지, (2,2,6)·(2,4,4)·(3,3,4)는 같은 눈이 둘이라 각각 3!/2!=33!/2! = 3가지다."

Agent A (수정): "맞다. 펼치면 6×3+3×3=276 \times 3 + 3 \times 3 = 27가지이므로 확률은 27/216=1/827/216 = 1/8이다."

최종 답변: 1/81/8

논리 문제

문제: "모든 새는 날 수 있다. 펭귄은 새다. 따라서 펭귄은 날 수 있다. 이 논증은 타당한가?"

Agent A: "논리적 형식상 타당하다. 대전제와 소전제에서 결론이 도출된다."

Agent B (반박): "논리적 형식은 타당하지만, 대전제가 거짓이다. '모든 새는 날 수 있다'는 사실이 아니다. 펭귄, 타조, 키위 등 날지 못하는 새가 있다."

Agent A (수정): "맞다. 논증의 형식적 타당성과 전제의 진리값을 구분해야 한다. 이 논증은 형식적으로 타당하나, 대전제가 거짓이므로 건전하지 않다."

최종 답변: 형식적으로 타당하나 건전하지 않음 ✓

조직 구조

Multi-Agent 시스템의 다양한 조직 구조:

구조특징장점단점
중앙집중식중재자가 조율일관성, 빠른 결정단일 실패점
분산식동등한 참여창발성, 다양성합의 어려움
하이브리드계층적 구조균형복잡성

역할 기반 토론

각 에이전트에 다른 역할을 부여:

긍정적 비평가: "이 접근의 장점은..."

부정적 비평가: "하지만 이런 문제점이..."

통합자: "두 관점을 종합하면..."

역할 예시

역할책임
옹호자제안을 지지하고 장점 강조
비판자약점과 위험 지적
사실 확인자주장의 근거 검증
중재자합의 도출

동작 알고리즘

아래 코드는 초기 응답 수집 → 라운드 반복 → 합의 확인 → 최종 결정 순으로 동작한다. max_rounds는 토론 라운드 상한이고, responses는 에이전트별 최신 응답을 담는 딕셔너리다. check_consensus가 합의를 감지하면 조기 종료하고, 마지막 vote_or_mediate가 아래 '합의 방식' 표의 전략으로 최종 답을 정한다.

python
def multi_agent_debate(question, agents, max_rounds=3):
    responses = {}
 
    # 초기 응답 수집
    for agent in agents:
        responses[agent.id] = agent.generate(question)
 
    # 토론 라운드
    for round in range(max_rounds):
        for agent in agents:
            # 다른 에이전트의 응답 확인
            others_responses = {
                k: v for k, v in responses.items()
                if k != agent.id
            }
 
            # 반박 또는 수정
            responses[agent.id] = agent.generate(
                f"질문: {question}\n"
                f"다른 에이전트 응답: {others_responses}\n"
                f"당신의 기존 응답: {responses[agent.id]}\n"
                f"반박하거나 수정하세요."
            )
 
        # 합의 확인
        if check_consensus(responses):
            break
 
    # 최종 답변 결정 (투표 또는 중재)
    return vote_or_mediate(responses)

합의 방식

방식설명
다수결가장 많은 지지를 받은 답
가중 투표신뢰도에 따른 가중치
중재자 결정별도의 중재 에이전트
합의 도출모든 에이전트가 동의

한계

  1. 비용: 여러 에이전트 호출로 비용 증가
  2. 시간: 여러 라운드 필요
  3. 합의 실패: 영원히 합의에 도달하지 못할 수 있음
  4. 동질성: 같은 모델은 비슷한 편향 가능

MADKE

MADKE는 공유 지식 풀(Knowledge Pool)을 도입한 Multi-Agent Debate 확장형이다. 모든 에이전트가 같은 배경 지식에 접근하므로 토론 품질이 오르고 정보 불일치가 줄어든다.

정리

Multi-Agent Debate는 여러 에이전트가 서로의 답을 반박하고 검증하는 과정에서 단일 모델의 오류와 할루시네이션을 줄인다. 다양한 관점과 상호 검증이 효과의 핵심이지만, 호출 횟수와 라운드가 늘어 비용과 지연이 커지고 같은 모델끼리는 편향이 겹친다. 그래서 정답 검증이 까다롭고 비용을 감수할 만한 작업, 예컨대 팩트 검증이나 복잡한 추론에 우선 적용한다. 공유 지식 풀로 사실 기반을 맞추는 MADKE처럼, 토론 구조를 보완하는 확장도 함께 검토하면 합의 품질을 높일 수 있다.

관련 개념

  • MADKE: 지식 강화 토론
  • LLM Agent Survey: 협력 구조
  • LATS: 토론 + 트리 탐색