모바일 에이전트를 돌리는 VM 뜯어보기 (Instinct, Claude Code)
The VMs Powering Mobile Agents (Instinct, Claude Code)
TL;DR Highlight
Claude Code·Instinct 샌드박스를 열어보니 둘 다 Firecracker, 기억은 git
Who Should Read
에이전트를 클라우드 샌드박스에서 돌리려고 구조와 메모리 저장 방식을 고민하는 백엔드 개발자
Core Mechanics
- 둘 다 Firecracker microVM 위에서 돈다
- Claude Code와 Instinct 모두 KVM 기반 Firecracker microVM(가벼운 가상 머신)이다.
- 차이는 누가 VM 플릿을 운영하고 안에서 무엇이 부팅되느냐다.
- Claude Code는 하네스가 VM 안에 있다
- PID 1이 Rust로 짠 process_api이고 호스트가 vsock 2024 포트로 세션을 제어한다.
- 324 MB Bun 바이너리 하네스는 읽기 전용 디스크에 있고 모델 추론은 SSE로 /v1/messages에 나간다.
- Claude Code는 디스크가 내 것과 그쪽 것으로 나뉜다
- vda 256G는 쓰기 가능하고 reclaim 뒤에도 유지된다.
- 하네스·env-runner·skills는 읽기 전용 공유 디스크라서 컴퓨트가 사라져도 대화가 이어져 보인다.
- Instinct는 E2B 샌드박스를 빌려 쓴다
- hostname이 e2b.local이고 Ubuntu 22.04, 2 vCPU, 1.9 GB RAM, systemd와 XFCE 데스크톱이 뜬다.
- 콜드 부팅은 systemd-analyze 기준 약 1.26초에 그래픽 데스크톱까지 올라온다.
- Instinct의 기억은 S3에 올린 git 저장소다
- /memory는 [[wiki-links]]가 달린 Markdown 볼트이고 grep으로 탐색한다.
Community Reactions
- Firecracker 판별 근거를 묻는 의견
- E2B 샌드박스가 다른 microVM이 아니라 Firecracker라고 어떻게 판단했는지 묻는 댓글이 있었다.
- Instinct 메모리가 단순해서 놀랐다는 반응
- 데이터베이스나 그래프 같은 똑똑한 구조를 기대했는데 git 속 Markdown 몇 개뿐이라 의외였다는 의견이 있었다.
- 직접 만든 대안을 소개한 경험
- 번들 SaaS와 자체 플랫폼 두 선택지만 있는 건 아니라며 Firecracker와 Apple Virtualization framework 기반 SlicerVM을 만들었다는 댓글이 있었다.
- Firecracker 학습 거리 공유
- userfaultfd 트릭으로 실행 중인 VM을 복제하는 글을 링크하며 주말에 공부하고 싶다는 댓글이 있었다.
How to Apply
- 에이전트 기억을 git 폴더로 시작하기
- 오늘 로컬에 memory 폴더를 만들고 entities·timeline·knowledge 디렉터리에 Markdown과 [[링크]]로 기록하게 하라.
- 에이전트가 쓸 때마다 git commit 하게 하고 검색은 grep으로 해결하라.
- 샌드박스와 상태 저장소 분리하기
- 샌드박스는 버려도 되는 실행 환경으로 두고 기억은 S3 같은 외부 저장소에 push하라.
- 박스에는 만료되는 STS 임시 자격증명만 주입하라.
- 툴 호출을 서버 쪽으로 빼기
- 박스에는 bash 실행 셈만 남기고 Gmail·결제 같은 툴은 백엔드 API로 호출하게 하라.
- 비밀 값은 박스에 넣지 말고 Vault 방식으로 서버가 직접 채우게 하라.
Try It
# Claude Code에 붙여넣는 프롬프트 (원문 Instinct 메모리 구조의 간이 버전)
현재 프로젝트에 ./memory 폴더를 git 저장소로 만들어 에이전트 기억 저장소로 쓰자.
구조: entities/ comms/ timeline/ workstreams/ knowledge/
규칙:
- 모든 파일 맨 위에 id, type, aliases frontmatter를 넣는다.
- 다른 파일은 [[id]] 형태 링크로 참조한다.
- entities와 knowledge 파일은 현재 상태로 덮어쓰고, 사건 기록은 timeline에만 쓴다.
- 작업이 끝날 때마다 변경 내용을 git commit 한다.
{{오늘 한 일 요약}}을 위 규칙대로 기록하고 커밋해줘.
이어서 해 볼 것: 다음 세션에서 grep으로 {{질문 키워드}}를 찾아 기억만으로 답하게 시켜 보기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%↓