跳到正文
Hacker News· rociiu·· 23 天前精选AI 评分59

Talorys 开源:可一键部署到 Cloudflare 免费层的自托管个人 AI 智能体

Talorys – A self-hosted personal AI agent on Cloudflare's free tier

AI 导读

Talorys 是一个开源个人 AI 智能体,可通过 npx create-talorys@latest 一行命令部署到用户自己的 Cloudflare 账号,并完全跑在 Cloudflare 免费层之上。

推荐理由

部署通过一行命令完成,数据也只存在用户自己的 Cloudflare 账号内,读者可以照搬这套架构在免费层上搭一个私有个人智能体。

正文 · AI 翻译

您的个人 AI 助手。您自己的云。

Talorys 是一款免费、开源的个人 AI 助手,完全运行在您自己的 Cloudflare 账户内。它可以与您对话,记住重要的事情,管理任务、笔记和项目,并按计划运行提醒和例程 —— 不需要任何由 Talorys 开发者运营的服务器、数据库或账户。

一个人。一个 Cloudflare 账户。一条命令。一个个人 AI 助手。

npx create-talorys@latest

1. Talorys 是什么

  • 私人助手 — 支持流式响应、Markdown 和工具活动指示的聊天。
  • 记忆 — 持久保存的个人事实和偏好,您可以查看、编辑和删除。每次对话只会将与当前问题最相关的记忆发送给模型。
  • 任务、笔记和项目 — 在界面和聊天中均可进行完整的增删改查(例如:「明天添加一个审查我的项目的任务」)。
  • 自动化 — 一次性或周期性的提醒、每日任务摘要以及可选的 AI 例程,统一通过应用内通知中心发送。它们由 Durable Object 闹钟触发,因此无需任何服务持续在线。
  • 专为单用户设计 — 无注册、无账户、无团队。安装程序会设置所有者密码。
  • 无 AI 也能工作 — 即使 Workers AI 不可用或免费额度用尽,任务、笔记、记忆和提醒仍可继续运行。

截图

带工具活动的聊天 任务
Chat Tasks
记忆(深色模式) 自动化
Memory Automations

Mobile   Login

2. 工作原理

Browser ──HTTPS──▶ Cloudflare Pages (React app + /api Pages Function)
                         │  service binding (no public URL)
                         ▼
                   Private Worker (Hono router)
                         │  getAgentByName("personal-agent")
                         ▼
                   TalorysAgent — Cloudflare Agents SDK Durable Object
                     ├─ SQLite: conversations, memories, tasks, notes, projects,
                     │          automations, sessions, settings, usage
                     ├─ Workers AI: @cf/zai-org/glm-4.7-flash (streaming + tool calling)
                     └─ Alarms: reminders and recurring schedules
  • 浏览器始终只与您的 *.pages.dev 站点通信。/api/* 请求会运行一个 Pages Function,并通过 service binding 将其转发到 agent Worker。
  • agent Worker 与 workers_dev: false 和 preview_urls: false 一起部署: 它没有公开的 URL。
  • 身份验证与授权均在 Worker 中完成,而非前端。
  • 聊天响应通过 Server-Sent Events 端到端流式传输。

更多细节:docs/architecture.md。

3. 使用的 Cloudflare 服务

服务 用途 免费套餐
Cloudflare Pages 前端 + Pages Function 是
Cloudflare Workers 私有 API Worker 是
Durable Objects(SQLite) 所有数据、调度闹钟 是
Workers AI 聊天模型(@cf/zai-org/glm-4.7-flash) 是,每日配额

Talorys 不会配置 R2、D1、KV、Vectorize、AI Search、Workflows 或任何付费服务。

4. 部署

npx create-talorys@latest

安装程序:

  1. 检查 Node.js(20.18+)并使用其捆绑的 Wrangler CLI(会自动检测任何全局安装的 wrangler/cf,但非必需)。
  2. 验证您的 Cloudflare 登录状态,或在您的浏览器中打开 Cloudflare 的授权页面。
  3. 让您选择一个账户(如果您有多个)和一个助手名称。
  4. 要求设置所有者密码(隐藏输入,会检查强度)。该密码在本地使用 PBKDF2-SHA256 哈希后,仅作为 Cloudflare 密钥存储。
  5. 生成一个 256 位的会话密钥和唯一的资源名称(talorys-<id>-agent、talorys-<id>-web)。
  6. 部署私有 Worker(创建其 SQLite Durable Object)、保存密钥、通过 service binding 创建并部署 Pages 项目。
  7. 不运行任何 AI 推理,验证线上部署情况(前端、身份验证端点、未认证拒绝、存储健康状态)。
  8. 输出 Cloudflare 返回的真实 https://….pages.dev URL。

它会写入一个 talorys/ 目录,其中包含 talorys.json(安装 ID、账户 ID、资源名称、URL —— 不含密钥)以及可部署的工件。 请妥善保管以便后续更新。

中断了? 在同一位置再次运行相同的命令。它会协调已有的资源:不会产生重复资源,如果密码已配置则不会重新提示密码,并且绝不会删除任何数据。

非交互式安装:TALORYS_OWNER_PASSWORD=... npx create-talorys@latest --yes --account-id <id> (若未登录则需设置 CLOUDFLARE_API_TOKEN)。

权限

浏览器登录使用 Wrangler 的标准 OAuth 流程 —— 无需 Global API Key。如果改用 API 令牌,则需要:

  • Account › Workers Scripts › Edit
  • Account › Cloudflare Pages › Edit
  • Account › Workers AI › Read
  • Account › Account Settings › Read
  • User › User Details › Read(可选;用于显示你的邮箱)

参见 docs/deployment.md。

5. 访问

打开安装程序打印的 URL,输入所有者密码,然后开始聊天。可从任意数量的设备登录 —— 它们都是同一个所有者。在设置 → 安全中管理会话。

忘记密码?在你的 talorys/ 目录中:

npx create-talorys@latest reset-password

这将替换密码密钥并登出所有设备。

6. 你的数据存放在哪里

所有数据都存储在一个由 SQLite 支持的 Durable Object(personal-agent)中,位于你的 Cloudflare 账户内。Talorys 没有遥测、分析、跟踪或广告代码,也不会向其开发者发送任何内容。

Cloudflare 会处理你的数据以提供其服务 —— 包括在每次提示中对聊天消息及所包含的相关记忆运行 Workers AI 推理。请查阅 Cloudflare 的隐私政策和 Workers AI 条款。

安全模型与威胁缓解措施:docs/security.md。

7. 哪些是免费的,哪些可能产生费用

Talorys 旨在适配Cloudflare Workers 免费套餐,自身不会启用付费功能。不过它并非「无限免费」:

  • 免费套餐有账户级别的配额(请求次数、Durable Object 使用量、每日 Workers AI Neuron 分配)。配额由 Cloudflare 设定,可能会变更。
  • 当 AI 分配耗尽时,聊天会显示明确的消息,并在每日重置后恢复。其他功能继续正常工作,你的数据不受影响。
  • 如果你的账户使用的是付费套餐,超出包含额度的使用量将由 Cloudflare 根据你的套餐计费。

内置保护措施(可在设置 → AI中调整):最大输出 tokens、最大上下文 tokens(较早的历史会被总结)、每次请求的最大工具调用和推理步骤数、每日最大 AI 请求数,以及每日最大定时 AI 运行次数。简单提醒和任务摘要不使用 AI。使用情况面板显示本地估算值,并链接到 Cloudflare 仪表板以查看准确的 Neuron 使用量。

8. 本地开发

要求:Node.js 20.18+。

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)。它会创建 apps/agent/.dev.vars 并设置本地密码(talorys-dev-password,可通过 TALORYS_DEV_PASSWORD 覆盖),并使用确定性模拟 AI 提供商,因此无需 Cloudflare 登录。状态持久化保存在 .wrangler/state 中。

其他脚本:npm run build、npm test、npm run test:e2e、npm run test:pack、npm run typecheck、npm run lint。参见 docs/development.md。

9. 备份你的数据

设置 → 隐私 → 下载备份 会生成 talorys-backup.json,包含对话、记忆、任务、笔记、项目、设置和自动化(不包括会话或凭据)。导入会验证文件并在一次事务中合并;重复导入同一份备份是无害的。

10. 更新

在你的 talorys/ 目录中:

npx create-talorys@latest update

这会将最新的 Worker 和前端重新部署到 同一资源。Durable Object 命名空间永远不会重新创建(迁移仅追加),所有者密码和会话会被保留,并且架构迁移会在首次请求时自动以事务方式运行。还提供:status 和 doctor。

11. 故障排除

问题 解决方法
安装程序中途停止 重新运行相同的命令即可继续。
"尚未通过其健康检查" 新的 pages.dev 站点可能需要几分钟时间。请重新运行。
权限错误 使用可以编辑 Workers 和 Pages 的账户,或具有上述权限的令牌。
聊天提示 AI 配额已用完 等待每日重置;或在设置 → AI 中启用演示模式。
登录失败后被锁定 等待 15 分钟,或使用 CLI 重置密码。

npx create-talorys@latest doctor 会自动检查所有内容。在 docs/troubleshooting.md 中了解更多信息。

仓库结构

apps/agent              Private Worker: Hono API, TalorysAgent, tools, SQLite repositories
apps/web                React + Vite app, Pages Function (functions/api/[[path]].ts)
packages/shared         Zod schemas, types, recurrence/DST logic, password hashing
packages/create-talorys The one-command installer (npm package)
tests/e2e               Playwright UI tests
tests/smoke             Optional real-account deployment test
docs/                   Architecture, deployment, development, security, troubleshooting

许可证

MIT

来源:Hacker News · github.com