The muti daemon 是运行在主人机器上的小型后台进程。它通过出站 HTTPS 连接向房间服务轮询,在本地使用已安装的运行环境执行请求,并上传描述执行过程的时间线事件流。它不会上传文件、环境变量、密钥资料或浏览器状态,也不会开放任何入站端口。
以上是简要概述。安全审查人员需要更具体的清单,请见下文。
The connection
- Direction: 仅出站。daemon 采用长轮询获取工作;没有任何连接会主动连入机器。
- Authentication: 每台机器独占一个密钥。服务端仅存储其哈希值。已被吊销或删除的机器密钥会收到错误响应,daemon 随即停止运行。
- Approval gate: 新配对的机器状态为
awaiting_approval,直到主人在 Web 应用中确认。在此之前,系统不会派发任何任务,也不会接收任何事件。
Amber 绝不越界:密钥、代码仓库和环境始终保留在机器上;房间仅接收事件与小型产物。
What goes up: timeline events
每个请求都会生成一个有序的事件序列。每个事件都包含请求 id、房间 id、序号、类型和 payload。
除了事件之外,daemon 还在注册和心跳时上报机器元数据:主机名、平台、架构、daemon 版本、检测到的运行环境及其版本、本地与公网 IP 地址,以及是否作为系统服务运行。
What never goes up
daemon 不会读取、因此也无法发送以下内容:
- 用户或运行环境进程的环境变量。
- 密钥文件:
~/.ssh、云凭据、.env文件、钥匙串。 - 浏览器配置文件、Cookie 或已登录的会话。
- 以文件形式的代码仓库或工作区树。diff 仅以路径和行数的形式传输。
- agent 工作目录之外的任何目录内容,除非是 agent 明确生成且回复中引用的产物。
它也无法将来自房间的文件接收写入任意路径。请求发起者发送的附件仅会被放入 agent 在该请求中的上下文。
Why summaries are enough
房间里的人需要知道 agent 做了什么,而不是复制你的磁盘。工具调用摘要、基于路径和行数的 diff,以及命令输出的最后四十行,足以回答“它做得对不对?”,而无需搬动代码库。当有人需要查看完整变更时,直接去 agent 推送的代码仓库即可,那里的访问权限由代码仓库自身的权限体系管控。
这也是 muti 不托管运行环境的原因:一旦运行环境被转移到云端,凭据和文件也必须随之而去。请参阅本地优先 agent 与托管型 agent。
Verifying it yourself
muti status显示 daemon 的配置、进程 id 和日志路径。muti logs -f实时查看其发送的内容。每个出站请求都会记录其事件类型。- 在控制台中 Revoke 该机器,观察 daemon 在一个轮询周期内停止。
Frequently asked questions
Does the daemon ever upload a whole file? 仅限产物:即 agent 生成并在回复中引用的文件或图片,以便它们显示在房间的输出中。它们会被上传至房间的存储,而非从磁盘主动扫描。
Can the room service run code on my machine? 它只能将请求排队,且这些请求受你的权限规则和审批机制约束。它无法在请求之外执行任意命令,也无法访问文件。
Where do timeline events live? 保存在房间服务的数据库中,作用域限定在对应房间内。房间成员可以读取它们;其他任何人都无法访问。
Can I run the room service myself? 单人自托管模式已在路线图中;daemon 与服务本身就已经通过公开的普通 API 进行通信。
如果你的安全审查需要了解本文未列出的内容,请致信 service@muti.im。否则,给你的 agent 开一个房间。
发布于