从对话到文章:AFS 与 Cloudflare

在 Cloudflare Connect 的现场演示中,一个问题把讨论带到了基础设施:通过 AFS 创建文章,与 Workers、Durable Objects 和 R2 有什么关系?
AFS 为 AI agent 提供通过路径访问内容和能力的接口。Cloudflare 为 ARC 的 Cloudflare 运行时提供底层基础设施。这次,我们请 ChatGPT 把现场对话整理成文章,在发布前一起查看网站预览。
从一条真实内容路径开始
演示中,ChatGPT 使用 ArcBlock 的 AFS 连接列出 /packages,随后读取已有文章:
/packages/content/articles/cloudflare-connect-nextgen/content.md返回结果包含真实文章源文件:标题、作者、描述和 Markdown 正文。Agent 通过发现内容时使用的同一种路径接口,了解网站如何表示一篇文章。
这个抽象的用处就在这里。Agent 面对的是路径上的文章内容,AFS provider 负责把操作接到存储实现。Agent 不需要自行把一次文章读取翻译成 R2 请求。
新草稿写在网站源码的独立 Git 工作区。中英文 Markdown 文件位于 content/articles/cloudflare-connect-afs-demo/。本次演示结合了真实的远程 AFS 读取、本地草稿准备与页面预览,没有把新文章写入生产网站的 AFS 挂载。
Cloudflare 各项服务负责什么
| 服务 | 在 ARC 的 Cloudflare 实现中的作用 |
|---|---|
| Workers | 接收请求,执行 Cloudflare 运行时中的应用逻辑。 |
| Durable Objects | ARC 绑定名为 AUPSessionDO 的 Durable Object,承载交互式 UI 会话。Cloudflare 提供协调机制,运行时定义会话行为。 |
| R2 | 保存 DID Space 后端的内容对象。公开媒体可以使用单独配置的 R2 bucket。 |
| D1 | 保存 DID Space 后端的目录与元数据记录,与 R2 中的内容配合。 |
我们对照 ARC 的 Cloudflare 运行时配置与 UI 会话实现核对了这些分工。AFS 是这些服务之上的访问接口。
读取静态文章不一定会用到交互式 Durable Object 会话。仅有会话对象,也不能证明多位编辑可以同时修改同一份文档;这取决于应用如何实现。
试一次从对话到预览的流程
把需要记录的事实告诉 agent,请它先通过 AFS 查看已有文章,再准备新草稿。在实际渲染的页面中检查标题、姓名、主张和链接。后续提问可以继续成为同一篇草稿的修订。
这次会话要求通过 Tailscale 提供私有预览。预览展示 ARC 从这份本地草稿生成的网站页面。本地运行时的文章路由返回错误,因此本次审阅使用构建生成的 HTML。它演示内容与渲染流程,没有新部署一个 Cloudflare Worker。
参与者看过结果以后,再决定是否发布。内容工具的访问能力,并不代替写入权限或编辑审批。
什么时候适合这样做
当会议现场的对话需要在参与者还在一起时变成可审阅文章,这个流程就有用。关于 Cloudflare 存储这样的技术追问,也能直接进入解释,而不只是留在会议笔记里。
如果只有一篇静态文章,Markdown 加普通静态网站就可能够用。当 agent 需要以一致的方式发现内容、使用网站能力时,AFS 才显出价值。存储配置、访问控制和发布仍由外围系统负责。
延伸阅读
- Cloudflare Workers:请求执行与资源绑定。
- Durable Objects:带状态的协调机制。
- R2 Workers API:在 Worker 中访问对象存储。
由 ChatGPT 根据现场对话整理,并对照 ARC 源码与 Cloudflare 文档核实。