一个普通人也能玩转的多智能体协作平台,无需服务器、无需 Docker、无需运维经验。


引言:一个普通开发者的 AI 代理梦(引言)

几个月前,我想给自己的项目配一个 AI 助手。不是那种聊聊天就完事的,而是能真正干活的那种——能搜索资料、能读写文件、能跑后台任务。

翻了一圈市面上的方案:OpenClaw 不错,但要自己搭服务器;AutoGPT 太重量级;LangChain 的生态太复杂。我只是个普通开发者,不想为了一个 AI 助手去学一套完整的 DevOps 技能栈。

直到我发现了 Downy

二、Downy 是什么

Downy 是一个基于 Cloudflare Workers 的开源多智能体协作平台。简单说,它让你在几分钟内创建一支 AI 代理团队,每个代理都有自己的工作空间、独立的模型配置和对话历史。

项目地址:github.com/bensenescu/downy

核心特性一览

特性 说明
🧠 多代理架构 主代理(DownyAgent)+ 子代理(ChildAgent),每个独立运行、独立模型配置
☁️ 全托管 部署在 Cloudflare Workers 上,零服务器管理
🔐 安全认证 Cloudflare Access 身份认证,邮箱 OTP 登录
🗂️ 文件系统 每个 Agent 拥有独立 R2 工作区,支持文件上传、代码读写
🔍 网络搜索 集成 Exa API,支持网页搜索和内容抓取
📋 后台任务 代理可以执行长期运行的后台任务
🤖 多模型支持 Kimi、OpenRouter、ChatGPT Plus/Pro 等多种 LLM
💬 实时对话 基于 WebSocket 的流式对话体验

技术架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
┌─────────────────────────────────────────────────┐
│ Cloudflare Worker │
│ ┌─────────────────────────────────────────────┐ │
│ │ TanStack Start (SSR 应用 + API) │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │DownyAgent│ │ChildAgent│ │ D1 DB │ │ │
│ │ │(DO主代理) │ │(DO子代理) │ │ (SQLite)│ │ │
│ │ │ Think │ │ Think │ │ agents表 │ │ │
│ │ │ Workspace│ │ Workspace│ │ kv表 │ │ │
│ │ │ R2绑定 │ │ R2绑定 │ │ │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
│ │ ┌──────────────────────────────────────┐ │ │
│ │ │ R2 Bucket (WORKSPACE_BUCKET) │ │ │
│ │ │ (每个Agent的工作区文件存储) │ │ │
│ │ └──────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────┘ │
│ Cloudflare Access 认证 │
└─────────────────────────────────────────────────┘

每个 Agent 都是一个独立的 Durable Object。这意味着它们有自己的”大脑”(对话历史)和”储物柜”(R2 存储空间),互不干扰,响应极快。

三、动手部署

前置准备

服务 用途 费用
Cloudflare Worker 托管 免费计划可用
Exa 网页搜索/抓取工具 免费 $10 额度
Alchemy 部署工具(替代 Wrangler) 免费

本地环境需要 Node.js 24 LTS 或更高版本,以及 pnpm 包管理器。

步骤 1:克隆项目

1
2
3
git clone https://github.com/bensenescu/downy.git
cd downy
pnpm install

步骤 2:配置环境变量

复制 .env.example.env,填入以下关键信息:

  • TEAM_DOMAIN:你的团队域名(如 my-team),用于生成 Agent 的访问地址
  • OPENROUTER_API_KEY:OpenRouter API Key(如果使用 OpenRouter 模型)
  • SESSION_SECRET:会话加密密钥,用 openssl rand -hex 32 生成

步骤 3:一键部署

这里不用传统的 Wrangler,而是使用更智能的 Alchemy 工具:

1
pnpm deploy

Alchemy 会自动处理:

  • 创建 D1 数据库(downy-db
  • 创建 R2 存储桶(downy-workspace
  • 绑定 Durable Object
  • 部署 Worker

部署过程中会提示输入 Alchemy Password——务必保存好,它用于加密本地状态,丢失后所有 Secret 需要重新输入。

步骤 4:配置 Cloudflare Access

部署后 Worker 会拒绝所有流量,必须配置 Access 才能使用:

  1. 进入 Cloudflare Dashboard → Zero Trust → Access → Applications
  2. 添加一个 Self-hosted 应用
  3. 域名填你的 Worker 地址(如 downy.my-team.workers.dev
  4. 策略设为 Allow,规则选 Email 或任何你喜欢的认证方式

步骤 5:创建你的第一个 Agent

访问 Worker 地址,登录后点击创建 Agent。你会看到:

  • 主代理(DownyAgent):默认创建,负责指挥和协调
  • 子代理(ChildAgent):可以创建多个,每个独立工作

每个 Agent 都可以在设置中独立选择模型 Provider。

四、模型选择

Downy 支持 4 种模型提供者:

Provider 接入方式 是否需要付费计划
kimi Workers AI(@cf/moonshotai/kimi-k2.6 ✅ Workers Paid
openrouter OpenRouter API Key ❌ 免费 + 自备 Key
pi-local 本地 pi proxy(127.0.0.1:8788) ❌ 开发环境
pi-prod 通过 VPC 绑定访问远程 pi proxy ❌ 需要 VPC

省钱小技巧:使用 OpenRouter 可以完全绕过 Workers AI 的付费要求。你只需要一个 OpenRouter API Key,就能用上各种模型。

实测感受:实际跑下来,OpenRouter 配合 DeepSeek V3 或 Claude Sonnet 效果最好,响应速度也快。Kimi 模型虽然免费但需要 Workers Paid 计划,性价比不如 OpenRouter。如果你已经有 ChatGPT Plus,pi-proxy 方案最省——不用额外付费,直接用你的 Plus 订阅。

五、项目结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
downy/
├── alchemy.run.ts # 🔑 部署配置(替代 wrangler.toml)
├── vite.config.ts # Vite/TanStack Start 构建配置
├── package.json
├── .env.example # 环境变量模板
├── app.config.ts # TanStack Start 路由配置

├── src/
│ ├── worker/ # 🖥️ 服务端代码
│ │ ├── agent/ # Agent 核心逻辑
│ │ │ ├── DownyAgent.ts # 主 Agent Durable Object
│ │ │ ├── ChildAgent.ts # 子 Agent Durable Object
│ │ │ ├── get-model.ts # 模型选择器
│ │ │ └── build-system-prompt.ts
│ │ ├── handlers/ # API 处理器
│ │ └── db/ # D1 数据库操作
│ │
│ ├── components/ # 🎨 前端组件
│ │ └── chat/ # 聊天界面组件
│ └── lib/ # 通用工具

├── migrations/ # 🗄️ D1 数据库迁移
│ ├── 0001_init.sql
│ └── 0002_seed_default_agent.sql

├── aisdk-pi-proxy/ # 🔌 ChatGPT Plus/Pro 代理(可选)
└── docs/
├── architecture.md # 架构文档
└── pi-proxy-setup.md # pi-proxy 配置指南

关键文件说明

alchemy.run.ts 是核心配置文件,替代了传统的 wrangler.toml。它声明了 Durable Object 绑定、D1 数据库、R2 存储桶、Workers AI 绑定和环境变量。

get-model.ts 负责模型选择逻辑,支持 4 种 Provider 的动态切换。

六、注意事项

部署注意事项

  1. Alchemy 而非 Wrangler — 不要尝试用 wrangler.toml 部署,项目使用 Alchemy
  2. Alchemy Password 必须保存 — 丢失后所有 Secret 需要重新输入
  3. Cloudflare Access 是强制性的 — 不配置 Access 就无法使用
  4. 环境变量变更后需重新部署 — 修改 .env 后必须运行 pnpm deploy

免费计划限制

  • 使用 OpenRouter 可以完全绕过 Workers AI 付费要求
  • 语音转录(Whisper)依赖 Workers AI,免费计划不可用
  • Workers 免费计划 CPU 限制 10ms/请求——对主要做 I/O 等待的 Agent 影响不大
  • D1 免费 500MB——个人使用完全足够
  • R2 免费 10GB 存储 + 100 万次请求/月

安全注意事项

  • 不要提交 .env 到 Git(已在 .gitignore 中排除)
  • Cloudflare Access 保护你的 Worker——未登录用户无法访问
  • 每个 Agent 的数据隔离——对话历史和工作区文件相互隔离
  • Secret 加密存储——Alchemy 用你的密码加密所有 Secret

七、常见问题

Q: 部署后访问显示 404?
需要开启 Cloudflare Access 认证。

Q: 如何切换模型?
Settings → Preferences → AI Provider → 选择需要的 Provider。

Q: 可以同时运行多个 Agent 吗?
可以。每个 Agent 是一个独立的 Durable Object,互不影响。

Q: 如何备份数据?
D1 和 R2 的数据由 Cloudflare 自动管理。可以通过 Dashboard 导出备份。

Q: 可以自定义知识库吗?
每个 Agent 的工作区可以作为知识库,上传文件后 Agent 可以读取和引用。


八、总结与建议(总结)

Downy 最打动我的地方,是它把”搭建 AI 代理团队”这件事变得像注册一个账号一样简单。不需要 Docker、不需要服务器、不需要运维——只要一个 Cloudflare 账号,几分钟就能拥有自己的 AI 军团。

如果你也在找一个轻量、开源、能真正干活的多智能体平台,Downy 值得一试。

我的建议

如果你只是好奇想试试,用 OpenRouter 方案零成本起步,5 分钟就能跑起来。如果你打算认真用,建议至少开通 Workers Paid 计划($5/月),解锁 Kimi 模型和 Whisper 语音转录。

项目地址github.com/bensenescu/downy


本文基于飞书文档整理,完整文档可查看 Downy — 开源多智能体协作平台