Git을 말하는 버전 관리 저장소, Artifacts
핵심 내용
Cloudflare가 에이전트 시대를 위한 버전 관리 파일시스템 Artifacts를 공개했다.
자세히 보기
Artifacts는 에이전트, sandbox, Workers 같은 실행 환경마다 독립적인 저장소를 빠르게 만들고, 일반 Git client로 그대로 다룰 수 있게 하는 버전 관리 파일시스템이다. REST API와 native Workers API도 제공해, Git client가 없는 환경에서도 저장소 생성, 자격 증명 발급, commit 작업을 자동화할 수 있다.
핵심 목표는 기존 source control이 아니라 에이전트-first storage primitive를 만드는 것이다. Cloudflare는 에이전트가 인간보다 훨씬 많은 코드와 상태를 생성·수정·fork한다는 점에 맞춰, 수많은 repo와 세션 상태를 다루는 새로운 기본 단위가 필요하다고 본다.
Artifacts는 Git의 데이터 모델을 그대로 활용한다. 저장할 객체를 commit/history 단위로 쪼개고, 필요하면 revert, diff, fork, time travel을 할 수 있어 코드뿐 아니라 세션 prompt, session history, 고객별 config 같은 상태도 다룰 수 있다.
주요 사용 방식은 다음과 같다.
env.AGENT_REPOS.create(name)로 repo를 만들고 token과 remote를 받아 에이전트에 전달- 일반 Git remote처럼
git clone https://x:${TOKEN}@...로 연결 env.ARTIFACTS.import()로 기존 GitHub repo를 가져와 독립적으로 fork- 읽기 전용 fork로 리뷰나 실험용 브랜치를 분리
Cloudflare 내부에서는 에이전트 세션마다 Artifacts repo를 두고, sandbox state와 session history를 함께 보관한다. 이렇게 하면 별도 block storage를 유지하지 않아도 되고, commit이 없더라도 prompt 상태와 파일 상태를 함께 보면서 세션을 공유하거나 특정 시점으로 되돌릴 수 있다.
구현은 Durable Objects 위에 얹었다. 각 repo는 하나의 Durable Object로 매핑되고, 파일은 SQLite 기반 storage에 저장된다. Durable Object의 2MB row size 제한 때문에 큰 Git object는 여러 row로 쪼개 저장하며, auth token 관리는 KV를 사용한다.
Git 엔진은 Zig로 새로 작성해 Wasm으로 컴파일했다. SHA-1, zlib inflate/deflate, delta encoding/decoding, pack parsing, smart HTTP protocol을 모두 자체 구현했고, native build는 libgit2와 대조하는 테스트에 활용한다. WASM과 JS host는 11개의 storage import와 1개의 emit 함수로 연결되며, fetch와 push 모두 스트리밍 기반으로 동작한다.
프로토콜 지원도 넓다.
- Git protocol v1/v2 지원
ls-refs, shallow clone, incremental fetch, have/want negotiation 지원git-notes네이티브 지원으로 prompt, agent attribution 같은 메타데이터 저장 가능
대형 repo 문제를 풀기 위해 ArtifactFS도 오픈소스로 공개했다. 이것은 blobless clone으로 tree와 refs만 먼저 가져오고, 파일 내용은 백그라운드에서 점진적으로 hydrate한다. package.json, go.mod 같은 우선순위 파일을 먼저 받고, 에이전트가 읽으려는 시점까지 미완료 파일은 블로킹하며, GitHub나 GitLab 같은 외부 Git remote에서도 동작한다.
향후에는 더 많은 metrics, repo-level event subscriptions, TypeScript/Go/Python SDK, repo/namespace 검색 API, Workers Builds API가 추가될 예정이다. 가격은 operations $0.15/1,000건, storage $0.50/GB-mo 기준으로, 대규모이면서도 유휴 repo가 많은 에이전트 사용 패턴을 염두에 두고 설계됐다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.