背景
LiveAgent 的 Agent 模式会直接在本机执行模型驱动的 Bash 命令与常驻进程。当前的安全手段只有工具审批策略(allow/ask/deny),缺少真正的执行隔离:模型一旦拿到 Bash 放行,就可以写任意路径、读 ~/.ssh 等敏感目录、任意联网。
目标
让用户在对话框内直接切换「命令执行方式」,提供从"逐条审批"到"OS 级沙箱隔离"的分档防护,开箱即用、无需额外部署:
- 逐条审批 (ask):非只读工具每次执行前请求批准
- 自动执行 (auto,默认):按现有工具权限策略执行,零回归
- 沙箱 (sandbox):Bash / ManagedProcess 在 OS 原生沙箱内执行——写入仅限项目文件夹与临时目录,
/.ssh、/.aws、/.gnupg、/.liveagent 等敏感目录不可读
- 沙箱·断网 (sandboxOffline):在沙箱基础上禁止命令联网
技术方案
- macOS:
/usr/bin/sandbox-exec + 动态 Seatbelt profile
- Linux:bubblewrap(bwrap)+ namespace 隔离,可选
--unshare-net
- Windows:第一期暂不支持(UI 禁用并提示),后续按受限令牌 + Job Object + WFP 路线实现
- 拦截点在 Rust 侧 spawn 漏斗(
spawn_platform_shell_command),fail-closed:沙箱不可用时报错,绝不静默降级为直跑
- 用户显式配置的 Hook / Cron 脚本不套沙箱
后续阶段(不在首期)
- Windows 受限令牌后端
- PTY 终端工具纳入沙箱
- 内嵌 CubeSandbox(Linux/WSL2,microVM 级隔离 + 每 turn 快照回滚)
🤖 Generated with Claude Code
背景
LiveAgent 的 Agent 模式会直接在本机执行模型驱动的 Bash 命令与常驻进程。当前的安全手段只有工具审批策略(allow/ask/deny),缺少真正的执行隔离:模型一旦拿到 Bash 放行,就可以写任意路径、读 ~/.ssh 等敏感目录、任意联网。
目标
让用户在对话框内直接切换「命令执行方式」,提供从"逐条审批"到"OS 级沙箱隔离"的分档防护,开箱即用、无需额外部署:
/.ssh、/.aws、/.gnupg、/.liveagent 等敏感目录不可读技术方案
/usr/bin/sandbox-exec+ 动态 Seatbelt profile--unshare-netspawn_platform_shell_command),fail-closed:沙箱不可用时报错,绝不静默降级为直跑后续阶段(不在首期)
🤖 Generated with Claude Code