Artifacts:会说 Git 的版本化存储
Cloudflare 的这篇文章介绍了 Artifacts:一个面向 agent 的、兼容 Git 协议的版本化存储原语,目标是让 agent、sandbox 和自动化系统可以按需创建、导入、fork 并持久化 repo 状态。核心问题传统源代码平台主要为人类协作设计,难以适应 agent 带来的并发、多会话和高仓库数…
转载说明:本文精译自 Cloudflare Blog 于 2026-04-16 发布的 Artifacts: versioned storage that speaks Git,原作者为 Dillon Mulroy、Matt Carey 和 Matt Silverlock。本文的 StaticFlow 入库日期为本地导入日期,原始发布日期仅在转载说明中保留。Artifacts:会说 Git 的版本化存储 Artifacts 封面 Agent 已经改变了我们看待源代码管理、文件系统和状态持久化的方式。开发者和 agent 正在生成前所未有的代码量:未来 5 年写出的代码会超过整个编程史上此前写过的全部代码。这带来了数量级上的系统规模变化,现有系统必须跟上这种需求。源代码管理平台尤其吃力:它们是为人类协作设计的,而不是为永不休息、可以并行处理多个问题、也不会疲倦的 agent 所带来的 10 倍体量变化而设计的。 我们认为现在需要一种新的基础原语:一个面向 agent 优先构建的分布式、版本化文件系统,同时也能服务今天正在被构建出来的各类应用。 我们把它称为 Artifacts:一个会说 Git 的版本化文件系统。你可以在程序里创建仓库,把它放在 agent、sandbox、Workers 或任何其他计算范式旁边,然后用任何普通 Git 客户端连接它。 想给每一次 agent 会话分配一个 repo?Artifacts 可以。想给每一个 sandbox 实例分配一个 repo?也可以。想从一个已知可靠的起点创建 10,000 个 fork?答案还是 Artifacts。Artifacts 提供 REST API 和原生 Workers API,用于创建仓库、生成凭证、提交变更;这些能力适合那些 Git 客户端并不是合适选择的环境,例如任意 serverless function。 Artifacts 现在已经开放 private beta,我们的目标是在 5 月初把它推进到 public beta。// 创建一个 repo const repo = await env.AGENT_REPOS.create(name) // 把 token 与 remote 返回给你的 agent return { repo.remote, repo.token } # 像使用普通 git remote 一样 clone 它 $ git clone https://x:${TOKEN}@123def456abc.artifacts.cloudflare.net/git/repo-13194.git 就是这样。一个裸仓库,按需即时创建,任何 Git 客户端都可以对它进行操作。 如果你还想从一个已有 Git 仓库启动 Artifacts repo,让 agent 能独立处理它并推送独立变更,也可以通过 .import() 完成:interface Env { ARTIFACTS: Artifacts } export default { async fetch(request: Request, env: Env) { // 从 GitHub 导入 const { remote, token } = await env.ARTIFACTS.import({ source: { url: "https://github.com/cloudflare/workers-sdk", branch: "main", }, target: { name: "workers-sdk", }, }) // 拿到导入后的 repo 句柄 const repo = await env.ARTIFACTS.get("workers-sdk") // fork 出一个隔离的只读副本 const fork = await repo.fork("workers-sdk-review", { readOnly: true, }) return Response.json({ remote: fork.remote, token: fork.token }) }, } 如果你想开始使用,可以先看文档;如果你想了解 Artifacts 是怎么被使用、怎么构建、底层又是如何工作的,请继续读下去。为什么是 Git?什么是版本化文件系统? Agent 懂 Git。Git 深深存在于大多数模型的训练数据里。无论是 happy path 还是边界情况,agent 都非常熟悉;面向代码优化的模型以及相关 harness 尤其擅长使用 git。 进一步说,Git 的数据模型不仅适合源代码管理,也适合任何需要跟踪状态、时间旅行、持久化大量小型数据的场景。代码、配置、会话 prompt 和 agent…
正在初始化 WebAssembly 引擎…
首次编译原生模块可能需要数秒
就绪后,页面交互将以接近原生的速度运行