Avalon3 — 다중 AI 토론 시스템
Avalon3는 여러 AI가 집단지성(Collective Intelligence) 방식으로 토론하고, 그 결과를 바탕으로 코드를 생성하는 시스템입니다. 단일 AI의 편향을 줄이고 더 높은 품질의 결과물을 만들어냅니다.
개요
왜 Avalon3인가?
단일 AI에게 코드를 맡기면 그 AI의 편향과 한계에 갇힐 수 있습니다. Avalon3는 이 문제를 다중 AI 집단지성으로 해결합니다:
| 방식 | 단일 AI | Avalon3 |
|---|---|---|
| 관점 | 하나의 시각 | 모든 AI가 6가지 관점에서 분석 |
| 오류 검출 | 자기 검증 | 구현자 제외 전원이 병렬 리뷰 |
| 설계 품질 | AI 의존적 | 다각도 토론을 통한 최적화 |
| 코드 품질 | 편향 가능 | 리뷰 + 리파인 과정 포함 |
4가지 역할
Avalon3에는 4가지 역할이 있으며, 하나의 AI가 여러 역할을 겸할 수 있습니다:
| 역할 | 설명 | 선택 방식 | 활동 단계 |
|---|---|---|---|
| 토론자 (Debater) | 6가지 관점에서 프로젝트를 분석하고 토론 | 복수 선택 (전체 AI 참여) | Research, Debate |
| 종합자 (Synthesizer) | 토론 결과를 하나의 설계 문서로 통합 | 단일 선택 | Synthesis |
| 구현자 (Implementer) | 설계를 바탕으로 전체 코드 작성 | 단일 선택 | Implementation, Refinement |
| 리뷰어 (Reviewer) | 구현된 코드의 품질 검증 | 자동 (토론자 - 구현자) | Review, Refinement |
리뷰어는 자동으로 결정됩니다. 토론자 중 구현자를 제외한 나머지가 리뷰어가 되어, 자기 코드를 자기가 리뷰하는 것을 방지합니다.
4명의 AI 참여 예시
Claude, Gemini, Ollama, OpenCode 4개 AI를 사용하는 경우:
| 단계 | 참여 AI | 설명 |
|---|---|---|
| Research | Claude + Gemini + Ollama + OpenCode | 4명이 병렬로 리서치 |
| Debate | Claude + Gemini + Ollama + OpenCode | 4명이 6개 관점으로 순차 토론 |
| Synthesis | Gemini (종합자) | 토론 결과를 하나의 설계안으로 통합 |
| Implementation | Claude (구현자) | 설계 기반으로 전체 코드 작성 |
| Review | Gemini + Ollama + OpenCode | 구현자 제외 3명이 병렬 리뷰 |
| Refinement | Claude가 수정 → 3명이 재리뷰 | Critical 이슈가 있을 때만 실행 |
6단계 파이프라인
Research → Debate → Synthesis → Implementation → Review → Refinement

1단계: Research (리서치)
모든 토론자가 병렬로 관련 정보를 조사합니다:
- 기존 코드 및 프로젝트 구조 분석
- 기술 스택 및 의존성 조사
- 모범 사례와 설계 패턴 확인
AI별 리서치 방식의 차이
Research 단계에서 각 AI는 자신이 가진 고유한 도구를 활용하여 조사를 수행합니다. 이 때문에 AI마다 리서치의 깊이와 범위가 다릅니다:
| AI | 리서치 방식 | 특징 |
|---|---|---|
| Claude Code | 내장 웹 브라우저로 직접 웹 검색 및 페이지 탐색 | 최신 문서, API 레퍼런스, GitHub 이슈 등을 실시간으로 조사 |
| Gemini CLI | Google Search 기반 grounding 지원 | Google 검색 결과를 기반으로 최신 정보 반영 |
| Ollama | 학습 데이터 기반 분석 | 웹 접근 없음, 로컬 모델의 사전 학습 지식 활용 |
| OpenCode | 백엔드 모델에 따라 다름 | 연결된 AI 모델의 기능에 의존 |
Claude Code는 WebSearch와 WebFetch 도구를 내장하고 있어, Research 단계에서 자율적으로 브라우저를 열고 관련 기술 문서, 라이브러리 릴리스 노트, 커뮤니티 토론 등을 직접 탐색합니다. 이를 통해 학습 데이터의 지식 마감일(knowledge cutoff) 이후의 최신 정보까지 수집할 수 있습니다.
다양한 리서치 방식을 가진 AI들이 함께 참여할수록, 학습 데이터 기반의 깊은 분석과 실시간 웹 정보가 결합되어 더 풍부한 기초 자료가 만들어집니다.
2단계: Debate (토론)
Avalon3의 핵심인 집단지성 토론이 진행됩니다. 기존의 "설계자 vs 비평가" 방식이 아닌, 모든 AI가 동일한 관점에서 함께 분석하는 방식입니다.
왜 모든 AI가 동일한 관점에서 분석하는가?
일반적인 접근법은 AI마다 다른 역할을 부여하는 것입니다 — 예를 들어 "A는 보안 분석, B는 아키텍처 설계"처럼 분담하는 방식입니다. Avalon3는 이 방식 대신 모든 AI가 모든 관점에서 함께 분석하도록 설계되었습니다:
| 문제점 | 역할 분담 방식 | Avalon3 방식 |
|---|---|---|
| AI 역량 편차 | 약한 AI가 맡은 관점의 분석 품질이 떨어짐 | 모든 AI가 모든 관점을 분석하므로 특정 관점이 약해지지 않음 |
| 관점 간 단절 | 각 AI가 자기 역할만 알고 전체 맥락을 놓침 | 모든 AI가 6개 관점 전체를 거치며 프로젝트 전체를 이해 |
| 교차 검증 부재 | 하나의 관점에 하나의 의견만 존재 | 같은 관점에서 여러 AI가 서로의 분석을 검증하고 보완 |
| 점진적 심화 불가 | 각자 독립적으로 분석하여 깊이 부족 | 이전 발언을 참고하여 순차적으로 더 깊은 분석 가능 |
예를 들어 보안 분석을 Claude에만 맡기면 Claude의 보안 역량에 전적으로 의존하게 됩니다. 하지만 Avalon3에서는 Security 관점에서 Claude, Gemini, Ollama, OpenCode 모두가 순차적으로 발언하기 때문에, 한 AI가 놓친 취약점을 다른 AI가 발견할 수 있습니다.

6개의 고정된 관점을 순차적으로 진행합니다:
| 순서 | 관점 | 초점 |
|---|---|---|
| 1 | 🏗️ Architecture | 구조, 확장성, 유지보수성, 설계 패턴 |
| 2 | 🔒 Security | 취약점, 엣지 케이스, 입력 검증, 인증 |
| 3 | ⚡ Practical | 성능, 단순성, 실용성, MVP |
| 4 | 👤 UX & API | API 사용성, 에러 메시지, 문서화 |
| 5 | 😈 Challenge | 약점 발견, 가정 검증, 반론 제기 |
| 6 | 🌟 Synthesis | 모든 분석 통합, 최종 방향 합의 |
3단계: Synthesis (종합)
종합자가 토론 내용 전체를 분석하여 하나의 설계 문서를 생성합니다:
- 디렉토리 구조
- 파일별 명세 (경로, 목적, exports, imports, 의존성)
- 인터페이스 계약
- 필수 파일 목록
- 구현 가이드라인

4단계: Implementation (구현)
구현자 한 명이 설계를 바탕으로 전체 코드를 작성합니다:
- 의존성 순서에 따라 파일을 순차적으로 생성
- 이전에 생성된 파일을 컨텍스트로 참조
- 일관된 코딩 스타일과 네이밍 컨벤션 보장
5단계: Review (리뷰)
구현자를 제외한 모든 토론자가 병렬로 코드를 리뷰합니다:
| 리뷰 항목 | 설명 |
|---|---|
| 설계 준수 | 파일 경로, 함수 시그니처가 설계와 일치하는지 |
| 임포트 검증 | 순환 참조, 누락된 모듈 확인 |
| 완전성 | pass, TODO, NotImplementedError 등 미구현 코드 검출 |
| 코드 품질 | 에러 처리, 로깅, 타입 힌트 확인 |
| 심각도 | 의미 | 리파인 대상 |
|---|---|---|
| Critical (빨강) | 보안 취약점, 로직 오류 | 반드시 수정 |
| Warning (주황) | 잠재적 문제 | 선택적 수정 |
| Info (파랑) | 개선 제안 | 참고용 |

6단계: Refinement (개선)
리뷰에서 Critical 이슈가 발견된 경우에만 실행됩니다:
- 구현자가 관련 파일 그룹별로 이슈를 수정
- 리뷰어들이 수정된 코드를 재리뷰
- Critical 이슈가 없어질 때까지 반복 (최대 3회)
Avalon3 UI
사이드바

설정 탭
| 설정 항목 | 설명 | 옵션 |
|---|---|---|
| 작업 제목 | 프로젝트/작업 이름 | 자유 텍스트 |
| 작업 설명 | 상세한 요구사항 | 자유 텍스트 (긴 형식) |
| 도메인 | 프로젝트 유형 | General, API, Web, CLI, Trading, ML/AI, Data, Game, Embedded |
| 스케일 | 프로젝트 규모 | Single File, Multi File, Module, Project |
| 언어 | 프로그래밍 언어 | Python, JS, TS, Rust, Go, Java, C# 등 |
| 첨부 파일 | 참조 문서 | .txt, .md 파일 |

도메인 (Domain)
도메인은 AI 토론의 컨텍스트와 프로젝트에 필요한 필수 파일을 결정합니다:
| 도메인 | AI에게 제공하는 컨텍스트 | 자동 추가되는 필수 파일 |
|---|---|---|
| General | 범용 소프트웨어 | (공통 파일만) |
| API | REST/GraphQL API 서버 | schema.sql, migrations/, openapi.yaml |
| Web | 웹 프론트엔드 | index.html, public/ |
| CLI | 커맨드라인 도구 | (공통 파일만) |
| Trading | 트레이딩/금융 시스템 | config.yaml, secrets.example.yaml |
| ML/AI | 머신러닝/AI 프로젝트 | requirements-dev.txt, notebooks/, data/.gitkeep |
| Data | 데이터 처리 | (공통 파일만) |
| Game | 게임 개발 | (공통 파일만) |
| Embedded | 임베디드 시스템 | (공통 파일만) |
스케일 (Scale)
스케일은 AI에게 프로젝트의 규모 힌트를 제공합니다:
| 스케일 | 의도된 규모 | AI에 대한 영향 |
|---|---|---|
| Single File | 단일 파일 | 간단한 스크립트/유틸리티 수준의 설계 |
| Multi File | 여러 파일 | 소규모 다중 파일 프로젝트 |
| Module (기본값) | 모듈 단위 | 모듈화된 아키텍처 설계 |
| Project | 전체 프로젝트 | 완전한 프로젝트 구조 (테스트, 문서 포함) |
스케일은 AI가 Debate와 Synthesis 단계에서 설계 복잡도를 조절하는 데 참고하는 가이드라인 역할입니다. 프로그래밍적 제한(파일 수 제한 등)은 적용되지 않습니다.
언어 (Language)
프로그래밍 언어는 코드 생성과 검증에 실질적 영향을 미칩니다:
| 영향 영역 | 설명 | 예시 (Python) |
|---|---|---|
| 프로젝트 설정 파일 | 언어별 필수 설정 파일 자동 생성 | requirements.txt, pyproject.toml |
| 테스트 파일 패턴 | 테스트 파일 검증 규칙 | tests/test_*.py, conftest.py |
| 검증 명령어 | 빌드/린트/테스트 명령어 | pytest, mypy, flake8 |
| 구문 검사 | 생성된 코드의 문법 확인 | compile() 구문 검사 |
| 언어 | 프로젝트 설정 파일 | 검증 명령어 |
|---|---|---|
| Python | requirements.txt, pyproject.toml | pytest, mypy, flake8 |
| JavaScript | package.json | npm install, eslint, npm test |
| TypeScript | package.json, tsconfig.json | tsc --noEmit, eslint, npm test |
| Go | go.mod | go build, go test |
| Rust | Cargo.toml | cargo check, cargo test, cargo clippy |
| Java | pom.xml 또는 build.gradle | mvn compile, mvn test |
| C# | .csproj, .sln | dotnet build, dotnet test |
AI 프로바이더 설정
각 역할에 다른 AI를 배정할 수 있습니다:

| 역할 | 설명 | 선택 방식 |
|---|---|---|
| 토론자 (Debaters) | 리서치와 토론에 참여하는 AI | 복수 선택 |
| 종합자 (Synthesizer) | 토론 결과를 설계 문서로 통합하는 AI | 단일 선택 |
| 구현자 (Implementer) | 코드를 작성하는 AI | 단일 선택 |
리뷰어는 별도로 선택하지 않습니다. 토론자 중 구현자를 제외한 AI가 자동으로 리뷰어가 됩니다.
지원 AI 프로바이더:
| 프로바이더 | 설명 | 비고 |
|---|---|---|
| Claude CLI | Anthropic Claude | 가장 안정적 |
| Gemini CLI | Google Gemini | 빠른 응답 |
| Ollama | 로컬 AI 모델 | 네트워크 불필요 |
| OpenCode | 오픈소스 AI | 무료 |
Ollama는 원격 서버도 지원합니다.
host:port|model형식으로 입력하세요 (예:192.168.1.100:11434|llama3).
히스토리 탭
이전 실행 기록을 확인하고 설정을 재사용할 수 있습니다:

- 실행 일시, 제목, 작업 ID
- 스테이지 수, 성공/실패 상태
- 클릭으로 설정 불러오기
실행 패널 (오른쪽)
실행 탭

- 진행 바 — 6단계 중 현재 위치
- 현재 스테이지 — 실행 중인 단계 이름
- 현재 프로바이더 — 사용 중인 AI 이름
- 로그 출력 — 타임스탬프 포함 실시간 로그
결과 탭

- 생성된 파일 목록 — 파일명, 크기, 언어
- 리뷰 이슈 — Critical/Warning/Info 분류
- 통계 — 파일 수, 코드 라인 수, 토큰 수, 소요 시간
- README.md — 자동 생성된 문서
완료 팝업

파이프라인 완료 시 팝업이 나타나며 다음 정보를 표시합니다:
- 작업 ID
- 생성된 파일 수
- 코드 라인 수
- 소요 시간
- 결과 보기 / 파일 탭으로 이동 버튼
프롬프트 라이브러리 연동
Avalon3 설정에서 프롬프트 라이브러리를 불러와 작업 설명에 사용할 수 있습니다:
- 설정 탭에서 프롬프트 불러오기 버튼 클릭
- 프롬프트 검색 및 선택
- 선택한 프롬프트가 작업 설명에 자동 입력

결과 저장 위치
{프로젝트}/
├── avalon_{timestamp}/ # 생성된 소스 코드 디렉토리
│ ├── (소스 코드 파일들)
│ ├── README.md # 자동 생성 문서
│ └── avalon3_result.json # 전체 결과 JSON
└── .projecthub/
└── avalon3/
├── avalon3_result.json # 결과 뷰어용 (동일 내용)
└── history.json # 실행 히스토리
avalon3_result.json에는 파이프라인의 모든 단계 결과가 통합되어 있습니다:
| 키 | 내용 | 대응 단계 |
|---|---|---|
research | 각 AI의 리서치 결과, 발견사항, 권장사항 | Research |
debate | 토론 라운드별 메시지, 참여자, 타임스탬프 | Debate |
architecture | 종합 설계 문서 (기술 스택, 디렉토리 구조, 파일 명세, 인터페이스 계약, 구현 가이드라인) | Synthesis |
review | 리뷰어별 이슈 목록 (Critical/Warning/Info), 승인 여부 | Review |
solution | 생성된 전체 소스 코드 (파일별 경로, 내용, 언어) | Implementation |
summary | 통계 (파일 수, 토론 메시지 수, 토큰 사용량, 소요 시간) | 전체 |

활용 시나리오
아키텍처 설계
복잡한 시스템의 아키텍처를 설계할 때, 여러 AI가 6가지 관점(구조, 보안, 실용, UX, 도전, 종합)에서 분석하여 최적의 설계를 도출합니다.
코드 리팩토링
기존 코드의 리팩토링 방향을 AI들이 집단지성으로 토론하여 최적의 전략을 도출합니다.
신규 기능 구현
새로운 기능을 구현할 때, 다각도 토론 → 설계 → 구현 → 리뷰 → 개선까지 한 번에 진행합니다.