Skip to content

1.5 我的沙箱(My Sandbox)与安装

沙箱让 AI 在你自己的电脑上隔离运行 — 读你的本地文件、跑命令、操作浏览器,但全程受权限闸门保护,你能看到、能否决、能审计。

进入路径:左侧主导航 → 沙箱(/agent-system/sandboxes)。页面 Tab 为 我的沙箱 / 我的 MCP / 专用沙箱(管理员还能看到「全部」「平台审计」「AI 决策审计」「配置」)。本章主要讲「我的沙箱」Tab。

🔒 权限模型:沙箱跑在你电脑上,以你的身份运行。AI 能做的事 = 你允许它做的事。默认权限模式是 prompt(每次访问敏感路径时弹原生确认),后续可在托盘里改成 strict(只允许工作目录)。

📎 AI 把沙箱文件发给你:AI 在沙箱里生成的文件(报表、PDF、图片等)要发回到对话里,靠 MEDIA: 标签推送。如果它说"已发送"你却没收到,提醒它「用 MEDIA 标签发我」即可。详见 1.4 应用对话 — 让 AI 把文件发给你


1.5.1 我的沙箱页 [U]

截图:我的沙箱页

「我的沙箱」是单槽位 UI——每个用户至多一个用户型沙箱。

没有沙箱时

显示空状态卡片,中间一个 「添加我的电脑」 按钮。点击后弹出安装对话框(注意:没有单独的「安装」Tab,安装就是这个对话框)。

已注册沙箱时

  • 当前沙箱状态卡片:
    • 状态徽章:等待上线 / 在线 / 离线 / 已撤销
    • 设备名称、操作系统、最后心跳时间
    • 连接 URL(隐藏部分,有复制按钮)
  • 操作按钮:
    • 刷新状态 — 立即拉一次最新状态
    • 调试 — 在线沙箱可打开调试对话框(终端 / 文件操作,详见 1.5.8 调试在线沙箱)
    • 解绑 — 二次确认后软删除沙箱,本机守护进程下次心跳后自动停止

1.5.2 安装流程 [U]

Step 1:打开安装对话框

  1. 点击「添加我的电脑」按钮(空态)
  2. 弹出安装对话框,里面有:
    • 平台切换 Tab:macOS / LinuxWindows
    • 对应平台的一行安装命令(右侧有复制按钮)
    • 倒计时(注册票据剩余有效期)

⚠️ Enrollment JWT 有效期 10 分钟,过期后需重新生成。对话框里没有二维码,直接复制命令即可。

Step 2(可选):用公开安装页给别人

如果要让别人/另一台电脑安装,可把公开安装页短链发出去:

https://<sira-host>/sandbox-install?token=<enrollment_jwt>

截图:沙箱安装公开页

这个页面不需要 Sira 登录,只验 JWT 签名;显示一行安装命令(可复制)和剩余有效期,没有二维码

Step 3:执行安装命令

macOS / Linux:

bash
curl -fsSL https://<sira-host>/api/agent-system/sandboxes/install/sandrpod-agent.sh \
  | SIRA_ENROLL='<jwt>' bash

Windows (PowerShell):

powershell
iwr -UseBasicParsing https://<sira-host>/api/agent-system/sandboxes/install/sandrpod-agent.ps1 | iex; Install-SiraSandbox -EnrollToken '<jwt>'

执行后:

  1. 下载 sandrpod-agent + sandrpod-tray 二进制
  2. 注册为系统服务(macOS LaunchAgent / Linux systemd-user / Windows NSSM)
  3. 把长期 token 存到系统钥匙串(Keychain / Secret Service / DPAPI)
  4. 启动 agent,通过 WebSocket 反向通道连接 sandrpod-server
  5. 启动 tray 图标(系统托盘 / 状态栏)

Step 4:确认连接成功

回到 Sira 「我的沙箱」页(可点「刷新状态」):

  • 状态从 等待上线 变为 在线
  • 显示设备名称(主机名)、OS、心跳时间
  • 安装页/对话框自动检测到连接成功,显示绿色成功提示

💡 不需要管理员权限。整个安装过程以当前用户身份完成。


1.5.3 沙箱托盘(本机操作)

安装后,系统托盘(macOS 状态栏右上 / Windows 状态栏右下)会出现 Sira 图标。

截图:沙箱托盘菜单

托盘菜单常用项

行为
状态显示连接状态、心跳时间
打开权限设置在浏览器打开本地 HTTP 设置页(127.0.0.1:<random>)
暂停暂时停止响应 AI 请求(不卸载)
恢复重新启用
查看日志打开本地日志文件
退出完全停止 agent(下次开机不自动启动直到手动启)

本地权限设置页

通过托盘进入。可以:

  • 查看 / 修改权限模式:off / prompt(默认) / strict
  • 查看已授权路径列表
  • 添加 / 移除路径白名单
  • 查看默认硬锁路径(如 ~/.ssh, ~/.aws, 浏览器 profile 等,默认拒绝)
  • 解锁某条硬锁(需 CLI 命令,且有警告)

1.5.4 AI 请求路径权限闸门

当 AI 第一次想读 ~/Desktop/customers.xlsx,会怎么样?

取决于当前权限模式:

模式行为
off只挡系统硬锁路径,其他默认放行(不推荐)
prompt(默认)工作目录(~/.sira-sandbox/)内静默允许;其他路径弹原生系统对话框询问:允许 1 次 / 总是允许 / 拒绝
strict工作目录外直接拒绝,无对话框

对话框形态(原生):

  • macOS:osascript 弹窗
  • Linux:zenity 弹窗
  • Windows:WinForms MessageBox

权限决策(允许/拒绝/总是允许)会持久化~/.sandrpod/permissions.json,下次同路径不再询问。


1.5.5 决策审计(本机日志)

每次 AI 在沙箱里做出路径访问 / 命令执行 / PTY 启动等决策,都会写到本地:

~/.sandrpod/audit/active.log

格式是 NDJSON(每行一个 JSON),8MiB 自动滚动。

agent 每 30 秒批量上传到 Sira 后端,管理员在 沙箱管理-AI 决策审计 可以看到聚合视图。

💡 这是个事后审查机制 — 不是阻断,是记录。被拒绝的决策(deny)会被标红高亮,方便事后定位 AI "想干但没干成"的行为。


1.5.6 我的 MCP

「我的 MCP」Tab 让 AI 在任一渠道找到你时,调用你电脑上的 MCP 工具(GitHub / Notion / 本地文件等),凭据全程留在你电脑上。

  • 顶部状态条:在线 / 部分在线 / 离线 / 未配置
  • 每个 MCP server 一张卡片:运行状态(运行中 / 启动中 / 失败 / 重启中 / 已停)+ 暴露的工具数
  • 「立即刷新」按钮:不等 30 秒心跳,立刻拉一次

使用前提:在已注册的沙箱电脑上写一份 ~/.sandrpod/mcp.json(声明各 MCP server + 你的个人凭据),sandrpod 守护进程会自动加载。

完整写法、状态含义、排错见 个人 MCP:员工指南


1.5.7 专用沙箱(物理机引导安装)

「专用沙箱」Tab 列出企业共享的沙箱(管理员创建)。其中一类是物理机(agent 直连) 类型:

  • 管理员创建该类型沙箱后,会弹出引导安装对话框(生成绑定票据 + 一行安装命令)
  • 未绑定的专用沙箱,卡片上会有「引导安装」入口,点开后同样是绑定票据 + 安装命令

这套是 create-first / bind-later 流程:先在平台建好沙箱条目,再在目标物理机上跑安装命令完成绑定。


1.5.8 调试在线沙箱

在线的沙箱,「我的沙箱」卡片上有「调试」按钮。点开后是一个调试对话框,可以:

  • 打开终端直接跑命令
  • 文件操作(浏览 / 读写工作目录)

调试动作同样受权限网关约束,并写入 AI 决策审计。


1.5.9 卸载沙箱

两种卸载方式,效果相同:

方式 1:Sira 平台触发

  1. 我的沙箱页 → 点「解绑」
  2. 二次确认 → 沙箱标记为已撤销
  3. 本机守护进程下次心跳时收到信号,自动停止服务并清理

方式 2:本机手动

bash
# macOS / Linux
~/.sira/bin/sira-sandbox-uninstall
powershell
# Windows (PowerShell)
Uninstall-SiraSandbox

执行后:停止服务、删除二进制、从钥匙串撤销 token、回调 Sira 把沙箱标为已撤销。

会被保留的(默认):工作目录里的文件和审计日志归档。工作目录位置:

OS工作目录
macOS / Linux~/.sira-sandbox/
Windows%USERPROFILE%\.sira-sandbox\

需要彻底清理就手动删除该目录。


1.5.10 常见问题

Q1:安装命令运行后看到"command not found"?

确认 curl / iwr 可访问。企业网络可能需要配置代理:

bash
export HTTPS_PROXY=http://proxy.company.com:8080
curl -fsSL ... | ...

Q2:状态一直显示"等待上线",但本机说已经装好?

可能性:

  1. 安装命令里的 JWT 已过期 → 回 Sira 重新点「添加我的电脑」生成新命令
  2. 本机网络不通 sandrpod-server → 联系管理员检查 企业配置
  3. agent 启动了但 token 错误 → 看本机 ~/.sira-sandbox/ 下的日志

Q3:权限对话框一闪而过没看清?

权限对话框是原生系统弹窗,在 macOS 上可能被其他窗口遮挡。打开托盘菜单 → 「打开权限设置」可以看到完整的决策历史。

Q4:我能把沙箱装在共享服务器上吗?

不建议。沙箱设计上是一人一沙箱,装在共享机上会导致:

  • 多个用户的 AI 共用同一台机器的文件 / 凭证
  • 权限闸门无法区分调用方
  • 审计无法追责到具体用户

如果团队需要共享沙箱,使用专用沙箱(scope=dedicated),由管理员在 沙箱管理 中创建,绑定到编排器的 deep_agents_config.sandbox_id

Q5:沙箱可以离线工作吗?

不行。沙箱 agent 必须能连到 sandrpod-server 才能接收 AI 任务。可以临时断网,但断网期间 AI 调用会失败,而不是排队等待。

Apache-2.0 Licensed