Buildy 完全指南:让 AI 为你构建永不消失的个人应用
问题:AI 对话中的 App 为何总是一闪而过?
你让 Claude Code 或 ChatGPT 帮你写一个「每日饮水追踪」的小工具。它在对话里生成了完整的前端代码、后端逻辑、CSS 样式——看起来一切完美。但当你关掉这个聊天窗口,所有代码就消失了。下回再打开,Agent 不认识之前写过什么,必须从头再来。
这是当前 AI 编码工作流的一个普遍痛点:每次对话都是一座孤岛。Agent 生成的应用没有持久化的地址,没有独立的数据存储,更无法在多个对话或 Agent 之间共享。
Buildy 正是为了解决这个问题而生的。它让 AI Agent 生成的应用拥有真正的 URL、持久化的 KV 存储、以及跨 Agent 的访问能力——应用不再随对话消失,而是变成一个可随时打开、更新、分享的独立存在。
Buildy 是什么
Buildy 是一个专为 LLM 生成的个人应用而设计的托管平台。核心思路很简洁:你告诉 AI 想要什么,AI 通过 Buildy 的 API 或 MCP 工具创建一个 ES Module + UI,Buildy 将其运行在 workerd 隔离沙箱中,并返回一个永久性的公开 URL。
这个 URL 可以:
- 在手机上作为 PWA 添加到主屏幕
- 在 ChatGPT、Claude 等 MCP 客户端中内嵌渲染
- 通过 HTTP API 或 MCP 协议供其他 Agent 读写
- 支持撤销操作和时间回滚
四种接入方式
Buildy 适配了几乎所有主流 AI 编码工具的工作方式:
| 接入方式 | 适用工具 | 说明 |
|---|---|---|
| MCP 工具 | Claude Desktop、ChatGPT、Goose | 直接调用 create_app、update_app 等 16 个工具 |
| HTTP API | Claude Code、Codex、Cursor、Cline | 通过 REST API POST ES Module |
| ChatGPT App | ChatGPT Web | 直接在 ChatGPT 中作为 GPTs 使用 |
| Codex 插件 | Codex CLI | codex plugin marketplace add ... 安装 |
这意味着无论你用哪款 AI 编码工具,Buildy 都有对应的接入路径。
核心技术:ES Module + workerd
Buildy 的应用本质上是一个 ES Module,包含两个命名导出:
export const manifest = {
id: 'hydration',
version: '0.0.1',
displayName: 'Hydration Tracker',
icon: { emoji: '💧', bg: '#1d8a4e' },
capabilities: {
imports: ['buildy:storage/kv@1.0'],
exports: ['log', 'stats'],
},
};
export default {
async fetch(request, env, ctx) {
const url = new URL(request.url);
if (url.pathname === '/log') {
await env.storage.put('today', request.body);
return new Response('Logged');
}
// ... 路由处理
},
};
代码亮点:
- manifest 静态声明应用 ID、图标、能力(使用了哪些存储/日志功能)
- fetch 是标准的 Service Worker handler,Buildy 自动路由到对应的 app_id
- env.storage 是持久化 KV 存储,数据不随对话消失
实战:创建一个饮水追踪器
在 Claude Desktop 或 ChatGPT 中连接 Buildy 后,只需一句话:
“帮我创建一个每日饮水追踪器,记录每杯水的量,显示当日进度环。”
Agent 会调用 create_app 工具,传入 ES Module、UI(HTML/CSS)和样式配置。几秒钟后返回一个 URL:
https://buildy.so/app/f5da0700-0db7-44ef-9aa2-b9499b484dfd
这个 URL 可以:
- 在浏览器中直接打开,看到完整的 PWA 界面
- 添加到手机主屏幕,离线可用
- 在任何后续对话中,Agent 可以通过
get_app读取数据并继续操作
每当你需要更新应用(如添加周统计图表),Agent 只需调用 update_app 传入新的 module,存储的数据完整保留。
数据读写:跨对话、跨 Agent
Buildy 最有价值的设计是数据的持久化和可访问性:
claude -p "Read my hydration tracker data from Buildy app"
claude -p "If I've logged less than 6 cups today, remind me to drink more"
数据存储在 Buildy 的 KV store 中,不绑定任何特定对话或 Agent。你可以在 Claude Code 中创建应用,在 ChatGPT 中查询数据,在 Codex 中更新记录——所有 Agent 看到的都是同一份数据。
高级场景:多应用协作
Buildy 支持一个应用读取另一个应用的数据。例如:
- 饮食记录 App 记录每日摄入
- 营养分析 App 读取饮食数据,计算蛋白质/碳水/脂肪比例
- 健身计划 App 结合营养数据和训练记录,给出调整建议
Agent 之间的数据流通过 get_app 读取 + update_app 更新的方式实现,无需手动文件导出或 API 对接。
MCP 集成:核心工具一览
当通过 MCP 协议接入时,Buildy 提供了四个核心工具(完整接口共 16 个工具):
| 工具 | 功能 |
|---|---|
create_app({ module, ui?, styles? }) | 创建新应用,返回 app_id 和 URL |
update_app({ app_id, module?, ui?, styles? }) | 更新已有应用,存储数据完整保留 |
get_app({ app_id }) | 获取应用详情和当前数据 |
list_apps() | 列出你已创建的所有应用 |
所有工具都通过 MCP 会话认证,无需手动管理 API 密钥。HTTP API 方式则通过 POST /app 和 PUT /app/ 实现同样功能。
限制与注意事项
Buildy 设计为个人应用托管平台,而非生产级应用部署方案。主要限制包括:
- 单用户共享数据集:没有用户账号系统,分享 URL 意味着共享同一份数据
- 无密钥存储:目前不支持 API key 管理,无法集成需要认证的外部服务
- 网络请求受限:后端
fetch仅限 public host(RSS/JSON feed),需要 API key 的服务不可用 - 首个应用免费:后续需要注册,但无额外费用
这些限制对于个人效率工具(追踪器、笔记、清单、习惯记录)来说是完全可以接受的。
结语
Buildy 解决了一个真实且被广泛忽视的问题:AI 生成的应用不应随对话而消失。它让 Agent 创建的应用有了「家」——一个持久的 URL、一个独立的数据库、一条跨 Agent 的数据通道。如果你经常让 AI 帮你写小工具但又苦于它们无法持久化,Buildy 值得一试。