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:打开安装对话框
- 点击「添加我的电脑」按钮(空态)
- 弹出安装对话框,里面有:
- 平台切换 Tab:macOS / Linux ↔ Windows
- 对应平台的一行安装命令(右侧有复制按钮)
- 倒计时(注册票据剩余有效期)
⚠️ Enrollment JWT 有效期 10 分钟,过期后需重新生成。对话框里没有二维码,直接复制命令即可。
Step 2(可选):用公开安装页给别人
如果要让别人/另一台电脑安装,可把公开安装页短链发出去:
https://<sira-host>/sandbox-install?token=<enrollment_jwt>这个页面不需要 Sira 登录,只验 JWT 签名;显示一行安装命令(可复制)和剩余有效期,没有二维码。
Step 3:执行安装命令
macOS / Linux:
curl -fsSL https://<sira-host>/api/agent-system/sandboxes/install/sandrpod-agent.sh \
| SIRA_ENROLL='<jwt>' bashWindows (PowerShell):
iwr -UseBasicParsing https://<sira-host>/api/agent-system/sandboxes/install/sandrpod-agent.ps1 | iex; Install-SiraSandbox -EnrollToken '<jwt>'执行后:
- 下载
sandrpod-agent+sandrpod-tray二进制 - 注册为系统服务(macOS LaunchAgent / Linux systemd-user / Windows NSSM)
- 把长期 token 存到系统钥匙串(Keychain / Secret Service / DPAPI)
- 启动 agent,通过 WebSocket 反向通道连接 sandrpod-server
- 启动 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 平台触发
- 我的沙箱页 → 点「解绑」
- 二次确认 → 沙箱标记为已撤销
- 本机守护进程下次心跳时收到信号,自动停止服务并清理
方式 2:本机手动
# macOS / Linux
~/.sira/bin/sira-sandbox-uninstall# Windows (PowerShell)
Uninstall-SiraSandbox执行后:停止服务、删除二进制、从钥匙串撤销 token、回调 Sira 把沙箱标为已撤销。
会被保留的(默认):工作目录里的文件和审计日志归档。工作目录位置:
| OS | 工作目录 |
|---|---|
| macOS / Linux | ~/.sira-sandbox/ |
| Windows | %USERPROFILE%\.sira-sandbox\ |
需要彻底清理就手动删除该目录。
1.5.10 常见问题
Q1:安装命令运行后看到"command not found"?
确认 curl / iwr 可访问。企业网络可能需要配置代理:
export HTTPS_PROXY=http://proxy.company.com:8080
curl -fsSL ... | ...Q2:状态一直显示"等待上线",但本机说已经装好?
可能性:
- 安装命令里的 JWT 已过期 → 回 Sira 重新点「添加我的电脑」生成新命令
- 本机网络不通 sandrpod-server → 联系管理员检查 企业配置
- agent 启动了但 token 错误 → 看本机
~/.sira-sandbox/下的日志
Q3:权限对话框一闪而过没看清?
权限对话框是原生系统弹窗,在 macOS 上可能被其他窗口遮挡。打开托盘菜单 → 「打开权限设置」可以看到完整的决策历史。
Q4:我能把沙箱装在共享服务器上吗?
不建议。沙箱设计上是一人一沙箱,装在共享机上会导致:
- 多个用户的 AI 共用同一台机器的文件 / 凭证
- 权限闸门无法区分调用方
- 审计无法追责到具体用户
如果团队需要共享沙箱,使用专用沙箱(scope=dedicated),由管理员在 沙箱管理 中创建,绑定到编排器的 deep_agents_config.sandbox_id。
Q5:沙箱可以离线工作吗?
不行。沙箱 agent 必须能连到 sandrpod-server 才能接收 AI 任务。可以临时断网,但断网期间 AI 调用会失败,而不是排队等待。
