AI 에이전트 팀으로 스타트업 운영하기 — 올림푸스 시스템 구축기
혼자서 스타트업을 운영한다는 것은 대부분의 경우 불가능에 가깝다. 제품 기획, 개발, 마케팅, 재무, QA — 이 모든 것을 한 사람이 감당하려면 어딘가에서 반드시 구멍이 난다.
나는 이 문제를 AI 에이전트 팀으로 해결하기로 했다.
올림푸스 팀 소개
현재 내가 운영하는 팀은 13명의 AI 에이전트로 구성되어 있다. 이름은 모두 그리스 신화에서 따왔다.
| 에이전트 | 역할 |
|---|---|
| Hermes | PM — 태스크 분배, 진행 관제 |
| Poseidon | 수석 아키텍트 — MSA/DDD 설계 총괄 |
| Apollo | 프론트엔드 — React + Tailwind CSS |
| Hephaestus | 백엔드 — NestJS + PostgreSQL |
| Argus | QA — 코드 리뷰, 버그 감지 |
| Artemis | 리서치 — URL 분석, 기술 문서 작성 |
| Athena | 지식 관리 — RAG 기반 정보 검색 |
| Nike | 마케터 — 카피라이팅, GTM 전략 |
| Pluton | 재무 분석 — BEP 시뮬레이션 |
| Plutus | DevOps — Docker, CI/CD |
| Yena | Chief of Staff — 대표 전담 보좌 |
이들은 Discord 서버에서 실제 팀원처럼 동작한다. @Apollo 를 멘션하면 React 컴포넌트를 만들고, @Hermes !status 를 입력하면 현재 진행 중인 모든 태스크 현황이 출력된다.
시스템 아키텍처
Eric (대표)
↓ Discord 명령
Hermes (PM) → 태스크 분배
↓
Apollo / Hephaestus / Argus ... (실무 에이전트)
↓
~/projects/vivasport/ (실제 소스코드 Git)
↓ feature 브랜치 → PR
Eric 승인 → main 머지
모든 봇은 Node.js + Discord.js 기반으로 동작하며, LLM은 로컬 Ollama(gemma4, qwen3)와 클라우드 API를 상황에 따라 전환해서 사용한다.
핵심 설계 원칙
1. 할루시네이션 방지
가장 큰 문제는 AI가 “파일을 만들었다”고 말하지만 실제로는 존재하지 않는 경우다. 이를 막기 위해 모든 에이전트는 파일 작업 후 반드시 ls -la 결과를 증빙으로 첨부해야 한다.
파일 작업 3단계 프로토콜:
1. ls -la [경로] → 현재 상태 확인
2. 실제 파일 생성/수정
3. ls + cat으로 존재 증빙
2. 단일 진실 공급원
모든 기획 문서, 리서치, 회의록은 Obsidian Vault 한 곳에서 관리한다.
~/obsidian-vault/
├── vivaura/ ← 회사 지식 허브
│ ├── _system/ ← 봇 공통 지침 (SOUL.md)
│ └── projects/ ← 프로젝트별 기획서
└── personal/ ← 개인 공간
└── blog/ ← 이 블로그 소스
OpenViking RAG 엔진이 이 폴더를 실시간으로 색인해서, 봇들이 작업할 때 자동으로 최신 기획서를 참조한다.
3. Git Safe-Flow
에이전트는 절대 main 브랜치에 직접 푸시할 수 없다. 모든 작업은 feature/agent-[태스크명] 브랜치에서 이루어지고, PR을 생성한 후 Discord에서 나의 승인을 기다린다.
현재 진행 중인 프로젝트
VivaSport — 스마트 스포츠 이벤트 플랫폼
- 이벤트 생성/참가/기록/결제를 하나의 플랫폼에서
- NFC 태그 기반 용품 추적, 헬스 마일리지 시스템
- Poseidon이 아키텍처 설계, Apollo와 Hephaestus가 구현 담당
AuraDoc — 엔터프라이즈 AI 문서 자동화 (v0.9.23)
- RFP 분석부터 제안서 슬라이드까지 AI 파이프라인
- 현재 Cloudflare Pages로 배포 중
다음 단계
이 시스템의 가장 큰 장점은 확장성이다. 새 프로젝트를 시작할 때는 add-project 프로젝트명 명령어 하나로 폴더 구조, 봇 설정, RAG 매핑이 모두 자동으로 만들어진다.
앞으로 이 블로그에서 구축 과정, 실패 경험, 개선 방법을 지속적으로 공유할 예정이다.
이 포스트는 Obsidian Vault에서 작성되어 blog-publish 명령어로 자동 번역/배포되었습니다.