Multi-Agent 소프트웨어 개발은 분산 시스템 문제다 (AGI도 구해줄 수 없다)
Multi-Agentic Software Development Is a Distributed Systems Problem
TL;DR Highlight
여러 LLM 에이전트가 소프트웨어를 협력 개발하는 문제는 분산 합의(distributed consensus) 문제이므로 모델이 더 똑똑해져도 근본적인 한계를 벗어날 수 없다.
Who Should Read
멀티 에이전트 파이프라인을 설계하거나 운영 중인 개발자, 또는 LLM 기반 자동화 시스템의 안정성과 일관성 문제를 고민하는 AI 엔지니어.
Core Mechanics
- '모델이 더 좋아지면 에이전트 조율 문제도 해결된다'는 시각이 업계에 만연한데, 저자는 이걸 정면으로 반박한다. 분산 시스템 이론에는 모델 능력과 무관하게 성립하는 불가능성 정리(impossibility results)들이 이미 존재하기 때문이다.
- 자연어 프롬프트는 본질적으로 underspecified(불완전 명세)다. 즉, 하나의 프롬프트 P에 대해 일관된 프로그램이 여러 개 존재할 수 있으며, LLM은 그 중 하나를 '선택'하는 셈이다.
- 멀티 에이전트 개발에서 각 에이전트 A1~An이 서로 다른 컴포넌트 φ1~φn을 구현할 때, 최종 결과물이 하나의 일관된 해석을 공유해야 한다는 조건은 수학적으로 분산 합의(distributed consensus) 문제와 동일하다.
- 한 에이전트의 설계 결정이 다른 에이전트의 선택지를 제약한다. 예를 들어 네트워크 담당 에이전트가 콜백 기반 비동기 API 라이브러리를 선택하면, 통합 담당 에이전트는 그 결정에 맞춰 인프라를 구성해야 한다.
- FLP 불가능성 정리(비동기 분산 시스템에서 결정론적 합의가 불가능하다는 고전 결과)가 이 문제에도 적용된다고 주장한다. 단, 댓글에서는 LLM 에이전트가 확률적 존재이므로 FLP가 직접 적용되지 않을 수 있다는 반론도 제기됐다.
- Byzantine fault(참가자가 잘못된 정보를 보내는 오류 유형)를 crash fault(참가자가 그냥 멈추는 오류 유형)로 변환하는 핵심 메커니즘으로 외부 검증(테스트, 컴파일, lint 등)을 강조한다. 테스트가 없으면 에이전트가 잘못된 해석을 했는지 탐지조차 할 수 없다.
- 저자는 이 문제를 다루기 위해 안무 언어(choreographic language, 분산 참가자들의 상호작용을 전체 관점에서 기술하는 형식 언어)와 게임 이론을 결합한 새로운 형식 언어를 연구 중이라고 밝혔다.
- 부분 동기화 모델(Partial Synchrony, 메시지 지연에 상한이 있다고 가정하는 분산 시스템 모델)이 FLP를 우회하는 현실적 탈출구로 언급되며, 이는 반복적 개선 루프(iteration loop)로 구현 가능하다고 본다.
Evidence
- 실제로 멀티 에이전트 파이프라인을 운영해본 개발자는 plan→design→code 순의 순차적 스테이지와 각 단계마다 컴파일/lint 같은 결정론적 검증 게이트를 두는 방식으로 같은 결론에 도달했다고 공유했다. 결정론적 게이트는 보장의 하한선을, 에이전트 리뷰어는 확률적 상한선을 제공한다는 실용적 프레임워크를 제시했다.
- FLP 불가능성 정리 적용에 대한 기술적 반론이 있었다. FLP는 결정론적 합의에 관한 것인데 LLM 에이전트는 확률 분포, 즉 본질적으로 확률적 존재다. Ben-Or(1983)의 무작위 합의 알고리즘처럼 '막히면 동전 던지기' 전략이 FLP를 우회하듯, 에이전트 시스템도 무작위 합의의 프레임으로 봐야 한다는 주장이다.
- LLM 에이전트들이 같은 가중치와 학습 데이터를 공유하기 때문에 Byzantine fault 가정(참가자들이 독립적으로 오류를 냄)이 성립하지 않는다는 지적이 나왔다. 프롬프트가 모호할 때 에이전트들이 서로 다른 방향으로 오류를 내는 게 아니라 같은 방향으로 편향되는데, 이건 다수결 투표로 잡히지 않아 오히려 더 위험하다는 의견이다.
- Temporal 같은 워크플로 엔진의 bounded timeout이 DLS(Dwork-Lynch-Stockmeyer) 부분 동기화 모델의 메시지 지연 상한과 매핑된다는 실용적 연결고리가 제시됐다. 하지만 인프라 레벨의 재시도가 성공해도 LLM을 재호출하면 다른 출력이 나오는 '의미적 idempotency' 문제는 여전히 미해결이라는 지적도 함께 나왔다.
- 수학적 결과가 인간 에이전트에게도 똑같이 적용되는데 Linux 같은 거대한 코드베이스가 인간에 의해 만들어졌다는 반론이 있었다. 즉 수학이 AI가 못 한다는 걸 증명하진 못하며, Conway's Law처럼 아키텍트 역할이 핵심이라는 시각도 제시됐다.
- 3~4개 에이전트로 실제 팀을 운영해본 개발자는 하나의 에이전트를 supervisor로 두어 PR 리뷰와 충돌 해결을 맡겼더니 이 규모에서는 잘 작동했다고 공유했다. 단, supervisor가 단일 조율 병목점이 되어 인간 테크 리드와 똑같은 문제가 생겼다고도 덧붙였다.
How to Apply
- 멀티 에이전트 파이프라인을 설계할 때 각 에이전트 간 경계마다 컴파일, lint, 타입 체크 같은 결정론적 검증 게이트를 반드시 배치하라. 이렇게 하면 한 에이전트의 잘못된 해석이 다음 에이전트에게 전파되기 전에 탐지 가능한 실패로 변환되어, Byzantine fault를 더 단순한 crash fault로 격하시킬 수 있다.
- 에이전트가 병렬로 작업하는 구조라면 공유 설계 결정(API 스타일, 데이터 타입, 라이브러리 선택 등)을 먼저 하나의 에이전트가 확정하고 명시적 아티팩트(스펙 문서, 인터페이스 정의)로 남긴 다음 다른 에이전트에게 전달하라. 이는 분산 합의 문제에서 '공유 상태'를 명확히 하는 것과 같으며, 에이전트 간 의미적 드리프트를 줄인다.
- Temporal 같은 워크플로 엔진을 사용 중이라면 activity timeout을 명시적으로 설정하는 것만으로도 부분 동기화 모델의 메시지 지연 상한을 구현한 셈이 된다. 단, 재시도 성공 후에도 LLM 출력이 달라질 수 있으므로 재시도 이후에도 검증 게이트를 통과시켜야 실질적인 일관성이 보장된다.
- 에이전트 수가 늘어날수록 supervisor 에이전트 하나가 전체 컨텍스트를 감당하기 어려워진다. 이 경우 계층적 감독 구조(예: 서브팀별 supervisor + 최상위 coordinator)를 도입하되, 각 레벨의 경계에서도 검증 게이트를 두는 방식으로 설계하면 병목을 분산시킬 수 있다.
Terminology
관련 논문
LLM 기반 Multi-Agent 시스템의 Temporal & Structural Credit Assignment 통합 Prompt 최적화
여러 AI 에이전트가 협력할 때 '어느 라운드의 어느 에이전트'가 실패했는지 정확히 짚어내서 그 프롬프트만 고치는 최적화 프레임워크
Multi-Agent LLM 시스템으로 취약점 자동 발견 및 재현하기 - FuzzingBrain V2
LLM 기반 멀티 에이전트 시스템으로 C/C++ 코드의 보안 취약점을 자동으로 찾고 재현하는 FuzzingBrain V2 논문으로, AIxCC 2025 대회에서 40개 중 36개(90%) 취약점 탐지에 성공했다.
CORE: Contrastive Reflection으로 추론 능력을 빠르게 개선하기
성공/실패 추론 트레이스를 비교해 짧은 자연어 인사이트를 뽑아내고, 단 5개 학습 샘플로도 GRPO보다 빠르게 모델 추론 성능을 올리는 비파라메트릭 알고리즘.
Claude Code를 일상 도구로: Claude.md, Skills, Subagents, Plugins, MCPs 활용법
Claude Code를 터미널 AI 코딩 도구로 제대로 쓰기 위한 Claude.md 설정, 서브에이전트, 플러그인, MCP 연동 실전 가이드
FinHarness: 금융 LLM 에이전트를 위한 인라인 라이프사이클 Safety Harness
금융 AI 에이전트가 실행 중간에 위험한 툴 호출을 차단하면서도 정상 승인율을 유지하는 인라인 안전 프레임워크
AI Control에서 Retrying vs Resampling: 어느 쪽이 더 안전한가
Claude Code처럼 의심 행동을 막고 재시도하는 방식이 오히려 공격자에게 힌트를 줘서 더 위험할 수 있다는 연구.
Typed Memory Representation으로 Long-Term Agent의 Provenance-Role Collapse 완화