Phantom 소개
오늘날 대부분의 AI 에이전트는 일회용에 가깝습니다. 채팅 창을 열어 답을 얻고 탭을 닫으면 맥락이 사라지고, 다음에는 다시 처음부터 시작합니다. 매 세션이 언제나 첫날인 셈입니다. 게다가 에이전트가 사용자의 노트북 위에서 돌면, 그것이 만든 대시보드나 도구는 localhost 에 갇혀 다른 사람에게 보여줄 수 없습니다.
Phantom 은 여기에 다른 전제를 둡니다. 에이전트에게 자기만의 컴퓨터를 준다 는 것입니다. 소프트웨어를 설치하고, 데이터베이스를 띄우고, 대시보드를 만들고, 지난주에 들은 내용을 기억하는 전용 머신(VM)을 에이전트가 갖습니다. 사용자의 노트북은 사용자만의 것으로 남고, 에이전트의 작업 공간은 에이전트의 것입니다. Phantom 은 Claude Agent SDK 위에서 동작하며, Slack, 웹 채팅(/chat), 자체 이메일 주소, Telegram, 웹훅 같은 여러 채널로 사용자와 연결됩니다.
Phantom 은 챗봇이 아니라 동료(co-worker)를 지향합니다. 자신의 도구를 직접 만들고, 허락을 구하지 않고 인프라를 구축하며, 매 세션이 끝날 때마다 스스로 설정을 다듬어 사용자의 일에 점점 더 능숙해집니다. 아래에서는 실제 프로덕션 Phantom 이 만든 것들, 자기 진화 방식, 아키텍처와 주요 기능, 그리고 설치 방법을 정리합니다.
Phantom 이 자기 컴퓨터에서 실제로 한 일
원문에 따르면 아래 사례들은 목업이 아니라 프로덕션 Phantom 인스턴스에서 실제로 일어난 일입니다.
- 바닥부터 분석 플랫폼 구축 : 데이터 분석을 도와달라는 요청을 받은 Phantom 이 자기 VM 에 ClickHouse 를 직접 설치하고, Hacker News 전체 데이터셋(2007–2021년, 2,870만 행)을 적재한 뒤, 인터랙티브 차트가 있는 대시보드와 데이터를 조회하는 REST API 를 만들었습니다. 그리고 그 API 를 MCP 도구로 등록해 이후 세션과 다른 에이전트도 쓸 수 있게 했습니다. 아무도 이걸 만들라고 지시하지 않았고, 분석이 유용하겠다고 스스로 판단해 전체 스택을 세운 것입니다.
- 자신에게 없던 채널을 스스로 추가 : Phantom 은 Slack · Telegram · 이메일 · 웹훅 채널을 기본 제공하지만 Discord 는 없습니다. "Discord 로도 대화할 수 있나요?" 라는 질문에, Phantom 은 아직 연결되어 있지 않다고 솔직히 답한 뒤 직접 만들겠다고 했습니다. Discord Bot API 를 설명하고, 사용자에게 애플리케이션 생성 절차를 안내하고, 토큰을 안전하게 제출할 매직 링크를 제공한 다음, 토큰이 저장되자 컨테이너를 띄워 Discord 에 실제로 접속했습니다.
- 자기 인프라 모니터링 : 한 Phantom 은 GitHub 스타 3개짜리 경량 오픈소스 시스템 모니터 Vigil을 발견해 기존 ClickHouse 인스턴스에 통합하고, 30초마다 지표를 옮기는 동기화 파이프라인과 서비스 상태 · 컨테이너 · 네트워크 · 디스크 I/O 를 보여주는 실시간 모니터링 대시보드를 만들었습니다.
Phantom 의 자기 진화 파이프라인
Phantom 의 핵심 차별점은 자기 진화입니다. 1일 차 Phantom 은 일반적이지만, 30일 차 Phantom 은 사용자의 코드베이스, 배포 절차, PR 관례를 알게 됩니다. 매 세션이 끝난 뒤 여섯 단계를 거칩니다.
- 관찰(Observe): 대화에서 교정, 선호, 도메인 사실을 추출합니다.
- 비평(Critique): 세션 성능을 현재 설정과 비교합니다.
- 제안(Generate): 최소한의 targeted 설정 변경안을 제시합니다.
- 검증(Validate): constitution, regression, size, drift, safety 다섯 게이트로 검사합니다.
- 적용(Apply): 승인된 변경을 반영하고 버전을 올립니다.
- 정리(Consolidate): 관찰 내용을 주기적으로 원칙으로 압축합니다.
안전이 중요한 게이트에는 자기 강화 편향(self-enhancement bias)을 피하기 위해 교차 모델 심판을 씁니다. 메인 에이전트가 Opus 로 돌면 심판은 기본적으로 Sonnet 으로 돌립니다. 세 심판의 투표에 소수 거부권(minority veto)이 있어 한 심판만 반대해도 변경이 막힙니다. 모든 버전이 저장되므로 1일 차와 30일 차를 비교하거나 롤백할 수 있습니다.
Phantom 의 아키텍처와 주요 기능
Phantom 은 Bun 프로세스 하나로 실행되며, 여러 채널을 받아들이는 에이전트 런타임, 메모리 시스템, 자기 진화 엔진, MCP 서버, 역할(Role) 시스템으로 구성됩니다. 상태는 Qdrant(Docker)와 SQLite(Bun)에 저장됩니다.
External Clients
Claude Code | Dashboard | Other Phantoms
|
MCP (Streamable HTTP)
|
+------------------------------------------+
| PHANTOM (Bun process) |
| |
| Channels Agent Runtime |
| Slack query() + hooks |
| Web Chat Prompt Assembler |
| Telegram base + role + evolved |
| Email + memory context |
| Webhook / CLI |
| |
| Memory System Self-Evolution Engine |
| Qdrant 6-step pipeline |
| Ollama 5-gate validation |
| 3 collections LLM judges (optional) |
| |
| MCP Server Role System |
| 8 universal YAML-first roles |
| + role tools Onboarding flow |
| + dynamic Evolution focus |
+------------------------------------------+
| |
+---------+ +---------+
| Qdrant | | SQLite |
| Docker | | Bun |
+---------+ +---------+
주요 기능은 다음과 같습니다.
- 자기만의 컴퓨터 : 에이전트가 전용 머신에서 소프트웨어를 설치하고 24시간 인프라를 운영합니다.
- 모델 선택(Bring your own model) : Anthropic(기본), Z.AI(GLM-5.1), OpenRouter, Ollama, vLLM, LiteLLM, 그리고 Anthropic Messages API 호환 엔드포인트를 YAML 로 골라 씁니다. 개발팀은 Z.AI 의 GLM 계열이 비슷한 코딩 품질에서 Claude Opus 보다 약 15배 저렴하다고 설명합니다.
- 영속 메모리 : Qdrant 와 Ollama 임베딩 기반의 3계층 벡터 메모리로, 월요일에 말한 것을 수요일에 다시 씁니다.
- 동적 도구 : 실행 중에 자신의 MCP 도구를 만들어 등록하며, 재시작 후에도 유지됩니다.
- 암호화된 시크릿 : 자격증명을 설정 파일에 평문으로 두지 않고 AES-256-GCM 으로 암호화하며, 매직 링크 인증 폼으로 수집합니다.
- 이메일 정체성 : 모든 Phantom 이 자기 이메일 주소를 가져, Slack 밖의 사람에게도 보고서를 보낼 수 있습니다.
- MCP 서버 : Claude Code 나 다른 Phantom 이 여기에 연결할 수 있는 API 역할을 합니다.
모델 백엔드 전환은 YAML 두어 줄로 끝납니다.
# phantom.yaml
model: claude-opus-4-7
provider:
type: zai
api_key_env: ZAI_API_KEY
model_mappings:
sonnet: glm-5.1
Phantom 설치하기
Docker Compose 로 시작하는 방법이 권장됩니다.
curl -fsSL https://raw.githubusercontent.com/ghostwright/phantom/main/docker-compose.user.yaml -o docker-compose.yaml
curl -fsSL https://raw.githubusercontent.com/ghostwright/phantom/main/.env.example -o .env
# .env 편집 - ANTHROPIC_API_KEY, Slack 토큰, OWNER_SLACK_USER_ID 추가
docker compose up -d
메모리를 위한 Qdrant 가 뜨고, Ollama 가 임베딩 모델을 내려받은 뒤 에이전트가 부팅합니다. http://localhost:3100/health 에서 상태를 확인할 수 있습니다. 설치 없이 전용 VM 위에서 바로 쓰고 싶다면, Anthropic API 키만 가져오면 머신을 제공하는 무료 관리형 옵션(ghostwright.dev/phantom)도 있습니다.
한 가지 주의할 점이 있습니다. 기본 docker-compose.yaml 은 샌드박스 코드 실행 등을 위해 /var/run/docker.sock 을 컨테이너에 마운트하는데, 이는 Docker 데몬에 대한 root 에 준하는 접근 을 부여합니다. 개발팀은 이를 의도된 아키텍처 트레이드오프로 설명하며, 개인 워크스테이션이 아닌 전용 머신이나 VM 에서 Phantom 을 돌리라고 권합니다. 자세한 위협 모델은 저장소의 docs/security.md에 정리되어 있습니다.
연결한 뒤에는 Claude Code 에서 MCP 로 Phantom 에 접속할 수 있습니다.
claude mcp add phantom https://your-phantom.ghostwright.dev/mcp \
--transport http \
--header "Authorization: Bearer YOUR_TOKEN"
Phantom 의 라이선스
Phantom 은 Apache License 2.0으로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용하고 수정 · 배포할 수 있습니다.
Phantom 공식 홈페이지
Phantom 프로젝트 GitHub 저장소
더 읽어보기
-
Hermes Agent⚕: NousResearch가 공개한, 사용자와의 상호작용 경험을 통해 스스로 성장하는 AI 비서 프로젝트
-
OpenClaw: 사용자의 로컬 환경에서 구동하고 다양한 방식으로 연동할 수 있는 오픈소스 AI 비서 프로젝트 (Clawdbot, Moltbot🦞에서 이름 변경)
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()


