Multi-Agent Debate
여러 AI 에이전트가 서로 토론하며 문제를 해결하는 방식. 다양한 관점과 상호 검증으로 더 나은 답에 도달한다
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이므로 전체 경우의 수는 이다. 합이 10이 되는 조합은 (1,3,6), (1,4,5), (2,2,6), (2,3,5), (2,4,4), (3,3,4) 6가지이므로 확률은 이다."
Agent B (반박): "Agent A는 순서를 무시한 조합만 셌다. 분모 216은 순서를 구분한 값이므로 분자도 순서를 펼쳐야 한다. (1,3,6)·(1,4,5)·(2,3,5)는 각각 가지, (2,2,6)·(2,4,4)·(3,3,4)는 같은 눈이 둘이라 각각 가지다."
Agent A (수정): "맞다. 펼치면 가지이므로 확률은 이다."
최종 답변: ✓
논리 문제
문제: "모든 새는 날 수 있다. 펭귄은 새다. 따라서 펭귄은 날 수 있다. 이 논증은 타당한가?"
Agent A: "논리적 형식상 타당하다. 대전제와 소전제에서 결론이 도출된다."
Agent B (반박): "논리적 형식은 타당하지만, 대전제가 거짓이다. '모든 새는 날 수 있다'는 사실이 아니다. 펭귄, 타조, 키위 등 날지 못하는 새가 있다."
Agent A (수정): "맞다. 논증의 형식적 타당성과 전제의 진리값을 구분해야 한다. 이 논증은 형식적으로 타당하나, 대전제가 거짓이므로 건전하지 않다."
최종 답변: 형식적으로 타당하나 건전하지 않음 ✓
조직 구조
Multi-Agent 시스템의 다양한 조직 구조:
| 구조 | 특징 | 장점 | 단점 |
|---|---|---|---|
| 중앙집중식 | 중재자가 조율 | 일관성, 빠른 결정 | 단일 실패점 |
| 분산식 | 동등한 참여 | 창발성, 다양성 | 합의 어려움 |
| 하이브리드 | 계층적 구조 | 균형 | 복잡성 |
역할 기반 토론
각 에이전트에 다른 역할을 부여:
긍정적 비평가: "이 접근의 장점은..."
부정적 비평가: "하지만 이런 문제점이..."
통합자: "두 관점을 종합하면..."
역할 예시
| 역할 | 책임 |
|---|---|
| 옹호자 | 제안을 지지하고 장점 강조 |
| 비판자 | 약점과 위험 지적 |
| 사실 확인자 | 주장의 근거 검증 |
| 중재자 | 합의 도출 |
동작 알고리즘
아래 코드는 초기 응답 수집 → 라운드 반복 → 합의 확인 → 최종 결정 순으로 동작한다. max_rounds는 토론 라운드 상한이고, responses는 에이전트별 최신 응답을 담는 딕셔너리다. check_consensus가 합의를 감지하면 조기 종료하고, 마지막 vote_or_mediate가 아래 '합의 방식' 표의 전략으로 최종 답을 정한다.
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)합의 방식
| 방식 | 설명 |
|---|---|
| 다수결 | 가장 많은 지지를 받은 답 |
| 가중 투표 | 신뢰도에 따른 가중치 |
| 중재자 결정 | 별도의 중재 에이전트 |
| 합의 도출 | 모든 에이전트가 동의 |
한계
- 비용: 여러 에이전트 호출로 비용 증가
- 시간: 여러 라운드 필요
- 합의 실패: 영원히 합의에 도달하지 못할 수 있음
- 동질성: 같은 모델은 비슷한 편향 가능
MADKE
MADKE는 공유 지식 풀(Knowledge Pool)을 도입한 Multi-Agent Debate 확장형이다. 모든 에이전트가 같은 배경 지식에 접근하므로 토론 품질이 오르고 정보 불일치가 줄어든다.
정리
Multi-Agent Debate는 여러 에이전트가 서로의 답을 반박하고 검증하는 과정에서 단일 모델의 오류와 할루시네이션을 줄인다. 다양한 관점과 상호 검증이 효과의 핵심이지만, 호출 횟수와 라운드가 늘어 비용과 지연이 커지고 같은 모델끼리는 편향이 겹친다. 그래서 정답 검증이 까다롭고 비용을 감수할 만한 작업, 예컨대 팩트 검증이나 복잡한 추론에 우선 적용한다. 공유 지식 풀로 사실 기반을 맞추는 MADKE처럼, 토론 구조를 보완하는 확장도 함께 검토하면 합의 품질을 높일 수 있다.
관련 개념
- MADKE: 지식 강화 토론
- LLM Agent Survey: 협력 구조
- LATS: 토론 + 트리 탐색