Claude Code 웹의 Firecracker MicroVM 뜯어보기: Anthropic의 숨은 배포 플랫폼 Antspace
Reverse-Engineering Claude Web's MicroVM: Uncovering Anthropic's Hidden Antspace
TL;DR Highlight
Claude Code 웹 세션을 분석했더니 비공개 배포 플랫폼 Antspace가 나왔다
Who Should Read
AI 코딩 에이전트용 샌드박스나 배포 파이프라인을 직접 설계하려는 백엔드·인프라 개발자
Core Mechanics
- 세션 환경은 Firecracker MicroVM
- dmesg의 ACPI 테이블에 OEM ID FIRECK가 찍혀 있었다.
- 스펙은 vCPU 4개, RAM 16GB, 디스크 252GB, Linux 6.18.5였다.
- PID 1은 systemd가 아니라 /process_api라는 커스텀 바이너리였다.
- 세션은 부팅이 아니라 스냅샷 복원
- 템플릿 VM을 얼려 두고 세션마다 vda·vdb·vdc 블록 디바이스를 갈아 끼운다.
- 복원 후 페이지 캐시 비우기, 시계 보정, CRNG 재시드, CAP_SYS_RESOURCE 제거를 한다.
- init_on_free=1로 해제된 메모리 페이지를 0으로 지운다.
- strip 안 한 Go 바이너리가 그대로 들어 있었다
- environment-runner는 27MB, 디버그 심볼이 살아 있는 Go 바이너리였다.
- go tool objdump와 strings만으로 패키지 구조와 의존성을 뽑았다.
- 빌드 정보에 Anthropic 비공개 모노레포 경로가 남아 있었다.
- deploy 패키지에 Vercel 말고 Antspace 클라이언트가 있다
- 배포 흐름은 배포 생성, dist.tar.gz 업로드, NDJSON 상태 스트림 순서다.
- 상태는 packaging, uploading, building, deploying, deployed로 진행된다.
Community Reactions
- 이 글의 제목이 사실과 다르다는 지적
- Claude web이 아니라 Claude Code용이고 HN에 이미 3번 올라왔다는 의견이 있었다.
- 배포 플랫폼을 실제로 어떻게 쓰는지 모른다는 질문
- Claude Code web에 빌드와 배포를 시키면 되는지, 공개 URL이 생기는지 궁금하다는 댓글이 있었다.
- 세션이 끝난 뒤에도 배포가 유지되는지는 글에 답이 없다는 지적이었다.
- 서술이 군더더기라는 의견
- 'No systemd, no sshd' 문장은 이런 환경에서 당연하니 빼도 된다는 댓글이 있었다.
How to Apply
- 내 샌드박스 환경부터 점검하기
- 오늘 Claude Code 세션에서 dmesg, cat /proc/1/cmdline, ps -ef를 실행해 보자.
- 가상화 종류와 PID 1이 무엇인지 확인하자.
- 배포하는 Go 바이너리 strip 여부 확인하기
- 릴리스 빌드에서 file 명령으로 'not stripped'가 나오는지 보자.
- 내부 패키지 경로와 엔드포인트를 노출하고 싶지 않다면 -ldflags "-s -w"를 빌드에 넣자.
- 에이전트 샌드박스에 스냅샷 복원 패턴 적용 검토하기
- 세션 시작 지연이 문제라면 템플릿 VM을 미리 만들어 두고 세션별 디스크만 붙이자.
- 복원 직후 캐시 비우기, 시계 보정, 난수 재시드를 초기화 절차에 넣자.
- 에이전트 완료 조건에 stop hook 넣기
- 종료 전 git status, 개발 서버 로그, tsc --noEmit을 검사하는 스크립트를 만들자.
- 실패하면 에이전트가 세션을 끝내지 못하게 하자.
Try It
# Claude Code 세션 터미널에 붙여넣기 (원문 분석 1~2단계 재현)
dmesg | grep -i FIRECK | head -3
cat /proc/1/cmdline | tr '\0' ' '; echo
ps -ef | head
# 내 Go 바이너리가 strip 안 됐는지 확인 (경로 {{바이너리}} 교체)
file {{바이너리}}
go version -m {{바이너리}} | head
# 이어서 해 볼 것: -ldflags "-s -w"로 다시 빌드해 file 결과와 크기를 비교Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓