이종관
Back to Posts

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

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

2026년 2월 1일·7 min read·
ai
ai-agent
llm
multi-agent
debate
collaboration

토론을 통한 집단 지성

개념

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

구조

에이전트 A: "답은 X입니다. 왜냐하면..."
    ↓
에이전트 B: "아니요, ...을 간과했습니다. 답은 Y입니다."
    ↓
에이전트 A: "좋은 지적입니다만, ...는 어떻게 생각하시나요?"
    ↓
[여러 라운드 반복]
    ↓
투표/중재로 최종 답 결정

왜 효과적인가?

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

성능

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

토론 예시

수학 문제

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

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

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

[Agent A - 수정]
"맞습니다. 중복 순열을 고려하여 다시 계산하면
실제 경우의 수는 27가지가 맞고,
확률은 27/216 = 1/8입니다."

[최종 답변] 1/8 ✓

논리 문제

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

[Agent A]
"논리적 형식상 타당합니다.
대전제와 소전제에서 결론이 도출됩니다."

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

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

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

조직 구조

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

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

역할 기반 토론

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

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

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

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

역할 예시

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

동작 알고리즘

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: 토론 + 트리 탐색