Frona - 自托管个人AI助手

Reddit r/AI_Agents 产品

摘要

Frona 是一款全新发布的、基于 Rust 构建的自托管个人 AI 助手,它通过沙盒环境、统一策略引擎以及基于保险箱的凭据管理,着重强调安全性。

嘿,自从大型语言模型(LLM)的工具调用成为常态以来,主流模式一直是:先发布一个能够执行代码、浏览网页和调用 API 的 AI 助手,至于安全问题则留待以后解决。Frona 的诞生正是为了对抗这种模式。 Frona 是一款个人 AI 助手。你可以创建自主代理(autonomous agents),它们在沙箱环境中运行,对你的文件、网络和凭据拥有受控的访问权限。这些代理可以浏览网页、运行代码、构建应用程序、拨打电话、连接消息通道、互相委派任务,并在对话间保持上下文记忆。你只需给出任务,它们就会自行找出完成方法。你可以将其部署在自己的基础设施上。 该平台从底层开始就优先考虑安全性,引擎由 Rust 编写,因此速度快、轻量级,且所有操作均在单进程中运行。现在已正式发布。我认为这个社区会欣赏这种设计理念,因为它是为自建(self-hosting)用户打造的。这是一个成品,而非让你花一个周末去组装的工具包。 每一次工具调用、每条通道消息以及每个沙箱决策都经过同一个策略引擎处理。凭据由保险库支持,沙箱按主体(principal)隔离,内置单点登录(SSO),MCP 服务器作为一等公民存在。你无需编写认证胶水代码、加固容器、手动集成保险库,或在凌晨两点用“胶带”把通道粘到代理上。所有功能在第一天就已就绪。 你可以把它看作是一个更用户友好的 OpenClaw 或 Hermes Agent,但区别在于它从第一天起就内置了安全性,而不是事后修补,更不是把问题推给用户去解决。如果你想知道详细对比,请查看评论区的链接(包含与 OpenClaw 和 Hermes Agent 的全面比较)。以下是简短版的核心差异: **无需为每个代理使用容器的沙箱** OpenClaw 和 Hermes 在沙箱化时都依赖 Docker,这意味着每个新代理(有时是每个新 MCP 服务器)都会成为你需要管理的一段容器基础设施。Frona 运行在单个 Rust 进程中,为每项工作生成沙箱化的子进程:每个 CLI 工具调用一个、每个 MCP 服务器一个、每个部署的应用一个,并针对每个主体应用系统调用级别的过滤。拥有 10 个代理和 5 个 MCP 服务器时,你只需要一个引擎和几个沙箱化子进程,而不是 10 个容器。且沙箱默认开启。如果沙箱无法初始化,引擎将拒绝启动。 **统一的策略引擎** 工具访问权限、文件系统规则、网络目的地、端口绑定、通道授权、信号处理等,全部使用同一种策略语言编写。“此 MCP 服务器只能访问 `api.github.com:443`”、“此通道仅接受来自这些配对号码的入站消息”、“此代理仅在系统代理委派时才能使用 Shell 工具”。这些都是一行规则,无需自定义代码。每个代理的网络访问可以是完全开放/限制特定主机/完全离线,文件路径和资源限制也是如此。 **入站消息的双 LLM 模式** 来自外部发送者的入站通道消息属于不可信输入。这正是提示注入(prompt injection)容易得手的地方。Frona 的分发器实现了 Simon Willison 的双 LLM 模式:一个隔离的、工具注册表被精简的 LLM 处理不可信内容(它只能标记并结束任务,无法回复,也无通用工具),而特权 LLM 仅能看到经策略审核的内容。因此,恶意短信无法欺骗响应代理泄露数据或运行工具。 **凭据由保险库支持,绝不存入聊天** 无需将 API 密钥粘贴到提示词中并希望模型会忘记它们(它们不会)。代理请求凭据时,你会收到通知,显示它们想要什么以及原因,你可以设定时间限制(一次性、几小时、几天或永久)进行批准。本地凭据在静止状态下使用 AES-256-GCM 加密。或者接入你现有的保险库:1Password、Bitwarden(包括自建版)、HashiCorp Vault、KeePass、Keeper。沙箱化进程获得仅针对该进程及其生命周期范围内的临时令牌。即使令牌泄露,影响范围也是有限的。 **MCP 支持,但更高效地使用 Token** MCP 服务器作为一等公民存在,每个服务器在各自的沙箱中运行,拥有各自的策略。默认的*桥接模式*将所有 MCP 服务器暴露给 LLM 作为单个 CLI 工具,而不是单独广告每个 MCP 工具的 Schema。对于一个拥有 5 个 MCP 服务器和 60 多个工具的代理来说,每轮对话可节省数千个 Token。上下文用于你的任务,而不是模型尚未需要的 JSON Schema。 **持久化浏览器会话** 代理获得命名浏览器配置文件,可在对话间保留 Cookie、本地存储和会话。登录一次,保持登录状态。遇到验证码或双重身份验证(2FA)时,它会暂停,提供调试器链接供你处理,完成后自动恢复。 **其他值得提及的功能** * **自带 LLM(BYO LLM):** 支持 Ollama、Anthropic、OpenAI、Groq、DeepSeek、Gemini 以及十多种其他模型 * **简易部署:** 通过 Docker Compose 仅需 3 个容器:Frona、Browserless(浏览器自动化)、SearXNG(私有网页搜索) * **多用户与 SSO:** 支持 Google、Okta、Keycloak、Authentik 及任何 OIDC 提供商 * **应用程序:** 要求代理为你构建工具/仪表板/集成,批准后,Frona 会在相同的沙箱和策略机制保护下立即提供服务 * **记忆与技能:** 跨对话保留的事实,以及可按代理范围分发的可复用指令包 * **信号(Signals):** 代理可以暂停对话,等待匹配的入站消息(验证码、回复、特定类别的消息),并在消息到达时自动恢复 * **通道:** 目前支持 Web UI、Telegram、SMS;更多通道即将推出 * **电话呼叫:** 通过 Twilio 进行出站语音通话 * **API 访问:** 个人访问令牌(Personal Access Tokens)用于你自己的自动化流程 * **Rust 编写:** 占用资源少,流式传输快。 obligatory Rust mention :) 目前仍在打磨细节。下一步计划:提供一个插件框架,让你在不触碰核心代码的情况下扩展平台,以及除了 Telegram 和 SMS 之外的更多通道适配器。 非常希望能听到实际自建工具的用户反馈。你们希望首先连接什么? 如果你无法访问所有的前沿模型,Haiku 4.5 是大多数任务的坚实选择。价格便宜,且在给予适当的工具反馈时,能力令人惊喜。
查看原文

相似文章

Flunkey

Product Hunt

Flunkey 为 Windows 引入语音优先 AI 层,目前处于测试阶段。

本地优先的个人AI助手(Telegram)(征集功能创意)

Reddit r/AI_Agents

作者正在开发ClawLite,一个开源、本地优先的个人AI助手,通过Ollama在你自己的机器上运行,并通过Telegram与你交互。它具备多智能体研究(含来源交叉核对)、带Markdown导出的分层记忆、默认拒绝的治理机制,以及轻量级Windows安装程序。作者正在向社区征集功能创意。