AI 7봇 자동화 시스템 직접 만들기 — JARVIS 전체 구조 공개
혼자서 AI 7개를 굴리는 자동화 시스템을 만들었다. 구조, 이유, 어떻게 돌아가는지 전부 공개한다.
왜 이런 걸 만들었나
혼자서 블로그를 운영하면서 콘텐츠를 만들고, 뉴스를 수집하고, 시스템을 개선하는 작업을 동시에 하려니 시간이 없었습니다.
AI를 하나만 쓰면 모델마다 잘하는 게 달랐습니다. 글쓰기는 Claude가 낫고, 빠른 검색 요약은 Gemini가 낫고, 코딩은 Codex가 나았습니다. 이걸 하나로 묶어서 자동으로 돌게 하면 어떨까 — 그게 시작이었습니다.
전체 구조
JARVIS 시스템
├── 봇 7개 (Telegram 기반)
│ ├── 뉴스봇 — 뉴스 수집 · 인텔리전스 (NVIDIA NIM)
│ ├── 코딩봇 — CoT 코딩 에이전트 (Qwen3, 로컬)
│ ├── Gemma3봇 — 기술 자동화 (Ollama 로컬)
│ ├── Gemini봇 — 검색 · 요약 (Gemini API)
│ ├── DeepSeek봇 — 분석 · 전략 (DeepSeek API)
│ ├── 코덱스봇 — 코드 구현 (Codex CLI)
│ └── 클로드봇 — Claude (Telegram MCP 플러그인)
│
├── 스케줄러 7개 (Windows Task Scheduler)
│ ├── IntelFeed — 30분마다 뉴스 수집
│ ├── DreamLoop — 매일 01:00 야간 합성
│ ├── NimCuration — 30분마다 큐레이션
│ ├── KnowledgeSync — 30분마다 지식 동기화
│ ├── SelfApply — 매일 06:30 자동 개선
│ ├── BotMeeting — 매주 일요일 22:00 자율회의
│ └── NimbotToPearl — 매일 07:00 포스트 브릿지
│
└── 지식 저장소
├── growth_log.md — 배운 것 축적
├── debates/ — 봇회의 기록
├── dreams/ — 야간 합성 결과
└── curated/ — 검수 완료 콘텐츠
각 봇이 하는 일
뉴스봇 NVIDIA NIM API를 사용합니다. mistral-nemotron 모델. 뉴스를 수집하고 요약합니다. 30분마다 자동으로 돌아갑니다.
코딩봇 로컬에서 Qwen3 27B를 돌립니다. llama-server로 서빙 (포트 11440). 코딩 작업에서 ANALYZE → PLAN → IMPLEMENT → VERIFY 단계로 생각합니다. 복잡한 코드 작업을 맡깁니다.
Gemma3봇 Ollama로 로컬 서빙. 빠른 실행이 필요한 작업 담당.
코덱스봇 Codex CLI를 래핑한 봇. 실제 코드 파일을 수정하거나 새로 만드는 작업.
클로드봇 (Telegram MCP) Claude Code의 Telegram MCP 플러그인입니다. 이 봇을 통해 Claude Code에 명령을 내리면 실제 파일 수정, Git 커밋, 배포까지 됩니다. 이 포스트도 그렇게 작성됐습니다.
봇들이 서로 어떻게 통신하나
중앙 상태 파일(JARVIS_STATE.md)을 공유합니다.
봇 A가 작업 완료
→ JARVIS_STATE.md 갱신
→ 봇 B가 파일 읽고 상태 파악
→ 이어서 작업
Telegram 그룹 채팅방을 허브로 씁니다. 봇들이 같은 그룹에 들어가 있어서 서로의 메시지를 봅니다. 오케스트라 지휘자 역할을 하는 스크립트(orchestra.py)가 작업을 분배합니다.
만들면서 생긴 문제들
1. 봇 포트 충돌 여러 봇이 같은 포트를 잡으려다 충돌. Task Scheduler 재시작 시 이전 프로세스가 살아있어서 포트 점유.
2. Ollama 컨테이너 무응답
Docker의 ollama-gpu 컨테이너가 가끔 멈춤. docker start ollama-gpu로 수동 재시작해야 했음.
3. 모델 타임아웃 처음에 devstral:24b 모델을 봇회의에 썼는데 응답이 60초 안에 안 나옴. gemma3:12b로 교체하고 타임아웃을 150초로 늘림.
4. 세션 연속성
Claude Code를 재시작하면 대화 맥락이 날아감. JARVIS_STATE.md에 현재 상태를 기록하고, 새 세션 시작 시 이 파일을 먼저 읽게 했습니다.
현재 자동으로 돌아가는 것들
- 뉴스 수집 및 요약: 30분마다 자동
- 야간 합성 (드림루프): 매일 새벽 1시
- 주간 봇회의: 매주 일요일 밤 10시
- 자동 개선 적용: 매일 아침 6시 반
목표
AdSense 수익으로 월 50만원. 현재는 시스템 구축 단계입니다.
이 시스템을 만들면서 배운 것들, 실패한 것들을 전부 기록할 예정입니다.