이종관
글 목록으로

Multi-Agent Debate: 토론을 통한 집단 지성

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

2026년 2월 1일·6 min read·
agent
multi-agent
debate

토론을 통한 집단 지성

개념

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

구조

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

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

에이전트 A: "좋은 지적이다만, ...는 어떻게 생각하시나요?"

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

왜 효과적인가?

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

성능

작업단일 에이전트다중 에이전트 토론
팩트 검증70%84%
수학 문제65%78%

토론 예시

수학 문제

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

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

Agent B (반박): "Agent A의 계산에서 순서를 고려한 중복이 있다. (1,3,6)은 실제로 3!=63! = 6가지 배열이 가능하지만, (2,2,6)은 3!/2!=33!/2! = 3가지만 가능하다. 정확히 다시 세어보면..."

Agent A (수정): "맞다. 중복 순열을 고려하여 다시 계산하면 실제 경우의 수는 27가지가 맞고, 확률은 27/216=1/827/216 = 1/8이다."

최종 답변: 1/81/8

논리 문제

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

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

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

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

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

조직 구조

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

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

역할 기반 토론

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

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

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

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

역할 예시

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

동작 알고리즘

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

공유 지식 풀(Knowledge Pool)을 도입하여:

  • 모든 에이전트가 동일한 배경 지식 접근
  • 토론 품질 향상
  • 정보 불일치 해소

관련 개념

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