基于 Cloudflare Workers 的云端 Serverless Agent
把 Pi 的 agent loop 运行在 Cloudflare Workers 的 serverless 环境中,并保持 Agent 状态。
原作者 Harshil Patel 是 Cloudflare 员工。他将 Pi 简化,只保留核心能力并移植到 Cloudflare Workers 上,从而获得了一个随时随地可用的云端 Agent 执行环境,使用方式类似 Codex Work 。
我 Fork 之后,在这个基础上进行了进一步改造:
-
加入 Bash 、Curl 、Git 支持
- 原版没有 Bash 工具,对 Agent 的实际能力限制比较大。
- 增加 Curl ,方便访问外部 HTTP 服务和 API 。
- 增加 Git ,让 Agent 可以直接读取预定义的远程知识库。
-
重写 Git 实现
- 原版 Git 实现受到 Cloudflare Workers 128 MB 内存限制的影响。
- 我对 Git 命令 做了深度修改,将 Clone 改为流式处理。
- Clone 过程中不再需要把整个仓库加载到内存中,因此内存占用基本与仓库大小无关。
- 同时删除了 Git 中其他不需要的功能,只保留 Agent 场景需要的部分。
-
Cloudflare Free Plan
- 按目前的执行限制计算,Free Plan 每天可以支持一个 Agent 连续运行约 25.2 小时。
- 对于需要长期运行的 Agent 来说,基本可以做到不断档。
- 注:fs 是用 memfs 模拟的,默认没开持久化,因为对我的使用场景作用不大,想要需要自己加。
我的使用场景
这个项目最初就是为一个具体场景设计的:
使用 Git 维护一套持续更新的文档,然后让云端 Agent 随时获取最新版本的知识,用它作为 AI 客服回答用户问题。
这样做的好处是,知识内容和 Agent 本身是分离的:
Git 文档
↓
持续更新
↓
Cloudflare Worker
↓
Agent 获取最新知识
↓
回答用户问题
目前这个系统已经实际部署并使用了一段时间。
在线体验: