安全

您要求我们保存您的代理所做的一切的工作记忆。以下是保护它的具体措施。

brethof-brain · 最后更新:2026年10月5日

每位客户一个数据库

您的记忆并非共享表中带客户列的一行。每位客户都有自己独立的数据库。 自有数据库. 没有共享表,也没有可能出错的跨客户查询,因为边界在于数据库本身,而非需要有人记得去写的过滤条件。

每次发布时都会从外部对这一边界进行测试:使用两个真实账户,同时检查所有会返回数据的接口,以确保双方无法互相查看对方的数据。只有通过这些测试,版本才能被发布。

密钥,以及谁可以使用它们

我们无法向您展示您自己的密钥。

API 密钥在创建时仅向您显示一次。我们存储的是 SHA-256 哈希值——因此,即使有人获得我们数据库的副本,也无法得到可用的密钥;无论是我们还是攻击者都无法读回您的密钥。撤销密钥后,约一分钟内会在服务上生效,并立即在提供您记忆的机器上生效。

密钥可以缩小范围。

密钥不必无所不能。密钥可以 按项目划分范围 — 可读写、只读,或完全不可见——这正是适用于承包商、CI任务,或是那些无需读取您其他工作的专用代理的合适形式。如果密钥的范围已损坏或无法读取,那么它将被拒绝访问一切内容,而非被授予所有权限。

双重身份验证

您的账户可以在登录时要求第二重验证,启用后每次登录都会强制执行——在输入密码之后,无论使用 GitHub 还是 Google 登录都一样——而不仅仅是一个设置选项。

创建 API 密钥需要受保护的登录方式:在您的账户上启用双因素认证,或通过 GitHub 或 Google 登录。仅凭密码永远无法创建密钥——即使账户同时关联了 GitHub 或 Google 也不行,因为关键在于您本次登录所使用的方式。

每一个破坏性操作——删除项目、修订历史、删除账户、恢复备份——都会再次确认你的身份:如有密码则需输入密码,以及你的双因素验证码;若未启用双因素验证,则需要最近十分钟内的 GitHub 或 Google 登录。导出数据则从不需要这些。

使用 GitHub 或 Google 登录

通过 GitHub 或 Google 登录采用标准的带 PKCE 授权码流程,并与发起登录的浏览器绑定。我们仅接收您的电子邮箱地址、您的姓名以及您在该服务上的账户 ID——除此之外不接收任何信息。我们不保存 GitHub 或 Google 的访问令牌,也无法读取您的代码仓库、邮件或文件。只有当该服务已验证电子邮箱地址且我们也已验证,或该账户尚未设置密码时,GitHub 或 Google 账户才能关联到现有的 Brethof 账户。

免受自身代理的伤害

这是大多数服务未曾考虑的部分。您的记忆会持续被AI代理操作——而代理可能犯错、收到隐藏在待读内容中的恶意指令,或在人类察觉前数小时删除错误内容。

因此,原始对话存档被刻意置于他们无法触及的范围。任何代理都无法删除单条消息。任何代理都完全无法触及最近三个月的记录。更早的历史只能按项目批量删除。删除整个项目——唯一能整体触及存档的操作——任何级别的代理均无权执行;该操作在账户面板中进行,由人工输入项目名称。

这之所以重要,原因很简单:精心整理的记忆是衍生品,而档案才是原始资料。任何因错误编辑而丢失的内容都可以从历史记录中重新恢复,但历史本身却无法被重建。

加密、备份以及您的数据存放位置

您的内存为每个客户单独设置一个容器——拥有独立的数据库、文件系统以及Linux用户账户,没有任何共享内容。如果您选择本地模式,该容器将在您的机器上运行:您的内存数据由您自己保管,我们不会存储任何数据。通过我们的枢纽——位于瑞士苏黎世的加密计算实例——传输的只是正在处理的内容:每次数据交换,以及当需要做出判断或生成会话摘要时您的容器所发送的内存数据片段。隐私政策的第4部分详细列出了这些内容。所有数据都不会被保留。

您机器上的软件是什么

容器承载您的记忆、对记忆的搜索,以及保持两者正确运行的机制。它不包含任何提示词,不访问任何 AI 模型,也没有任何将其指向某个模型的设置。其中没有任何东西可以评判您的记忆,也没有任何可供配置以让它尝试评判的选项。每一项评判都是通过您的容器主动向外发起并完成身份验证的连接,从我们的中心请求获得的——我们从不主动拨入。

正是那种结构使得流量可以被审计,而你的任务就是对它进行审计:数据交换量上升,上方的数值也会上升,而命令和行数据则又会下降。客户端处于source-available状态——需要读取它的每一行内容。

有一件事完全保留在您这一侧:检索您自己的记忆——那些记录、全部历史以及标注日期的决策记录——都只是在您自己的容器内部对自身的数据表进行简单读取操作。这一过程无需依赖我们的中心系统,也不会发送任何内容供判定。

在托管架构下,数据在传输过程中会通过TLS进行加密;而在静态状态下,容器的整个文件系统——所有的对话、所有记录以及数据库本身——都会被用从只有您才掌握的密码短语派生出的密钥进行加密。我们既看不到这个密钥,也不会存储它:它在会话开始时传输过来,解锁您的记忆,而在您离开后,记忆又会自动重新上锁。对于包括我们在内的所有人而言,上锁的容器都只是密文;被盗的磁盘、泄露的镜像或已停用的硬盘都毫无意义,同样,您不在场时我们的根权限也毫无作用。

删除操作属于加密处理。

删除您的数据并非在存储中碰运气的清理操作:您的加密容器会被整体销毁。由于删除密文无需密钥,因此即使您忘记了密码短语,这一操作依然可行。剩下的备份文件在没有密钥的情况下也无法被读取,而且会在最多30天内随着备份轮换周期被删除。我们没有任何副本可以恢复数据。

加密无法覆盖的内容

明确的界限。静态加密指的正是如此——仅限于静态状态:当记忆为当前会话而解锁时,容器必然会以明文形式处理数据以满足搜索需求,因此“我们绝不会查看您的数据”既是我们的政策也是访问控制措施,并非数学上的不可能;真正的数学保障则体现在容器上锁之时。我们宁愿明确告知您界限所在,也不愿让您以为根本不存在界限。

托管容器的备份实际上就是对已加密的文件系统本身的拉取——这些数据在离开机器之前就已经是密文,没有您的密码短语就无法读取。这些备份以每日和每周副本的形式在德国进行短期滚动存储。当某个账户被删除时,其对应的备份也会被一并删除,而剩余的副本则会在30天内被清除。

托管记忆的存储、索引及搜索均在欧盟境内完成——我们的服务器和备份都位于德国。搜索嵌入向量是在我们自己的机器上计算的,且不会离开这些机器。本地记忆则完全不会到达其中任何环节:它存在于您的磁盘上,受您为该磁盘设定的各种保护措施所保护。

唯一的例外是AI整理。每段正在被整理的文本都会在位于瑞士苏黎世的安全计算实例上进行处理——欧盟认为该国的数据保护水平足够——之后,一次模型调用会发送到在美国和欧洲托管该模型的Ollama,在那里处理后再返回。Ollama公布的条款表明,输入和输出仅会被临时处理,绝不会被用于模型训练——这是他们以自身表述做出的承诺,我们在此引用的是他们的声明而非我们的保证。没有其他任何数据会离开欧盟。如果您希望整理过程也完全不离开欧盟,可通过专用部署方案实现——可向我们咨询。所有子处理器的用途及位置均列在隐私政策中。

我们的运营方式

默认采用最小权限原则。

该服务在容器内以非特权用户身份运行,绝不使用root权限。其数据库角色不是超级用户,无法读取主机上的文件。这些设置会在每次发布前自动验证,而非仅凭假设。

内部端点在边缘处被锁定。

用于创建账户和验证密钥的端点只能通过我们自己的控制平面来访问;在请求到达之前,会在网络边缘进行身份验证,之后还会通过共享的密钥再次进行验证。是两道安全机制,而非一道。

故障时默认拒绝

当某些信息缺失或无法读取时,该服务会直接拒绝,而非猜测。无法验证的密钥会被拒绝。损坏的权限不会授予任何权限。缺失的Webhook签名密钥会拒绝所有事件,而非信任到达的数据。这是一种刻意的姿态:记忆服务的故障模式应该是“无答案”,而非“错误客户的答案”。

每个版本都经过外部验证

在任何版本发布之前,自动化检查会从全新账户开始,通过真实网络连接走完整个产品流程:注册、签发和撤销密钥、存储和调取记忆、两个活跃账户之间的隔离、数据导出以及彻底删除。要么完全通过,要么版本不发布。

报告安全问题

如果您认为自己发现了漏洞,请在告知他人之前先与我们联系,我们会与您一起处理。联系方式已公布在 /.well-known/security.txt 或写信至 hello@Brethof.ai. 我们不会威胁善意报告的研究人员。

更深层次的需求——如数据处理协议、在您选择的地区进行专属部署,或将内容整理保持在欧盟境内——我们都会直接处理。请提出您的需求。

产品上市时再听吧

最新作品、真实评测,还有偶尔的深度分析。无垃圾信息,一键即可取消订阅。

我们打造的一切

外部: YouTube · GitHub