AI 코딩 에이전트마다 즉시 작업 공간을 붙이는 LayerFS
LayerFS는 AI 코딩 에이전트를 위해 만들어진 파일시스템이다. 핵심은 두 가지를 분리하는 데 있다. 에이전트가 명령을 실행하는 동안에만 살아 있는 작업 공간, 그리고 작업이 끝난 뒤에도 남는 공유 커밋 이력이다. 에이전트는 공유 이력 위에 쓰기 가능한 워크스페이스를 하나씩 마운트해 일하고, 바뀐 것을 커밋한 뒤 사라진다.
작업 단위는 도구 호출이다. 파일 도구를 한 번 부르면 Store 연산 하나가 되고, Bash 도구를 한 번 부르면 임시 워크스페이스가 마운트됐다가 호출이 끝날 때 커밋된다. 컴퓨트는 명령이 도는 동안만 존재한다는 전제다. 서로 다른 컴퓨터에서 도는 에이전트들이 서버리스 Store 하나를 공유하며, 별도의 DB 서버는 두지 않는다.
브랜치 모델은 Git에 가깝지만 에이전트 운영에 맞게 조정됐다. 프로젝트 하나에 브랜치가 여럿 생기고, 브랜치 하나에 에이전트가 여럿 붙는다. 포크는 파일을 복사하지 않고 메타데이터만 만들기 때문에 비용이 사실상 0이며, 어느 커밋에서든 원하는 깊이까지 재귀적으로 갈라져 나갈 수 있다. 같은 파일을 양쪽에서 건드리면 Conflict로 거부하고, blame은 각 줄을 쓴 단계를 알려준다.
저장 방식은 내용 주소 기반의 append-only다. 한 번 기록된 객체는 다시 쓰이지 않고 Store는 커밋으로만 자란다. 내용 청크는 한 번만 저장되고 중복이 제거된 뒤 추가로 압축된다. 원문이 든 예시로는 같은 내용 10개가 중복 제거를 거쳐 1.05, 압축 후 0.31까지 줄어든다. 큰 파일을 조금 고칠 때도 원리는 같다. 오버레이는 실제로 쓴 바이트만 들고 있고, 커밋은 편집된 구간과 그 트리 경로만 다시 만들 뿐 나머지 부분은 이전 버전과 공유한다.
의존성 처리도 이 설계의 일부다. 마운트할 때 의존성이 함께 따라오기 때문에 에이전트가 매번 설치를 다시 돌릴 필요가 없다. Git이나 다른 AgentFS가 무시 대상 파일을 버리고 재설치하는 것과 달리, LayerFS는 무시된 파일도 모든 커밋에 남긴다. 원문이 제시한 비교는 설치에 약 5분이 걸리는 작업을 마운트 0.05초로 바꾸는 것이다.
배경에는 에이전트의 시간 배분에 대한 관찰이 있다. 에이전트는 대략 80%를 추론에, 10% 정도를 Bash 실행에 쓴다. 그렇다면 실행 환경은 필요할 때만 떠 있다가 사라져야 하고, 이력은 오래 남아야 한다. LayerFS는 이 분리를 전제로 RSI 에이전트와 RL 훈련용 재귀 탐색까지 염두에 두고 설계됐다.
실무에서 가장 눈에 띄는 변화는 체크포인트가 자동으로 쌓인다는 점이다. 파일 호출 하나하나가 커밋이고 Bash 호출도 끝나면 커밋되며, 아무것도 바꾸지 않은 호출은 커밋을 만들지 않는다. 어느 체크포인트에서든 포크해 그 시점의 파일을 그대로 읽을 수 있다. lockfile이나 빌드 산출물, 캐시처럼 충돌 판정이 무의미한 파일은 루트에 .lww 규칙을 두어 최신 편집이 이기도록 지정할 수 있다.
아직 확인할 부분도 있다. 원문은 DSH에서 바로 시험해 볼 수 있고 Pi 지원은 곧 나온다고만 언급한다. 저장 효율과 마운트 시간 같은 수치는 제안하는 쪽이 내놓은 것이므로, 실제 에이전트 워크로드에서 같은 결과가 나오는지는 별도로 검증해야 한다.