병렬 실행
여러 LLM에 동시 질의하여 다양한 관점을 수집하는 기능입니다.
개요
병렬 실행은 OpenCode, Gemini, Kilo 등 외부 LLM에게 동시에 질의하여 시간을 절약하고 다양한 관점을 수집합니다.
핵심 원칙:
- 외부 LLM은 참고용, 최종 결정은 Claude 우선
- 미설치 시 안내 메시지만 출력 (에러 아님)
- 모든 결과는 로그에 저장
지원 LLM
| LLM | 모델 | 특징 |
|---|---|---|
| OpenCode | GLM-4.7 | 무료, 고품질, 컨텍스트 제한 없음 |
| Gemini | Gemini-3-Pro | 빠른 응답, 안정적 |
| Kilo | Claude Sonnet 4.5 | Claude API 기반, 코드 특화 |
동작 흐름
[질문 시 - UserPromptSubmit Hook]
사용자 질문 입력
↓
환경 검증 (Git, .env, Docker)
↓
[parallel=true] ──┬─→ OpenCode 요청 ─┬─→ 결과 표시
├─→ Gemini 요청 ──┤
└─→ Kilo 요청 ──┘
↓
Claude 응답 시작
[파일 수정 시 - PostToolUse Hook]
Claude 파일 수정 완료
↓
보안/품질 검사 (SQL Injection, XSS 등)
↓
[on_file_edit=true] 외부 LLM 더블체크
↓
결과 출력 + 로그 저장
설정
.claude/config/default.json:
{
"multi_llm": {
"execution": {
"mode": "parallel",
"parallel_limit": 2,
"timeout_seconds": 60,
"show_progress": true
}
}
}
설정 필드
| 필드 | 설명 | 기본값 |
|---|---|---|
mode | 실행 모드 (parallel / sequential) | parallel |
parallel_limit | 최대 동시 실행 수 | 2 |
timeout_seconds | 전체 타임아웃 | 60 |
show_progress | 진행 상태 표시 | true |
리소스 관리
글로벌 락
동시 실행 수를 제한하여 시스템 부하를 방지합니다.
{
"global_lock": {
"enabled": true,
"lock_file": "/tmp/.multi_llm_global_lock",
"max_wait_seconds": 10
}
}
부하 쓰로틀링
시스템 부하가 높을 때 자동으로 스킵합니다.
{
"load_throttle": {
"enabled": true,
"max_load_average": 10.0,
"skip_on_high_load": true,
"max_memory_percent": 85
}
}
세션 인식
여러 Claude 세션 동시 실행 시 자동 조절합니다.
{
"session_aware": {
"enabled": true,
"max_concurrent_sessions": 2,
"reduce_on_multi_session": true
}
}
트리거 조건
LLM별로 호출 조건을 세밀하게 설정할 수 있습니다.
| 트리거 | 설명 |
|---|---|
on_user_prompt | 사용자 질문 시 |
on_file_edit | 파일 수정 시 |
on_security_warning | 보안 경고 발생 시 |
on_protected_folder | 보호 폴더 접근 시 |
on_large_change | 대규모 변경 (50줄+) 시 |
on_migration | 마이그레이션 파일 수정 시 |
on_auth_code | 인증 관련 코드 수정 시 |
로그 위치
- 질문 의견:
.claude/custom/reports/opencode-prompts.log - 파일 검사:
.claude/custom/reports/opencode-checks.log - 성능 로그:
.claude/custom/reports/llm-performance.log