jongkwan.dev
개발 · Essay №040

MADKE(Multi-Agent Debate with Knowledge Enhancement)지식 강화 다중 에이전트 토론

Multi-Agent Debate에 공유 지식 풀을 도입하여 토론 품질을 높이는 확장 기법

이종관2026년 2월 5일8 min read
Contents

공유 지식 풀을 둬서, 토론하는 에이전트들이 같은 사실 위에서 논의하도록 만드는 Multi-Agent Debate 확장 기법이다.

개념

MADKE는 Multi-Agent Debate에 공유 지식 풀을 도입해 토론 품질을 높이는 확장 기법이다.

기존 Multi-Agent Debate의 문제

  • 각 에이전트의 배경 지식이 다름
  • 같은 정보에 대해 다르게 해석
  • 특정 분야 지식 부족 시 토론 품질 저하

문제 예시

아래 수치는 개념 설명을 위한 가상 예시이며 실제 값과 다르다.

Agent A: "한국의 GDP는 약 1.6조 달러이다."

Agent B: "아니요, 1.8조 달러이다."

Agent C: "제가 알기로는 1.7조 달러이다."

각자 다른 시점과 출처의 데이터로 불필요한 논쟁이 발생한다.

해결책: 공유 지식 풀

공유 지식 풀(논문, 팩트, 전문 지식)을 중심으로 모든 에이전트가 연결된다. 각 에이전트는 다음과 같이 동작한다:

  1. 지식 풀에서 관련 정보 검색 — 토론에 필요한 데이터를 가져온다.
  2. 그 정보를 바탕으로 토론 — 동일한 정보 기반 위에서 논의한다.
  3. 새로운 정보는 풀에 추가 — 토론 중 발견한 내용을 공유한다.

MADKE의 핵심은 적응적 지식 선택이다. 모든 에이전트가 매 라운드 검색하는 것이 아니라, 각 에이전트가 자신에게 외부 지식이 필요한지 스스로 판단해 선택적으로 가져온다. 일괄 검색하는 RAG식 접근과 갈리는 지점이다.

프로세스

  1. 질문 수신 — 사용자로부터 질문을 받는다.
  2. 관련 지식 검색 — 각 에이전트가 필요에 따라 지식 풀에서 정보를 선택적으로 가져온다.
  3. 지식 기반 토론 — 동일한 정보를 바탕으로 토론을 진행한다.
  4. 새로운 발견 저장 — 토론 중 발견한 새 정보를 풀에 추가한다.
  5. 최종 답 도출 — 토론 결과를 종합하여 답변을 생성한다.

기존 Debate vs MADKE

기존 DebateMADKE
배경 지식각자 다름동일한 지식 기반
정보 일관성불일치 가능일관된 정보
지식 한계학습 데이터 범위외부 지식 접근
토론 품질변동적안정적

MADKE 토론 예시

아래 기관명과 수치도 동작을 보이기 위한 가상 예시다.

질문: "2024년 한국 경제 성장률 전망은?"

지식 풀 검색: IMF 보고서 2.3% 전망, 한국은행 전망 2.1%, OECD 전망 2.2%

Agent A (지식 기반 응답): "IMF 보고서에 따르면 2.3%로 전망되지만, 한국은행은 더 보수적인 2.1%를 제시했다."

Agent B (보완): "OECD 전망 2.2%도 고려하면, 대체로 2.1-2.3% 범위로 수렴한다. 주요 기관 간 큰 차이가 없다."

최종 답변: "주요 기관들의 전망을 종합하면 2024년 한국 경제 성장률은 약 2.1-2.3%로 예상된다. (출처: IMF, 한국은행, OECD)"

지식 풀 구성

유형예시
팩트 데이터통계, 수치, 날짜
전문 지식논문, 보고서
도메인 지식의학, 법률, 기술
최신 정보뉴스, 업데이트

지식 풀 업데이트

토론 중 새로운 정보가 발견되면 풀에 추가:

토론 중 — Agent A: "최근 연구에 따르면 X라는 새로운 발견이..."

검증 — Agent B: "출처를 확인해보니 신뢰할 수 있는 논문이다."

지식 풀 업데이트 — 새로운 팩트 추가: "X 현상 발견 (출처: Nature 2024)"

구현 구조

debate()는 초기 검색으로 첫 응답을 만든 뒤, 라운드마다 각 에이전트가 추가 지식을 검색하고 다른 응답을 참고해 답을 갱신한다. 토론 중 새 정보가 나오면 풀에 더하고, 마지막에 synthesize()로 최종 답을 합친다.

python
class MADKE:
    def __init__(self, agents, knowledge_pool):
        self.agents = agents
        self.knowledge_pool = knowledge_pool
 
    def debate(self, question, max_rounds=3):
        # 1. 관련 지식 검색
        relevant_knowledge = self.knowledge_pool.search(question)
 
        # 2. 지식 기반 초기 응답
        responses = {}
        for agent in self.agents:
            responses[agent.id] = agent.generate(
                question=question,
                context=relevant_knowledge
            )
 
        # 3. 토론 라운드
        for round in range(max_rounds):
            for agent in self.agents:
                # 추가 지식 검색 가능
                additional_knowledge = self.knowledge_pool.search(
                    agent.get_query()
                )
 
                responses[agent.id] = agent.respond(
                    question=question,
                    knowledge=relevant_knowledge + additional_knowledge,
                    others=responses
                )
 
                # 새로운 정보 발견 시 풀에 추가
                if agent.has_new_finding():
                    self.knowledge_pool.add(agent.new_finding)
 
        # 4. 최종 답변
        return self.synthesize(responses)

여기서 agent.get_query()는 에이전트가 추가로 알고 싶은 질의를 만들고, has_new_finding()은 이번 응답에서 풀에 더할 새 정보가 생겼는지 판단한다. max_rounds는 토론을 반복할 최대 라운드 수다.

장점

  1. 일관성: 모든 에이전트가 같은 정보 기반
  2. 정확성: 외부 지식으로 할루시네이션 감소
  3. 투명성: 출처 명시 가능
  4. 확장성: 지식 풀 확장으로 역량 증가

한계

  1. 지식 풀 품질: 잘못된 정보가 있으면 전체에 영향
  2. 검색 정확도: 관련 지식을 찾지 못할 수 있음
  3. 업데이트 비용: 지식 풀 유지 관리 필요

정리

MADKE는 공유 지식 풀을 두어 토론하는 에이전트들이 같은 사실 위에서 논의하게 만드는 Multi-Agent Debate 확장이다. 핵심은 적응적 지식 선택으로, 모든 에이전트가 매 라운드 검색하는 대신 각자 외부 지식이 필요한지 스스로 판단해 가져온다. 그 결과 배경 지식 불일치에서 오는 소모적 논쟁이 줄고, 출처를 명시한 일관된 답에 수렴한다. 다만 효과는 지식 풀의 품질과 검색 정확도에 좌우되므로, 풀 유지·관리 비용을 감당할 수 있는 도메인에 적합하다.

관련 개념

  • Multi-Agent Debate: 기본 토론 구조
  • RAG: 지식 검색 기술
  • LLM Agent Survey: 협력 구조