Talorys:基于 Cloudflare 免费层的自托管个人 AI 代理
TL;DR
Talorys 是一个开源的个人 AI 助手,你可以在自己的 Cloudflare 账户中通过一条命令启动它,并且它完全运行在 Cloudflare 的免费层服务上,无需任何外部后端。
Talorys 提供什么
- 私有聊天界面:支持流式 Markdown 响应和工具活动指示器。
- 持久化记忆:存储在基于 SQLite 的 Durable Object 中;每次对话仅发送最相关的事实给模型。
- 完整的 CRUD 功能:通过 UI 或自然语言命令(例如:“添加一个明天复习项目的任务”)管理任务、笔记和项目。
- 自动化:一次性和周期性提醒、每日摘要,以及运行在 Durable Object 闹钟上的可选 AI 驱动例程。
- 单用户设计 – 无需注册流程,无团队功能;安装程序会创建一个存储为 Cloudflare 密钥的所有者密码。
- 优雅降级 – 如果 Workers AI 配额耗尽,非 AI 功能(任务、笔记、提醒)仍可继续工作。
"一个人。一个 Cloudflare 账户。一条命令。一个个人 AI 代理。" – 项目 README
架构概览
Browser ──HTTPS──▶ Cloudflare Pages (React UI + /api Pages Function)
│ service binding (private)
▼
Private Worker (Hono router)
│ getAgentByName("personal-agent")
▼
TalorysAgent – Cloudflare Agents SDK Durable Object
├─ SQLite: chats, memories, tasks, notes, automations, …
├─ Workers AI: @cf/zai-org/glm-4.7-flash (streaming + tool calls)
└─ Alarms: scheduled reminders & recurring jobs
- 浏览器仅与
*.pages.dev站点通信。API 调用通过服务绑定代理到私有 Worker,因此该 Worker 没有公共 URL。 - 身份验证和授权在 Worker 内部执行,而非前端。
- 聊天响应使用服务器发送事件 (SSE) 流式传输到客户端。
使用的 Cloudflare 服务(均支持免费层)
| 服务 | 角色 | 免费层可用性 |
|---|---|---|
| Cloudflare Pages | 托管 React UI 和 API Pages Function | ✅ |
| Cloudflare Workers | 私有 API Worker(无公共端点) | ✅ |
| Durable Objects (SQLite) | 存储所有用户数据并运行基于闹钟的计划任务 | ✅ |
| Workers AI | 提供 LLM (@cf/zai-org/glm-4.7-flash) |
✅ (每日神经元配额) |
Talorys 有意避免使用 R2、D1、KV、Vectorize、AI Search 或 Workflows 等付费服务。
一键部署
npx create-talorys@latest
安装程序执行以下步骤:
- 检查 Node 20.18+ 并使用捆绑的 Wrangler CLI。
- 使用 Cloudflare 进行身份验证(如有必要,打开 OAuth 页面)。
- 选择账户和代理名称。
- 提示输入所有者密码;密码在本地使用 PBKDF2-SHA256 哈希处理并存储为 Cloudflare 密钥。
- 生成 256 位会话密钥和唯一资源名称。
- 部署私有 Worker,创建 Durable Object 命名空间,存储密钥,并创建带有服务绑定的 Pages 项目。
- 运行健康检查(前端、身份验证端点、存储)而不调用任何 AI 推理。
- 打印最终的
https://<name>.pages.devURL。
安装程序会写入一个包含 talorys.json(仅元数据)和可部署制品的 talorys/ 目录。重新运行该命令会恢复中断的安装,且永远不会删除现有数据。
非交互模式
TALORYS_OWNER_PASSWORD=... \
npx create-talorys@latest --yes --account-id <ACCOUNT_ID>
(如果你没有通过 OAuth 流程登录,则需要 CLOUDFLARE_API_TOKEN。)
所需权限
如果你使用 API 令牌而不是 OAuth 流程,它必须具有:
- Account › Workers Scripts › Edit
- Account › Cloudflare Pages › Edit
- Account › Workers AI › Read
- Account › Account Settings › Read
- User › User Details › Read(可选,用于显示你的电子邮件)
数据驻留与隐私
所有用户数据——对话、记忆、任务、笔记、项目、自动化和设置——都驻留在你 Cloudflare 账户内的一个基于 SQLite 的 Durable Object 中。Talorys 不发送遥测、分析或广告代码,也从不向项目维护者发送数据。
"Talorys 没有遥测、分析、跟踪或广告代码,也不会向其开发者发送任何内容。" – README
Cloudflare 仅在提供其平台服务(包括运行 LLM 推理)时处理数据。详情请查阅 Cloudflare 的隐私政策和 Workers AI 条款。
免费层限制与成本模型
- Cloudflare 的免费计划对请求、Durable Object 使用量以及 Workers AI 的每日 10,000 神经元配额有限制。
- 当 AI 配额耗尽时,UI 会显示清晰的消息,并在每日重置后恢复;所有非 AI 功能保持正常运行。
- 如果你升级到 Cloudflare 付费计划,超出免费额度的任何使用量将由 Cloudflare 收费,而非 Talorys。
- 内置的护栏(可在 Settings → AI 下配置)允许你限制:
- 最大输出 Token 数
- 最大上下文 Token 数(较旧的历史记录会被总结)
- 每次请求的最大工具调用次数
- 每日最大 AI 请求数
- 每日最大计划 AI 运行次数
本地开发工作流
git clone https://github.com/rociiu/talorys.git
cd talorys
npm install
npm run dev
npm run dev 启动:
- 代理 Worker (
wrangler dev在端口 8787) - Pages Function 代理 (
wrangler pages dev在端口 8788) - Vite UI 在
http://localhost:5173
使用确定性的模拟 AI 提供程序,因此本地测试无需 Cloudflare 登录。状态保存在 .wrangler/state 中。
备份与迁移
- 导出:Settings → Privacy → Download backup 会创建包含所有用户生成数据(对话、记忆、任务、笔记、项目、自动化、设置)的
talorys-backup.json。凭据和会话数据不包含在内。 - 导入:UI 会验证 JSON 并以事务方式合并;多次导入同一个备份是安全的。
更新现有部署
在 talorys/ 目录下,运行:
npx create-talorys@latest update
该命令将最新的 Worker 和前端重新部署到相同的资源上。Durable Object 命名空间被保留,所有者密码和会话保持有效,模式迁移会在第一次请求时自动运行。
其他辅助命令:
npx create-talorys@latest status– 显示当前部署的健康状况。npx create-talorys@latest doctor– 运行自动诊断。npx create-talorys@latest reset-password– 替换所有者密码密钥并注销所有设备。
社区反馈与批评 (HN 评论)
- “自托管”的定义 – 一些评论者认为,完全依赖 Cloudflare 的托管服务并不是真正的自托管。一位用户指出:“完全依赖 Cloudflare 根本谈不上自托管。”
- 免费层的可靠性 – 一位用户报告了 Cloudflare 免费 AI 配额的问题,称他们意外地被收取了神经元使用费且未获得支持。
- 性能担忧 – 一些用户认为 Workers AI 在交互式聊天中“非常慢”,建议它更适合后台任务。
- 定制潜力 – 一条评论指出,将 AI 端点替换为本地模型服务器非常简单,这可以将该项目转变为更传统的自托管解决方案。
- 对 Durable Objects 的赞赏 – 一位评论者称 Durable Objects 是他们见过的“最酷的东西”,强调了代码与数据紧密耦合的优势。
- 安全认知 – 批评者警告说,将产品营销为“自托管”可能会误导用户,使其忽视在第三方平台上存储个人数据的安全隐患。
何时使用 Talorys
- 你想要一个个人 AI 助手,而无需管理服务器、数据库或 Docker 容器。
- 你乐于将数据保存在 Cloudflare 的免费层中,并接受每日 AI 神经元限制。
- 你重视单用户隐私(无注册、无第三方遥测),并且可以接受 Cloudflare 作为底层基础设施。
- 你更喜欢一键安装以及在桌面和移动设备上都能运行的 Web UI。
局限性与待解决问题
- 真正的自托管:该解决方案绑定在 Cloudflare 上;将其迁移到本地硬件需要替换 Workers、Durable Objects 和 Workers AI。
- 可扩展性:专为单用户设计;多用户场景需要重大的架构变更。
- 评估:正如一位评论者所指出的,目前缺乏关于记忆召回准确性或任务完成率的公开基准测试。
- 延迟:Workers AI 可能会为实时聊天带来明显的延迟,这可能会影响用户体验。
总结
Talorys 表明,只要你接受该平台的限制以及将“自托管”定义为“托管在自己的 Cloudflare 账户中”,就可以在 Cloudflare 的免费层上以零服务器管理和零成本构建并部署功能齐全的个人 AI 助手。该项目的开源性质、简单的安装程序以及对 Durable Objects 的使用,使其成为业余爱好者和注重隐私的用户的理想起点,而社区的批评也凸显了对更清晰术语和更稳健性能保证的需求。
Sources
相关
- 项目
- 项目
- Dispatch
- Dispatch
- Dispatch