합의 시스템
여러 LLM의 의견을 종합하여 최적의 결정을 도출합니다.
개요
합의 시스템은 여러 LLM의 의견을 수집하고 가중치 기반으로 최적의 결정을 도출합니다.
기존 토론 시스템과의 차이
| 구분 | 기존 토론 시스템 | 합의 시스템 |
|---|---|---|
| 의견 수집 | 참고용 | 구조화된 수집 |
| 결정 방식 | Claude 단독 | 가중치 기반 합의 |
| 합의율 | 없음 | 정량적 계산 |
| 충돌 해결 | 없음 | 전략 기반 해결 |
합의 유형
| 유형 | 합의율 | 의미 |
|---|---|---|
full | ≥ 100% | 완전 합의 (모든 LLM 동의) |
majority | ≥ 66% | 다수 합의 |
partial | ≥ 50% | 부분 합의 |
conflict | < 50% | 의견 충돌 |
해결 전략
| 전략 | 설명 |
|---|---|
weighted_majority | 가중치 기반 다수결 (기본값) |
first_response | 첫 번째 응답 채택 |
user_choice | 사용자 선택 요청 |
설정
.claude/config/default.json:
{
"multi_llm": {
"consensus": {
"enabled": true,
"llms": ["opencode", "gemini", "kilo"],
"min_responses": 2,
"timeout_seconds": 45,
"parallel_execution": true,
"weights": {
"opencode": 0.8,
"gemini": 0.9,
"kilo": 0.85
},
"resolution": {
"strategy": "weighted_majority",
"fallback_to_user": true
}
}
}
}
설정 필드
| 필드 | 설명 |
|---|---|
llms | 합의에 참여할 LLM 목록 |
min_responses | 최소 응답 수 (2 이상) |
weights | LLM별 신뢰도 가중치 (0.0-1.0) |
resolution.strategy | 충돌 해결 전략 |
fallback_to_user | 충돌 시 사용자 선택 요청 |
사용법
# 합의 요청
/consensus "이 코드의 보안 취약점을 검토해주세요"
# 합의 통계 조회
/consensus --stats
출력 형식
합의 결과는 다음 형식으로 표시됩니다:
📊 **Multi-LLM 합의 결과**
| LLM | 의견 | 가중치 |
|-----|------|--------|
| OpenCode | 취약점 없음 | 0.8 |
| Gemini | SQL Injection 가능성 | 0.9 |
| Kilo | prepared statement 권장 | 0.85 |
**합의율**: 66% (majority)
**결정**: SQL Injection 검토 필요
AI 의견 표시
Claude는 외부 LLM 의견을 다음과 같이 표시합니다:
| 기호 | 의미 | 설명 |
|---|---|---|
| ✅동의 | 동일 의견 | Claude와 동일한 의견 |
| ⚡채택 | 다른 의견 채택 | 외부 LLM 의견 반영 |
| ❌반론 | 다른 의견 반론 | 외부 의견에 반대 (사유 명시) |
| ⏭️참고 | 참고만 함 | 현재 작업과 무관 |
로그
- 합의 기록:
.claude/custom/context/consensus.jsonl - 충돌 기록:
.claude/custom/context/consensus-conflicts.log