跳到主要内容

安全

这个产品对你的机器和你的数据做了什么,写清楚,让你自己判断,而不是靠猜

什么会离开你的机器

你的提示词,以及 agent 替你读的那些文件,去到你配置的那个接口,不去别处。 中间没有我们的网关。

如果那个接口就跑在你自己的机器上,什么都不会离开。

有两个例外,都在断网时安静失败,而且都不携带你输入的任何东西:

  • 桌面端问它的更新地址有没有新版本
  • 打开「模型」面板时,从 Hugging Face 拉一份热门模型列表

agent 能对你的机器做什么

两个设置,干不同的事。

沙箱决定它做什么。在默认的 workspace-write 下,它可以写它工作目录里的任何 地方,别处写不了读取在任何模式下都不受限。

审批决定它做之前必须先问什么,从「每一条不熟悉的命令」到「什么都不问」。

要小心的那个组合danger-full-accessnever:一个任意执行命令、什么都不显示、 什么都不问的 agent。有些目录里这是对的。你的家目录不是。

细节在沙箱与审批

一次后台运行可以从哪里开始

目录不是工作区、不是部门、也不是你按名字授权过的地方的运行,会被扣住而不是启动。

这件事之所以存在,是因为一个在部门出现之前建的定时任务带着家目录,已经跑了四十二次, 每一次都能够到 .sshDocuments,而没有人被问过

把审批设成 never 会连这个一起关掉 —— 那正是那个设置的含义

密钥

API 密钥不放在 config.toml,因为那个文件会被分享、会被粘进 issue。它们写在 你其他机密所在的地方,保存之后不会再显示出来

连接器的密钥同理:你说出那个服务需要哪些环境变量,值和服务的配置分开存放

网关

桌面端和网页界面都跟一个本地网关通信。它:

  • 默认只绑定回环地址,除非明确要求,否则不会意外暴露到网络上
  • 每个连接都必须带 token,每次运行生成、只打印一次,这样另一个本机用户 —— 或者你浏览器里的一个网页 —— 没法驱动它

这个网关的客户端可以让 agent 在承载它的机器上执行命令。 这就是它的全部用途, 也正是 token 存在的原因

它是单用户设计的。 服务多个互不信任的人需要按用户隔离的沙箱,那不在范围内。

配对的手机

配对会把一个 token 交给设备,让它能驱动这台机器上的 agent。那个地址只显示一次只配对你自己的设备,不认识的一律撤销。

安装包没有签名

没有 Apple 或微软的证书,所以你的操作系统没法判断是谁做的,它就这么说了那个警告是正确的,你应该把它当成正确的来读。

如果你不想信我们的话,源码在这里, 一条 cargo build 的事。

报告问题

安全 bug 不要开公开 issue。 用 GitHub 的 私密通报表单, 它能送到维护者手里而不公开任何东西。

最值得看的地方就是这一页上的那些:sandbox 策略、审批路径、后台运行的目录检查, 以及网关的令牌。

请不要附上你的密钥,或者含有密钥的日志。