3.5.3 沙箱

沙箱是平台内置的隔离代码执行环境(基于 OpenSandbox):应用开启后,AI 生成的代码在沙箱里运行——数据分析、文件处理、Shell 操作——宿主环境完全隔离,用完按时回收。知识库场景下,沙箱常与检索配合:先把业务资料查出来,再在沙箱里对数据做计算、生成图表,产出分析报告。

本章介绍应用如何开启沙箱、有哪些参数、平台如何统一管控资源。

在应用中开启沙箱

沙箱是应用级能力:进入应用工作台的「配置」分区,打开「启用沙箱」即可,参数随开关级联展开:

应用沙箱配置

参数说明
沙箱存活时间沙箱最长存活时长,超时后自动回收(默认 900 秒 / 15 分钟,上限受平台配置约束)
自动续期会话还在使用沙箱但剩余存活时间不足时自动续期,长任务不必频繁重建
CPU 限制 / 内存限制本应用沙箱的资源上限,留空使用服务端默认(如 CPU 1 或 500m、内存 2Gi 或 512Mi),不得超过平台全局上限
出站网络默认动作控制沙箱能否访问外部网络,留空使用服务端默认

沙箱按会话独立创建、按时回收——两个用户的会话各用各的沙箱,互不影响。

审批策略

开启沙箱意味着模型可以执行代码和 Shell,平台提供了人工把关机制:

  • 沙箱自动放行(默认关闭):关闭时,用户开启「审批模式」后,每次沙箱调用(运行代码 / Shell / 文件读写)都需要人工批准后才执行;
  • 自动放行插件:审批模式下可指定部分插件的调用自动放行,其余工具仍逐次审批;
  • 用户切回「自动模式」时全部工具直接执行。对外部访客开放的应用(官网嵌入等)不建议开启沙箱,或务必保持审批管控。

平台级资源管控

沙箱资源由超级管理员在「系统设置 → 沙箱资源上限」统一管控:

系统沙箱资源上限

上限项范围与默认值
沙箱存活时间上限60 ~ 604800 秒,默认 86400(24 小时)
沙箱 CPU 上限如 4 或 2000m,默认 4
沙箱内存上限如 8Gi 或 512Mi,默认 8Gi

应用配置中的沙箱参数在保存时做强校验——超出平台上限的配置会被拒绝。企业部署时按服务器规格收紧这三项,就能防住个别应用把宿主机资源吃满的情况。

案例:知识库 + 沙箱做数据分析报告

延续 3.5.1 的「云途网盘」例子,运营团队每月要出一份用户问题分析报告:

  1. 资料入库:把当月客服工单汇总表、产品运营数据上传知识库并完成向量化;
  2. 开启沙箱:在分析助手上启用沙箱,存活时间 30 分钟、内存 2Gi,保持审批关闭状态供内部使用;
  3. 对话产出:运营同学提问「分析本月工单数据,按问题类型出分布图」——助手先检索知识库拿到数据,再在沙箱里运行 Python 汇总计算、生成图表,输出一份带图的报告;
  4. 资源兜底:平台沙箱上限兜底,即使某次分析代码写了个死循环,也会在存活时间到点后被回收。

常见问题

应用没开沙箱,AI 还能执行代码吗?
不能。未开启沙箱的应用只具备对话与普通工具调用能力,不会出现代码执行、Shell 与文件读写类操作。

沙箱里能访问外网吗?
由「出站网络默认动作」控制,留空用服务端默认;需要访问知识库以外的在线资源时再按需放行。

沙箱任务跑到一半被回收了?
沙箱按存活时间回收。长任务调大应用的「沙箱存活时间」或开启「自动续期」;若被平台上限卡住,请联系管理员调整系统级配置。

开启沙箱有安全风险吗?
沙箱本身是隔离环境,风险主要是模型生成的代码行为不可预期。对外应用保持审批模式、收紧出站网络、调小资源配额,是推荐的三件套。