AI 에이전트를 배포하는 팀들이 공통으로 부딪히는 지점이 있다. 에이전트가 유용하려면 시스템과 상호작용해야 하지만, 그 상호작용이 어디서 멈춰야 하는지를 정의하는 것이 생각보다 훨씬 어렵다. DOM을 건드려도 되는가, 외부 API를 호출해도 되는가, 로컬 스토리지는 어떻게 처리할 것인가. 이 질문들이 하나씩 쌓이면 결국 격리 경계(isolation boundary)를 코드로 어떻게 표현하느냐의 문제로 수렴된다.
withastro/flue는 이 문제를 정면으로 다루는 TypeScript 기반 샌드박스 에이전트 프레임워크다. 프로젝트 이름이 이미 설계 방향을 암시한다. flue는 굴뚝 안의 연도(煙道)—연기가 지나가는 통로다. 어디로 흘러갈 수 있는지 경로가 정해져 있고, 벽 밖으로 새어나가지 않는다. 에이전트 실행 컨텍스트를 바로 그런 통로로 만들겠다는 의도다. LLM이 생성한 코드가 실행되더라도 샌드박스 경계 안에서만 작동하는 구조다.
이 프로젝트가 withastro 조직에서 나왔다는 점이 흥미롭다. Astro는 islands 아키텍처로 "무엇이 서버에서 실행되고 무엇이 클라이언트에서 실행되는가"를 프레임워크 레벨에서 강제해온 팀이다. 실행 경계를 설계 원칙의 중심에 놓아온 팀이 에이전트 격리 문제로 영역을 확장하는 것은 우연이 아니다. 브라우저 렌더링 환경에서 쌓인 격리 노하우가 에이전트 런타임으로 이식되는 구조이고, 그 맥락이 있기에 flue의 접근이 설득력을 갖는다.
에이전트 프레임워크 시장에서 격리를 진지하게 다루는 도구는 아직 드물다. 대부분의 에이전트 툴링이 "얼마나 많은 것을 할 수 있는가"에 집중하는 동안, flue는 "얼마나 통제된 방식으로 할 수 있는가"를 설계 원점으로 삼았다. 오늘 하루 164개 스타, 전체 랭킹 8위. 아직 초기 단계지만, 이 방향성을 가장 먼저 설계 원칙으로 잡은 팀이 어디인지는 기억해둘 만하다.