AI 에이전트를 개발하다 보면 늘 같은 문제에 부딪힙니다. 에이전트가 예상치 못한 행동을 하는데, 왜 그런 결정을 내렸는지 추적하기가 너무 어렵다는 거죠. 에이전트는 본질적으로 예측 불가능한 시스템이기 때문에, 제한을 걸 수도 있지만 진짜 필요한 건 “무엇을 했는지 완전히 들여다볼 수 있는 가시성”입니다.

SQLite 기반 데이터베이스인 Turso를 개발하는 팀이 AI 에이전트를 위한 파일시스템 추상화 AgentFS를 공개했습니다. 에이전트가 생성한 모든 파일, 저장한 모든 상태, 호출한 모든 도구를 단일 SQLite 파일에 담아 SQL로 쿼리하고 감사할 수 있게 만든 솔루션이죠. 데이터베이스, 로깅 시스템, 파일 스토리지를 조각조각 연결하는 대신, 모든 것을 한곳에서 관리합니다.
출처: The Missing Abstraction for AI Agents: The Agent Filesystem – Turso
에이전트 상태 관리의 근본적 문제
전통적인 방식으로 에이전트 상태를 관리하려면 여러 도구를 조합해야 합니다. 데이터베이스로 상태를 저장하고, 로깅 시스템으로 감사 추적을 남기고, 로컬 파일시스템으로 결과물을 저장하고, 버전 관리로 이력을 관리하는 식이죠. 이렇게 상태가 파편화되면 복잡도만 올라가고 관찰 가능성에 빈틈이 생깁니다.
개발자들이 원하는 건 명확했습니다. 빠르게 특정 상태 변화나 결정 지점을 찾을 수 있는 쿼리 기능, 시간에 따른 상태 변화를 이해할 수 있는 버저닝, 환경 간 상태를 매끄럽게 옮길 수 있는 이식성, 크래시나 재시작 후에도 상태가 살아남는 내구성이죠. 흥미롭게도 많은 개발자가 SQLite가 이런 요구사항에 완벽하게 맞아 보이긴 하는데, 에이전트의 특수한 니즈에 맞춰 어떻게 설계해야 효과적으로 활용할지가 명확하지 않았다고 말했습니다.
하나의 SQLite 파일로 모든 것을
AgentFS는 에이전트를 위한 세 가지 핵심 인터페이스를 제공합니다. POSIX 스타일의 가상 파일시스템으로 파일과 디렉터리를 다루고, 키-값 저장소로 에이전트 상태와 컨텍스트를 관리하고, 도구 호출 감사 로그로 디버깅과 분석을 수행할 수 있죠.
CLI로 사용하는 방법은 간단합니다:
# 에이전트 파일시스템 초기화
$ agentfs init my-agent
Created agent filesystem: .agentfs/my-agent.db
# 파일 목록 확인
$ agentfs fs ls my-agent
f hello.txt
# 파일 내용 읽기
$ agentfs fs cat my-agent hello.txt
hello from agent
# FUSE로 실제 파일시스템처럼 마운트
$ agentfs mount my-agent ./mnt
$ echo "hello" > ./mnt/hello.txt
$ cat ./mnt/hello.txt
hello프로그래밍 방식으로 사용하려면 SDK를 활용하면 됩니다:
import { AgentFS } from 'agentfs-sdk';
const agent = await AgentFS.open('./agent.db');
// 키-값 저장
await agent.kv.set('user:preferences', { theme: 'dark' });
// 파일시스템 조작
await agent.fs.writeFile('/output/report.pdf', pdfBuffer);
// 도구 호출 추적
await agent.tools.record(
'web_search',
Date.now() / 1000,
Date.now() / 1000 + 1.5,
{ query: 'AI' },
{ results: [...] }
);에이전트가 하는 모든 일—생성하는 모든 파일, 저장하는 모든 상태, 호출하는 모든 도구—이 하나의 SQLite 파일 안에 들어갑니다. 이 설계는 몇 가지 강력한 장점을 가져다줍니다.
전체 에이전트 런타임이 단일 SQLite 파일에 담기기 때문에, 머신 간 이동도 간단하고 버전 관리에 체크인할 수도 있습니다. 모든 파일 조작, 도구 호출, 상태 변화가 SQLite에 기록되므로 SQL 쿼리로 에이전트의 완전한 이력을 추적할 수 있죠. 어느 시점이든 SQLite 파일을 복사하기만 하면 에이전트 상태를 스냅샷으로 저장할 수 있고, 나중에 복원해서 정확한 실행 상태를 재현하거나 가상 시나리오를 테스트할 수 있습니다.
Turso 팀은 이 개념을 실제로 보여주기 위해 연구 논문 검색 에이전트를 만들었습니다. 데이터베이스 연구 관련 질문에 답하기 위해 VLDB와 SIGMOD 같은 최상위 학회 논문을 검색하고, PDF를 다운로드해서 텍스트를 추출하고, AgentFS에 저장한 뒤 질문에 맞춰 요약을 생성하는 방식이죠. 파일 관리, 캐싱, 여러 작업에 걸친 상태 유지를 AgentFS가 자연스럽게 처리합니다.
에이전트 옵저버빌리티의 새로운 접근
AgentFS의 힘은 단순함에서 나옵니다. 모든 것이 한곳에 있고, SQL로 쿼리할 수 있고, 단일 파일로 이식할 수 있죠. 에이전트 상태를 파일시스템처럼 다루되, 데이터베이스로 구현한다는 발상입니다. 파일의 단순함과 구조화된 데이터의 강력함을 동시에 얻는 셈이죠.
특히 에이전트가 실행 간 복잡한 상태를 유지해야 하거나, 다른 에이전트와 조율해야 하거나, 프로덕션에서 무엇이 잘못됐는지 디버깅해야 할 때 유용합니다. 최근에는 FUSE 지원도 추가되어, SQLite 기반 에이전트 파일시스템을 리눅스에서 실제 POSIX 파일시스템으로 마운트할 수 있게 됐습니다. git, grep 같은 유닉스 유틸리티를 통합 코드 없이 바로 사용할 수 있다는 뜻이죠.
다만 AgentFS는 아직 알파 단계입니다. 개발, 테스트, 실험 용도로만 사용해야 하고, 중요한 데이터에는 프로덕션 준비가 완료될 때까지 사용하지 말라고 명시하고 있습니다. Turso 팀은 현재 프로덕션 준비를 위해 작업 중이라고 밝혔습니다.
참고자료:

답글 남기기