安全
这个产品对你的机器和你的数据做了什么,写清楚,让你自己判断,而不是靠猜。
什么会离开你的机器
你的提示词,以及 agent 替你读的那些文件,去到你配置的那个接口,不去别处。 中间没有我们的网关。
如果那个接口就跑在你自己的机器上,什么都不会离开。
有两个例外,都在断网时安静失败,而且都不携带你输入的任何东西:
- 桌面端问它的更新地址有没有新版本
- 打开「模型」面板时,从 Hugging Face 拉一份热门模型列表
agent 能对你的机器做什么
两个设置,干不同的事。
沙箱决定它能做什么。在默认的 workspace-write 下,它可以写它工作目录里的任何
地方,别处写不了。读取在任何模式下都不受限。
审批决定它做之前必须先问什么,从「每一条不熟悉的命令」到「什么都不问」。
要小心的那个组合是 danger-full-access 配 never:一个任意执行命令、什么都不显示、
什么都不问的 agent。有些目录里这是对的。你的家目录不是。
细节在沙箱与审批。
一次后台运行可以从哪里开始
目录不是工作区、不是部门、也不是你按名字授权过的地方的运行,会被扣住而不是启动。
这件事之所以存在,是因为一个在部门出现之前建的定时任务带着家目录,已经跑了四十二次,
每一次都能够到 .ssh 和 Documents,而没有人被问过。
把审批设成 never 会连这个一起关掉 —— 那正是那个设置的含义。
密钥
API 密钥不放在 config.toml 里,因为那个文件会被分享、会被粘进 issue。它们写在
你其他机密所在的地方,保存之后不会再显示出来。
连接器的密钥同理:你说出那个服务需要哪些环境变量,值和服务的配置分开存放。
网关
桌面端和网页界面都跟一个本地网关通信。它:
- 默认只绑定回环地址,除非明确要求,否则不会意外暴露到网络上
- 每个连接都必须带 token,每次运行生成、只打印一次,这样另一个本机用户 —— 或者你浏览器里的一个网页 —— 没法驱动它
这个网关的客户端可以让 agent 在承载它的机器上执行命令。 这就是它的全部用途, 也正是 token 存在的原因。
它是单用户设计的。 服务多个互不信任的人需要按用户隔离的沙箱,那不在范围内。
配对的手机
配对会把一个 token 交给设备,让它能驱动这台机器上的 agent。那个地址只显示一次。 只配对你自己的设备,不认识的一律撤销。
安装包没有签名
没有 Apple 或微软的证书,所以你的操作系统没法判断是谁做的,它就这么说了。 那个警告是正确的,你应该把它当成正确的来读。
如果你不想信我们的话,源码在这里,
一条 cargo build 的事。
报告问题
安全 bug 不要开公开 issue。 用 GitHub 的 私密通报表单, 它能送到维护者手里而不公开任何东西。
最值得看的地方就是这一页上的那些:sandbox 策略、审批路径、后台运行的目录检查, 以及网关的令牌。
请不要附上你的密钥,或者含有密钥的日志。