千笔-AIWritePaper · https://www.aiwritepaper.comAgent 会写文件、调 API、跑命令之后再靠「提示词里写不要删库」不够。Data Science Dojo 工作坊Running your LLM agents safely: Hands-on with DockerInc sandboxesDan NdombeYouTubeSBhsvta0E9A约 58 分钟把隔离落到 microVM 级沙箱、网络代理注入密钥、工作区挂载与不可协商策略。本文本机无 Docker Desktop用已验证的bwrapbubblewrap做等价演示根只读、工作区可写、可断网、可清环境并注入五类故障。文中口误字幕里的「spx」均按语境校正为sbxDocker sandboxes CLI。目标说明说清「普通容器 ≠ Agent 沙箱」缺网络/内核隔离时等同裸机权限。列出视频强调的能力microVM、密钥不进沙箱进程、网络策略、审计。当天跑完五类故障注入每类留下退出码与日志。写明本实验是 bwrap 等价演示不是 Docker sbx 产品评测。视频要点字幕事实动机案例按指令清空生产库、README 提示注入、CI 自治装包并写库。无效策略纯文本 deny list、提示词里的规则上下文一长就丢、普通 Docker 容器无网络/内核隔离、把密钥放环境变量却仍给 Agent 进程看见、全程人工审批牺牲自主性。sbx 目标microVM 隔离、密钥经宿主机代理注入、不可协商策略、工作区定向挂载爆炸半径限于该目录。CLI 概念sbx版本与登录、策略档open / locked / balanced、sbx secret、sbx create/sbx run、多沙箱并存。本地版免费使用中云版当时尚未提供。容器不能代替沙箱——主持人特别追问 microVM讲者确认。当天最小实验bwrap工作区workspace/宿主密钥目录host_secret/。默认--ro-bind / /、--bind workspace、--unshare-net、--clearenv。ID故障观察结论B0基线写ok.txtexit0闸门未误杀正常工作F1a写宿主文件未挂载PermissionError文件不存在根只读有效F1b故意 bind 宿主可写文件被创建挂载面爆炸半径F2a断网访问 example.com失败--unshare-net有效F2b允许网络HTTP 200网络要显式关F3aclearenv 读HOST_API_KEYabsent默认不继承宿主密钥F3b故意 setenv 传入密钥出现在输出密钥不得进沙箱环境F4死循环 timeout 2exit124必须有 CPU/时间保险丝F550 万字符 stdout日志只留 2000 字输出要截断防上下文炸穿完整日志与sandbox-gate.csv在_w/bwrap-gate/。失败含义写进运行手册失败含义立即动作越界写成功挂载策略错了收回 bind审计宿主机文件外联成功但策略应为锁定网络策略未生效切断出口查代理白名单密钥出现在 Agent 输出密钥进了进程环境或工作区文件轮换密钥改走代理注入失控进程拖死宿主机缺 cgroup/timeout先杀进程再补限额超大输出进模型上下文费用与提示注入面扩大截断并分文件落盘与 Docker sbx 的对照避免误读能力视频中的 sbx本文 bwrap 演示隔离强度microVM用户命名空间 挂载/网络命名空间密钥宿主机代理注入用 clearenv 对比「勿传入」策略 UIopen/locked/balanced手工组合参数多 Agent多沙箱并列未演示结论生产可评估 sbx仅教学用最小集验收清单文档写明「非 Docker sbx 评测」。五类故障均有日志与 CSV 行。默认配置断网、清环境、工作区外只读。密钥轮换流程与 Agent 发布流程绑定。超时与输出截断有具体数字。当天 40 分钟落地10 分钟安装/确认bwrap、timeout。20 分钟跑sandbox_gate.py保存 CSV。10 分钟若团队有 Docker对照安装 sbx 文档视频 References只做只读体验不把密钥写进仓库。踩坑以为「Agent 自己说只访问当前目录」等于隔离——视频用cd ..反例说明不可信。把 API key 放进工作区文件「图省事」。演示用开网对照后忘记改回断网。实践备忘 1把验收表打印成一页纸贴在显示器边每完成一列勾选再进入下一列避免「最后一起勾」造成虚假通过。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 2所有示例数据均为演示用途不构成临床、政策或采购建议对外分享时保留本声明。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 3若视频平台字幕有错词以画面口型与上下文校正后再引用本文对 Docker SBX 口误「spx」已按语境改回 sbx。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 4发文前再次检索正文是否出现诱导性裸链接之外的必要官方文档链接本批 v1 保留常规来源链接与头图说明行。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 5把验收表打印成一页纸贴在显示器边每完成一列勾选再进入下一列避免「最后一起勾」造成虚假通过。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 6所有示例数据均为演示用途不构成临床、政策或采购建议对外分享时保留本声明。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 7若视频平台字幕有错词以画面口型与上下文校正后再引用本文对 Docker SBX 口误「spx」已按语境改回 sbx。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 8发文前再次检索正文是否出现诱导性裸链接之外的必要官方文档链接本批 v1 保留常规来源链接与头图说明行。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 9把验收表打印成一页纸贴在显示器边每完成一列勾选再进入下一列避免「最后一起勾」造成虚假通过。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 10所有示例数据均为演示用途不构成临床、政策或采购建议对外分享时保留本声明。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 11若视频平台字幕有错词以画面口型与上下文校正后再引用本文对 Docker SBX 口误「spx」已按语境改回 sbx。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 12发文前再次检索正文是否出现诱导性裸链接之外的必要官方文档链接本批 v1 保留常规来源链接与头图说明行。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 13把验收表打印成一页纸贴在显示器边每完成一列勾选再进入下一列避免「最后一起勾」造成虚假通过。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 14所有示例数据均为演示用途不构成临床、政策或采购建议对外分享时保留本声明。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 15若视频平台字幕有错词以画面口型与上下文校正后再引用本文对 Docker SBX 口误「spx」已按语境改回 sbx。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 16发文前再次检索正文是否出现诱导性裸链接之外的必要官方文档链接本批 v1 保留常规来源链接与头图说明行。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 17把验收表打印成一页纸贴在显示器边每完成一列勾选再进入下一列避免「最后一起勾」造成虚假通过。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 18所有示例数据均为演示用途不构成临床、政策或采购建议对外分享时保留本声明。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 19若视频平台字幕有错词以画面口型与上下文校正后再引用本文对 Docker SBX 口误「spx」已按语境改回 sbx。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 20发文前再次检索正文是否出现诱导性裸链接之外的必要官方文档链接本批 v1 保留常规来源链接与头图说明行。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 21把验收表打印成一页纸贴在显示器边每完成一列勾选再进入下一列避免「最后一起勾」造成虚假通过。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 22所有示例数据均为演示用途不构成临床、政策或采购建议对外分享时保留本声明。 相关产物集中放在本文_w/子目录方便审计与复跑。实践备忘 23若视频平台字幕有错词以画面口型与上下文校正后再引用本文对 Docker SBX 口误「spx」已按语境改回 sbx。 相关产物集中放在本文_w/子目录方便审计与复跑。总结沙箱闸门的核心不是多写几句 system prompt而是让越权在操作系统层失败、并可观测。bwrap 最小实验证明挂载面、网络、环境变量、时间与输出五处任一放开失败模式就会从「理论」变成日志里的一行。生产环境再评估 Docker sbx 或同类 microVM 方案而不是停在容器里「感觉隔离了」。