3 minute read

집에서 굴리는 맥미니에 오픈 모델 하나 얹어두고 자율 에이전트 띄웠다가, 셸 명령어 지 맘대로 날리는 거 보고 간 떨어질 뻔한 적이 있다(내 소중한 홈랩 서버가 날아갈 뻔했다). 클라우드 API 구독료도 아끼고 코드 보안도 지키겠다고 로컬 LLM으로 넘어왔는데, 정작 이 날뛰는 녀석의 고삐를 어떻게 쥐어야 할지가 진짜 골칫거리였다. 그러던 차에 r/LocalLLM에서 내 가려운 곳을 정확하게 긁어주는 ‘BubbleHub’라는 오픈소스 프로젝트를 발견했다.

단순히 “로컬에서 모델 몇 tps로 돌렸다” 수준의 자랑질이 아니다. 에이전트가 내 시스템을 작살내지 못하도록 샌드박스로 격리하고 권한을 통제하는 ‘에이전트 런타임’을 아예 로컬에 통째로 구축하겠다는 시도다.

로컬 에이전트, 모델만 올린다고 끝이 아니다

보통 로컬 LLM 이야기하면 다들 “VRAM 몇 GB 먹냐”, “몇 비트 양자화로 몇 토큰 뽑냐”에만 목을 맨다. 물론 속도와 메모리, 중요하다(나도 맥미니 살 때 램 용량 때문에 피눈물을 흘렸다). 하지만 에이전트는 단순한 텍스트 챗봇이 아니다. 파일 시스템을 뒤지고, 셸 스크립트를 실행하고, 외부 API로 네트워크 패킷을 쏴대는 자율 실행체다.

클라우드 서비스를 쓸 때는 이런 보안 문제를 크게 고민하지 않아도 됐다. OpenAI나 Anthropic 서버 안에서 샌드박싱 처리를 지들이 알아서 해주니까. 그런데 내 컴퓨터, 내 로컬 환경에서 에이전트를 자율 주행 모드로 돌리는 순간, 그 안전장치를 오롯이 내가 다 짜야 한다(안전장치 없는 에이전트는 그냥 합법적인 악성코드다).

BubbleHub는 바로 이 골치 아픈 문제를 영리하게 세 단계로 쪼갰다.

첫째, 하드웨어를 알아서 감지해서 내 장비에서 돌아갈 만한 모델을 추천해 준다. 그리고 모델을 메모리에 따뜻하게 웜업(Warm) 상태로 띄워둔 채, 여러 에이전트가 동시에 추론을 날릴 수 있도록 스케줄링을 해준다. 에이전트마다 모델을 따로 올리면 메모리가 즉시 터져버릴 텐데(VRAM 비명 소리가 들린다), 하나의 모델 인스턴스를 똑똑하게 공유하는 거다.

둘째, 에이전트들을 각각 ‘버블(Bubble)’이라는 독립된 샌드박스에 가둬버린다. 완전히 격리된 오버레이 파일 시스템과 독립 네임스페이스를 제공하고, 네트워크 트래픽은 런타임 프록시를 무조건 통과하게 만든다. 심지어 API 키 같은 민감 정보는 에이전트한테 직접 안 보여주고 프록시가 중간에서 대리 인증을 처리한다. 에이전트가 털려도 내 API 키는 안전하다는 소리다.

셋째, 명시적인 매니페스트(Manifest) 권한 관리다. 에이전트가 사전에 승인되지 않은 이상한 파일 경로나 URL로 튀려고 하면 즉각 차단하고 사람한테 결재를 올린다. 사용자가 승인해 주면 그 규칙이 매니페스트에 누적되어 다음부터는 자연스럽게 통과된다.

왜 이런 구조가 절실했을까

솔직히 지금까지 나온 llama.cpp나 Ollama, LM Studio 같은 도구들은 진짜 훌륭하다. 추론 엔진 자체는 이미 완성도 높게 잘 돌아간다.

하지만 에이전트의 본질은 ‘추론’ 뒤에 일어나는 ‘행동(Action)’이다. 파일을 쓰고, 명령어를 때리고, 서버에 찌르는 순간부터 리스크가 발생한다.

BubbleHub가 신선한 이유는, 이 권한 통제를 마치 쿠버네티스의 네트워크 정책이나 AWS IAM처럼 체계적인 매니페스트 구조로 풀었다는 점이다. “GET 요청은 여기까지만 허용”, “이 디렉토리 밖으로는 한 발짝도 못 나감” 같은 가드레일을 로컬 런타임 수준에서 딱 박아두니 마음 놓고 에이전트를 돌릴 수 있다.

레딧 유저들의 반응도 뜨겁다. 한 댓글은 “작업 바뀔 때마다 모델 콜드 스타트 기다리느라 복장 터졌는데, 모델 웜 상태로 묶어두는 기능 하나만으로도 써볼 가치가 차고 넘친다”며 환호했다.

물론 아직 갈 길은 멀다

물론 BubbleHub가 당장 내일부터 상용으로 쓸 수 있는 완성형 솔루션은 아니다. 개발자 본인도 아직 피드백을 모으는 초기 단계라고 솔직히 인정했다. 차기 목표로 ‘AI 에이전트 앱 스토어’를 꿈꾸며 OpenClaw 같은 외부 툴들을 원클릭 샌드박스로 설치하게 만들겠다는데, 솔직히 앱스토어 생태계는 로컬 에이전트 판 자체가 더 무르익어야 가능한 이야기다(너무 앞서갔다).

진짜 중요한 건 DX(개발자 경험)다. 매니페스트 설정 파일 짜는 게 너무 복잡하면 다들 귀찮아서 chmod 777 날리듯 권한을 죄다 풀어버릴 게 뻔하다(국룰이다…). 디버깅은 얼마나 편한지, 권한 충돌 났을 때 얼마나 친절하게 에러를 뱉어주는지가 이 프로젝트의 생사를 가를 거다.

판이 바뀌고 있다

같은 날 r/LocalLLM에는 파인튜닝과 보안 연구 하네스 돌리려고 엔비디아 DGX Spark를 사야 할지 각을 재는 글이 올라왔고, r/ClaudeCode에서는 터미널 세션을 통합 관리하는 NodeTerm이라는 오픈소스가 공개됐다.

이 흩어진 점들을 이어보면 흐름이 하나로 모인다. 에이전트가 내 컴퓨터에서 자율적으로 일하게 만들려면, 모델의 지능(IQ)만으로는 택도 없다는 거다. 샌드박스 격리, 세분화된 권한 통제, 모델 프로세스 스케줄링 같은 ‘인프라 레이어’가 튼튼하게 깔려 있어야 비로소 안심하고 일을 맡길 수 있다.

한 줄 요약

로컬 LLM의 화두가 “이 모델 돌아가요?”에서 “이 에이전트 어떻게 안전하게 부려 먹지?”로 빠르게 넘어가고 있다. BubbleHub는 그 고민의 한가운데를 정확히 파고든 프로젝트다.

내 장비에서 에이전트를 돌리며 셸 권한을 넘길 생각을 하고 있다면, 어떤 모델을 고를까 고민하기 전에 “이 녀석이 사고 쳤을 때 막을 방패가 있는가”부터 점검하자. 클라우드에선 공짜로 주어지던 안전망이, 로컬에서는 순전히 내 몫이니까.


이 글은 r/LocalLLM, r/ClaudeCode, r/OpenClaw에 올라온 실전 개발자들의 생생한 논의를 바탕으로 정리했다.