为 Agent 重新设计的 Git:Cloudflare Artifacts 是什么,怎么工作的

news2026/5/12 1:35:50
原文Artifacts: versioned storage that speaks Git发布时间2026 年 4 月 16 日作者Dillon Mulroy、Matt Carey、Matt Silverlock一个规模问题有一个被反复引用的预测未来 5 年内人类将写出比过去整个编程历史还要多的代码。这个预测的驱动力不是程序员变多了而是 Agent。Agent 不需要休息可以同时处理多个任务不知道疲倦。代码生成的量级正在发生数量级的跳跃。问题在于今天所有主流的源码托管平台——GitHub、GitLab 乃至各类自托管方案——在设计之初面向的是人类开发者的工作节奏。一个团队每天提交几十次、几百次这是它们的设计预设。当 Agent 进来之后这个预设就失效了。Cloudflare 的这次发布是他们对这个问题的回答Artifacts一个以 Agent 为第一用户、兼容标准 Git 协议的分布式版本化文件系统。Artifacts 是什么用一句话描述Artifacts 是一个可以用代码动态创建的 Git 仓库托管服务支持所有标准 Git 客户端操作。最简单的用法只需要三行代码// 创建一个仓库constrepoawaitenv.AGENT_REPOS.create(name)// 把 token 和远端地址传给你的 Agentreturn{repo.remote,repo.token}# 像操作任何普通 Git 远端一样克隆它$gitclone https://x:${TOKEN}123def456abc.artifacts.cloudflare.net/git/repo-13194.git一个空仓库即刻可用任何 Git 客户端都可以操作。如果你想让 Agent 基于一个已有的 GitHub 仓库独立工作可以直接导入exportdefault{asyncfetch(request:Request,env:Env){// 从 GitHub 导入const{remote,token}awaitenv.ARTIFACTS.import({source:{url:https://github.com/cloudflare/workers-sdk,branch:main,},target:{name:workers-sdk},})// Fork 一个隔离的只读副本constrepoawaitenv.ARTIFACTS.get(workers-sdk)constforkawaitrepo.fork(workers-sdk-review,{readOnly:true})returnResponse.json({remote:fork.remote,token:fork.token})},}导入完成后Agent 得到一个完全独立的副本在上面任意修改、提交不会影响上游仓库。目前 Artifacts 处于私有测试阶段计划在 2026 年 5 月初开放公开测试。为什么用 Git而不是发明新协议这是一个值得认真回答的问题因为 Git 并不是专为分布式大规模场景设计的Cloudflare 完全可以设计一套全新的协议。他们选择 Git 的理由有两条第一AI 模型天然熟悉 Git。Git 的用法、边界情况、最佳实践大量存在于各类代码仓库、文档和论坛中深度嵌入了大多数模型的训练数据。代码优化型模型对 Git 的掌握程度尤其高。如果给 Agent 一个 HTTPS 地址和认证 Token它会把这个远端当成普通 Git 仓库来操作——这条路径已经被证明是可行的。第二Git 的数据模型适用范围远超源码管理。Git 本质上是一个内容寻址的对象存储系统天然支持版本追踪、历史回溯、状态对比。只要你有需要记录变化、支持回滚的需求Git 的数据模型就适用代码、配置文件、Agent 的会话历史都可以用 Git 的方式来管理。发明新协议意味着需要重新训练模型、分发 CLI 工具、接入文档 MCP——每一步都是额外的摩擦。沿用 Git这些问题都不存在。不只是源码管理Cloudflare 内部怎么用Cloudflare 团队自己是 Artifacts 的第一批用户他们内部 Agent 的使用方式很好地展示了这个产品超出源码托管的可能性。每个 Agent 会话对应一个独立仓库。会话的文件系统状态和对话历史提示词、助手回复都会自动持久化到这个仓库里。不需要单独维护块存储会话结束后仓库留存下次可以继续从任意历史节点恢复。会话可以分享和 Fork。调试一个棘手的问题想让同事帮你看一眼把仓库 URL 发给他他 Fork 一个副本从你停下来的那一刻接着往下做。所有的文件状态和对话历史都在不需要重新描述背景。这在需要多人协作或交接工作的场景里非常实用。非 Git 场景也适用。有团队在考虑用 Artifacts 存储每个客户的配置文件——不需要 Git 协议本身但需要版本追踪、回滚、变更对比这些语义。Artifacts 的底层数据模型能直接支持这类需求。底层是怎么做的Durable Objects支撑数千万仓库的基础Artifacts 的底层基于 Cloudflare 的 Durable ObjectsDO。DO 的核心特性是可以创建数千万个互相隔离的有状态计算实例每个实例轻量且启动快。这正好对应 Artifacts 的需求——每个命名空间下可能存在数百万个仓库每个仓库是一个独立的 DO 实例。用 DO 做这件事还有一个好处这不是 Cloudflare 第一次在生产环境大规模使用 DO。Major League Baseball 的赛事直播、Confluence 的白板功能以及 Cloudflare 自己的 Agents SDK都在大规模使用 DO。技术成熟度有保障。用 Zig 写 Git 服务器编译成 Wasm在 Cloudflare Workers 上运行一个 Git 服务器需要一个足够小、足够完整、可以在 Wasm 沙箱里运行的 Git 协议实现。Cloudflare 选择用 Zig 从头实现编译为约 100KB 的 Wasm 二进制文件。选择 Zig 有三个原因零依赖纯 Zig 实现。整个 Git 协议引擎不依赖 libc自己实现了 SHA-1、zlib 压缩/解压、delta 编解码、pack 文件解析以及完整的 Git smart HTTP 协议。手动内存控制。DO 的内存上限约为 128MBZig 允许精确控制内存分配避免在受限环境里出现意外的内存溢出。可独立测试。Wasm 模块通过一个只有 11 个函数的接口和 JS 宿主通信存取对象、流式输出完全可以脱离宿主单独测试。文件存储细节文件对象存储在 DO 内置的 SQLite 数据库中使用同步 KV APIstate.storage.kvDO 的单行存储上限是 2MB超过这个大小的 Git 对象会被分片存储到多行Git delta差量压缩的原始数据和 base hash 一起持久化取数据时如果客户端已有 base 对象直接发 delta 而不是完整对象节省带宽和内存同时支持 Git 协议 v1 和 v2包括浅克隆、增量拉取等常用特性git-notes 支持Agent 可以附加元数据而不污染历史Artifacts 原生支持git-notes这是 Git 的一个机制允许给任意 Git 对象提交、文件等附加额外的注释且这些注释不会改变对象本身的哈希值。对于 Agent 场景这意味着 Agent 可以把提示词、归因信息、执行日志等元数据写到 notes 里随仓库一起存储和传递但不会影响代码提交的历史记录。ArtifactFS大仓库快速挂载已开源Git 协议有一个固有的问题对于大型仓库克隆操作会阻塞 Agent 的启动。以一个广受欢迎的 Web 框架为例仓库体积 2.4GB历史记录很长完整克隆需要接近 2 分钟。对于人类开发者等 2 分钟还好对于 Agent 驱动的沙箱任务这是每次启动都要付出的固定成本。如果每月运行 1 万次这样的沙箱任务每次节省 90 秒累计能减少约 2778 小时的计算时间。Cloudflare 为此开源了ArtifactFS一个专门设计给 Agent 和沙箱场景的文件系统驱动核心思路是异步克隆 按需水合启动时先做 blobless clone——拉取文件树结构和引用但不下载文件内容这一步很快后台并发地把文件内容下载到本地水合过程优先处理 Agent 最可能先读的文件类型package.json、go.mod等包管理文件配置文件源代码文件把二进制文件图片、可执行文件放到最后如果 Agent 在某个文件水合完成之前尝试读取它读操作会等待直到内容就绪Agent 不需要学任何新的 API。写完代码之后像操作普通 Git 仓库一样 commit 和 push 就行。ArtifactFS 不只支持 Cloudflare 自己的 Artifacts对 GitHub、GitLab 以及任何标准 Git 远端都同样适用。项目地址https://github.com/cloudflare/artifact-fs定价为 Agent 规模设计Artifacts 的计费模型只有两个维度操作次数和存储量。单价每月免费额度操作次数克隆、Fork、Push、Pull 等$0.15 / 1,000 次操作前 1 万次免费存储$0.50 / GB·月前 1 GB 免费没有闲置费。一个仓库创建之后只要不产生操作、不消耗存储就不收费。这对于可能同时存在数百万个仓库、但大多数处于冷状态的 Agent 场景来说是一个合理的定价结构。随着测试推进Cloudflare 也会把 Artifacts 接入 Workers 免费套餐并提前通知任何定价变化。路线图目前已在开发中、将在测试期间陆续推出的功能事件订阅在 Push、Fork、Clone 等操作发生时触发事件可用于驱动 webhook、CI/CD 流程或通知多语言 SDK原生 TypeScript、Go、Python 客户端仓库搜索按文件内容或文件名在命名空间内搜索仓库比如找出所有包含package.json的仓库Workers Builds 集成在 Agent 驱动的工作流上直接运行 CI/CD 任务小结Artifacts 解决的问题可以用一句话概括现有的源码管理基础设施是为人类的工作节奏设计的而 Agent 的工作节奏和人类完全不同。Cloudflare 的解法没有另起炉灶而是选择以 Git 协议为接口用 Durable Objects 做规模化底座在上面构建了一套针对 Agent 场景重新优化的版本化存储系统。Agent 熟悉 Git开发者熟悉 Git现有工具链也都兼容 Git——这让 Artifacts 的接入成本几乎为零。更有意思的地方在于它的使用场景并不局限于源码。只要你有需要版本追踪、支持回滚、需要 Fork 隔离这类需求Artifacts 的数据模型就能派上用场——配置管理、会话状态持久化、沙箱环境快照都是它可以覆盖的领域。参考链接原文https://blog.cloudflare.com/artifacts-git-for-agents-beta/官方文档快速上手https://developers.cloudflare.com/artifacts/get-started/workers/REST API 示例https://developers.cloudflare.com/artifacts/api/rest-api/ArtifactFS 开源仓库https://github.com/cloudflare/artifact-fs私有测试申请https://forms.gle/DwBoPRa3CWQ8ajFp7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2604906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…