--- date: 2025-09-29 author: happybell80 tags: [ai, cli, integration, automation] status: idea --- # Multi-AI CLI 통합 시스템 구상 ## 현황 - **사용 중인 AI CLI**: Claude (23/24 서버), Gemini CLI, OpenAI Codex CLI (로컬) - **인증 방식**: 브라우저 세션 기반 (쿠키/토큰 사용, API 미사용) - **현재 워크플로우**: 수동으로 각 CLI에 질문하고 답변 종합 ### CLI 설치 현황 - **로컬**: Claude, Gemini 설치 (OpenAI 없음) - **51123 서버**: Claude만 설치 - **51124 서버**: Claude, Gemini, OpenAI 모두 설치, 세션 파일 접근 가능 ## 목표 여러 AI의 의견을 동시에 얻어 더 나은 의사결정을 내리고 개발 생산성 향상 ## 구현 방안 우선순위 ### 1. 즉시 구현 가능 (tmux + bash) ```bash #!/bin/bash # multi-ai.sh tmux new-session -d -s ai-panel tmux split-window -h -t ai-panel tmux split-window -v -t ai-panel tmux send-keys -t ai-panel:0.0 "claude" Enter tmux send-keys -t ai-panel:0.1 "gemini" Enter tmux send-keys -t ai-panel:0.2 "openai" Enter tmux attach -t ai-panel ``` - 장점: 구현 간단, 즉시 사용 가능 - 단점: 수동 입력 필요, 응답 통합 어려움 ### 2. Python 래퍼 (1주일) - subprocess.Popen으로 각 CLI 프로세스 제어 - asyncio.gather로 동시 질의 및 응답 수집 - 세션 파일 경로: ~/.config/claude, ~/.config/gemini - stdin/stdout 스트림 비동기 처리 ### 3. FastAPI 웹 대시보드 (2-3주) - WebSocket으로 실시간 스트리밍 응답 처리 - 3열 레이아웃으로 동시 응답 표시 - 대화 이력 SQLite/LMDB 저장 **주요 기능**: - 단일 입력창으로 모든 AI에 동시 질의 - 실시간 응답 스트리밍 (3열 레이아웃) - 대화 이력 저장/검색 - 응답 비교 및 최선 선택 - 세션 관리 (쿠키/토큰 경로 공유) ### 4. 기대 효과 #### 시나리오 1: 코드 리뷰 - **입력**: "이 함수의 문제점과 개선 방안" - **Claude**: 버그 및 엣지케이스 분석 - **Gemini**: 성능 최적화 제안 - **OpenAI**: 리팩토링 패턴 추천 - **결과**: 다각도 검토로 코드 품질 향상 #### 시나리오 2: 장애 대응 - **입력**: "서버 응답 지연 원인 분석" - **Claude**: 로그 패턴 분석 - **Gemini**: 시스템 리소스 진단 - **OpenAI**: 즉시 적용 가능한 해결책 - **결과**: 신속한 문제 해결 #### 시나리오 3: 아키텍처 설계 - **입력**: "마이크로서비스 분리 전략" - **Claude**: 도메인 경계 분석 - **Gemini**: 기술 스택 제안 - **OpenAI**: 마이그레이션 로드맵 - **결과**: 균형잡힌 설계 결정 ## 구현 로드맵 1. **Phase 1** (즉시): tmux 스크립트 작성 및 테스트 2. **Phase 2** (1주): Python subprocess 래퍼 개발 3. **Phase 3** (2주): FastAPI 백엔드 구축 4. **Phase 4** (3주): 웹 UI 및 실시간 통신 5. **Phase 5** (1개월): 세션 공유, 응답 분석 기능 ## 배포 방식 **UV 가상환경 사용** (Docker 대신) - 세션 파일(~/.config/claude, ~/.config/gemini) 직접 접근 - 브라우저 인증 자연스럽게 연동 - tmux는 pipx로 설치 - FastAPI는 uv로 관리 ## 기술적 고려사항 ### 세션 관리 - **세션 파일 위치**: strace/fs_usage로 CLI가 읽는 파일 추적 - **인증 오류 감지**: "Session expired", "Please log in" 패턴 매칭 - **헬스 체크**: claude me, gemini whoami로 세션 상태 확인 ### 입출력 제어 - **PTY 사용**: Python pty 모듈로 실제 터미널 환경 시뮬레이션 - **비동기 처리**: asyncio.subprocess로 여러 CLI 동시 제어 - **입력 전송**: stdin.write() 후 flush() 필수 ### 응답 파싱 - **ANSI 코드 제거**: 색상 코드, 스피너, ASCII 아트 정규식 제거 - **응답 종료 판단**: - 프롬프트 재출현 감지 - 1-2초 타임아웃 기반 종료 - **CLI별 커스텀 파서**: 각 CLI 출력 형식에 맞춘 개별 파서 ### 유지보수 리스크 - CLI 업데이트시 파싱 로직 깨짐 - 지속적인 출력 형식 변경 추적 필요 - 각 CLI 버전별 호환성 테스트 필수 ## 리스크 - CLI 업데이트로 인한 호환성 깨짐 - 세션 만료 처리 - 각 서비스의 rate limiting - 자동화 관련 제약사항 ## 최종 배포 전략 ### 구현 위치 - **51124 서버**: 모든 CLI 설치되어 있음, FastAPI 서버 실행 - **51123 서버**: nginx 프록시로 51124:8888 연결 ### 51124 서버 설정 - 전용 디렉토리: /home/admin/multi-ai-cli/ - UV 가상환경으로 FastAPI 실행 - 리소스 격리: nice -n 19, ionice -c3 사용 - 포트: 8888 ### 51123 nginx 프록시 - location /multi-ai/ → proxy_pass http://51124:8888/ - WebSocket 지원 헤더 설정 필요 ## 실현 가능성 평가 ### 최종 평가 - **51124 서버 기준**: 80-85% (모든 CLI 설치됨, 세션 파일 접근 가능) - **핵심 결론**: 51124에서 구축 + 51123 nginx 프록시로 웹 제공 ### Phase별 평가 - **Phase 1** (tmux 스크립트): 100% 즉시 가능 - **Phase 2** (Python 래퍼): 70% (PTY 제어, 응답 종료 판단) - **Phase 3-4** (FastAPI+웹 UI): 65% - **Phase 5** (세션 공유·응답 분석): 50% ## 100% 실현성 달성 방안 ### 검증된 아키텍처 참조 (2024년 기준) - **Microsoft Magentic-One**: Orchestrator + 4개 특화 에이전트 (WebSurfer, FileSurfer, Coder, Terminal) - **AWS Multi-Agent Orchestrator**: Amazon Bedrock 기반 동적 에이전트 할당 - **AutoGen Framework**: Microsoft의 대화형 에이전트 간 메시지 전달 프로토콜 ### 핵심 개선사항 1. **프로파일 기반 에이전트 정의**: 각 CLI를 명확한 역할과 능력으로 정의 2. **메모리 시스템**: SQLite로 대화 컨텍스트 유지, 에이전트 간 정보 공유 3. **동적 오케스트레이션**: 관리 에이전트가 태스크 분배 및 응답 집계 4. **계약 기반 테스트**: 각 CLI 어댑터의 입출력 명세 정의 및 자동 검증 ### 논문 기반 검증 필요 항목 - Multi-agent collaboration mechanisms 연구 - LLM tool use reliability 패턴 - Stream processing backpressure 처리 - Contract testing for microservices 적용 ## 반자동화 범위 정의 ### 자동화 영역 - **입력 브로드캐스트**: 1회 입력 → 다중 모델·23/24 서버에 전송, 응답 수집·요약·충돌 정리 - **코드/문서 생성**: 파일별 unified diff, 커밋/PR 본문 템플릿, 체크리스트·재현 스크립트 자동 생성 - **모니터링**: 헬스체크·로그 수집은 읽기 전용으로 자동화, 실행할 서버 명령은 "미리보기"로 제시 - **세션 관리**: 쿠키 관리·만료 감지·재로그인 안내 자동, 만료 시만 수동 로그인 요구 ### 승인 필요 지점 - 패치 적용 - 테스트 실행 - git push/PR 생성 - 23/24 서버 배포/롤백 트리거 - 운영 DB/컨테이너 조작 (항상 수동)