Talorys 开源:可一键部署到 Cloudflare 免费层的自托管个人 AI 智能体
Talorys – A self-hosted personal AI agent on Cloudflare's free tier
Talorys 是一个开源个人 AI 智能体,可通过 npx create-talorys@latest 一行命令部署到用户自己的 Cloudflare 账号,并完全跑在 Cloudflare 免费层之上。
部署通过一行命令完成,数据也只存在用户自己的 Cloudflare 账号内,读者可以照搬这套架构在免费层上搭一个私有个人智能体。
您的个人 AI 助手。您自己的云。
Talorys 是一款免费、开源的个人 AI 助手,完全运行在您自己的 Cloudflare 账户内。它可以与您对话,记住重要的事情,管理任务、笔记和项目,并按计划运行提醒和例程 —— 不需要任何由 Talorys 开发者运营的服务器、数据库或账户。
一个人。一个 Cloudflare 账户。一条命令。一个个人 AI 助手。
npx create-talorys@latest
1. Talorys 是什么
- 私人助手 — 支持流式响应、Markdown 和工具活动指示的聊天。
- 记忆 — 持久保存的个人事实和偏好,您可以查看、编辑和删除。每次对话只会将与当前问题最相关的记忆发送给模型。
- 任务、笔记和项目 — 在界面和聊天中均可进行完整的增删改查(例如:「明天添加一个审查我的项目的任务」)。
- 自动化 — 一次性或周期性的提醒、每日任务摘要以及可选的 AI 例程,统一通过应用内通知中心发送。它们由 Durable Object 闹钟触发,因此无需任何服务持续在线。
- 专为单用户设计 — 无注册、无账户、无团队。安装程序会设置所有者密码。
- 无 AI 也能工作 — 即使 Workers AI 不可用或免费额度用尽,任务、笔记、记忆和提醒仍可继续运行。
截图
| 带工具活动的聊天 | 任务 |
|---|---|
![]() |
![]() |
| 记忆(深色模式) | 自动化 |
![]() |
![]() |
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
安装程序:
- 检查 Node.js(20.18+)并使用其捆绑的 Wrangler CLI(会自动检测任何全局安装的
wrangler/cf,但非必需)。 - 验证您的 Cloudflare 登录状态,或在您的浏览器中打开 Cloudflare 的授权页面。
- 让您选择一个账户(如果您有多个)和一个助手名称。
- 要求设置所有者密码(隐藏输入,会检查强度)。该密码在本地使用 PBKDF2-SHA256 哈希后,仅作为 Cloudflare 密钥存储。
- 生成一个 256 位的会话密钥和唯一的资源名称(
talorys-<id>-agent、talorys-<id>-web)。 - 部署私有 Worker(创建其 SQLite Durable Object)、保存密钥、通过 service binding 创建并部署 Pages 项目。
- 不运行任何 AI 推理,验证线上部署情况(前端、身份验证端点、未认证拒绝、存储健康状态)。
- 输出 Cloudflare 返回的真实
https://….pages.devURL。
它会写入一个 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(可选;用于显示你的邮箱)
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 devnpm 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
许可证
来源:Hacker News · github.com





