Artifacts: Gitに対応したバージョン管理ストレージ
概要
- Agentsの登場により、ソース管理やファイルシステムの概念が変化
- Artifactsはエージェント向けに設計された分散・バージョン管理ファイルシステム
- Git互換で、REST APIやWorkers APIも提供
- 大規模・高速なリポジトリ管理と状態永続化を実現
- ArtifactFSで大規模リポジトリの即時マウントも可能
エージェント時代の新しいソース管理:「Artifacts」とは
- Agentsの普及により、ソース管理・ファイルシステム・状態永続化の要求が激増
- 今後5年間で、これまでの歴史を上回る量のコード生成予測
- 従来のソース管理プラットフォームは人間向け設計で、エージェントの10倍以上の処理量に非対応
- 新たな基盤として「分散・バージョン管理ファイルシステム」の必要性
- Artifactsはエージェントに最適化されたGit互換のバージョン管理ファイルシステム
- プログラムからリポジトリ作成、エージェントやサンドボックスごとに独立したリポジトリ割当可能
- REST APIやWorkers API経由でリポジトリ作成・認証情報発行・コミット操作
- 通常のGitクライアントからも利用可能
Artifactsの基本機能とユースケース
- 各エージェントセッションやサンドボックスごとに独立したリポジトリ割当
- 10,000個以上のフォークも即時作成可能
- 既存Gitリポジトリからのインポートや、独立した作業・変更のプッシュも容易
- Gitクライアント非対応環境(サーバレス関数等)でもREST APIやTypeScript SDKで操作可能
- 状態永続化やセッション履歴管理など、ソース管理以外の用途にも最適
- セッション状態や履歴をリポジトリ単位で保存・共有・タイムトラベル可能
- 特定時点からのフォークで、他者との共同作業やデバッグも容易
Artifactsの技術基盤
- Cloudflare Durable Objects上で構築
- 数百万単位の独立・状態保持型インスタンスを即時生成可能
- Gitサーバ実装をZigで独自開発、WASMにコンパイル
- SHA-1、zlib、デルタエンコード、パック解析、GitスマートHTTPプロトコルを完全実装
- メモリ管理の柔軟性やWASM/ネイティブ両対応のビルドシステム
- Artifactsの内部構造
- ファイルはDurable ObjectのSQLite DBに保存
- 大型Gitオブジェクトは分割保存
- 認証トークン管理はKVストアで実現
- fetch/push時はWASM出力をストリーミングで返却
- Gitプロトコルv1/v2、shallow clone、ls-refs、インクリメンタルfetch等の機能対応
- git-notes対応で、メタデータやプロンプト履歴の保存も可能
大規模リポジトリへの対応:ArtifactFS
- ArtifactFSは大規模Gitリポジトリを即時マウント可能なファイルシステムドライバ
- サンドボックスやエージェント起動時のクローン時間を大幅短縮
- ファイルツリー・参照情報のみ先に取得、ファイル内容は必要時に非同期でダウンロード
- 主要ファイル(設定、ソースコード等)を優先ハイドレート
- 書き戻しは不要、Gitプロトコルでコミット&プッシュのみ
- GitHubやGitLabなど任意のGitリモートにも対応
- 大規模リポジトリのクローン時間を10〜15秒に短縮可能
- 月間1万回のサンドボックス起動で数千時間のコスト削減効果
今後の展開
- 現在はプライベートベータ、5月初旬にパブリックベータ公開予定
- 近日中にメトリクス拡充など新機能を追加予定
- ドキュメントや内部構造の詳細解説も順次公開
まとめ
- Artifactsはエージェント時代のソース管理・状態永続化の新基盤
- Git互換API・REST APIで多様な用途と大規模運用に対応
- ArtifactFSにより大規模リポジトリの即時マウント・効率化も実現
- 今後の機能追加・公開に注目