跳到主要内容

Python 沙箱

每个对话都拥有一个独立的 Python 沙箱容器。模型在回答过程中可以自主编写并执行 Python 代码:分析你上传的数据、绘制图表、处理表格,甚至生成可下载的 PDF / PPTX / DOCX / XLSX 文档。沙箱与聊天并行运行,文件在整个对话生命周期内持久保存。

本页讲用户可见的行为;沙箱服务本身的部署见 沙箱部署

模型何时使用沙箱

你不需要任何特殊操作,直接用自然语言提需求即可。模型在遇到下列任务时会自行调用代码执行工具:

  • 数学计算、统计分析;
  • 读取并分析你上传的 CSV / Excel / 数据文件;
  • 绘制图表(matplotlib 等,支持中文字体);
  • 生成可下载文件(报告、幻灯片、表格,见下文「文档生成」);
  • 多步骤数据流水线(先看数据结构,再计算,再产出文件)。

一个典型的单条消息工作流:

你:"分析 data.csv,生成柱状图,再制作一份包含该图表的幻灯片。"

模型在同一轮内依次执行:
python_execute 读取 /workspace/uploads/data.csv,输出分析结果
image_generate 渲染柱状图,产物自动存入工作区
python_execute 用 python-pptx 把图表嵌入 slide.pptx
幻灯片以下载卡片出现在回复末尾

文件如何进入沙箱

每次代码执行前,系统自动把以下内容暂存到沙箱的 /workspace/uploads/ 目录,模型可以直接按路径读取:

内容说明
本对话中你上传的所有文件表格、CSV、PDF、图片等,单个最大 20 MB
本对话中生成的所有图片产物例如上一步 image_generate 画出的图
你有权限使用的技能资产位于 /workspace/skills/<name>/,如文档模板

因此「上传文件、让模型生成图、再把图塞进文档」这类跨工具流水线不需要你做任何中间操作。

执行过程可视化

代码执行以工具调用行的形式出现在回复上方的思考过程面板中(面板交互详见 对话与模型):

  • 行首状态点:运行中为鼠尾草绿脉冲点,完成为绿色对勾,失败为红色警示三角;
  • 行尾是实时耗时计数,运行中每秒跳动,结束后定格总时长;
  • 点击该行展开:上方是模型编写的完整 Python 代码(等宽字体、可滚动),下方是终端样式的运行输出(stdout / stderr)。

长时间的沙箱运行不会表现为空白等待,你始终能看到它在跑、跑了多久、在执行什么代码。

产物:图表、文件与数据

写入沙箱 /workspace/outputs/ 目录的文件会成为产物(artifact),在本轮回复中流式回传:

产物类型展示方式
图片(PNG 等)直接内联显示在回复中,点击在新标签页查看原图
其他文件(PDF / PPTX / DOCX / XLSX / CSV 等)以带文件名的下载卡片出现在回复末尾,点击即下载

产物永久附着在这条消息上:刷新页面、切换分支、分享对话后仍然可以下载。

文档生成(PDF / PPTX / DOCX / XLSX)

沙箱预装了完整的文档生成工具链,直接向模型提出「生成一份 PDF 报告 / 做一份 PPT / 导出 Excel」即可:

格式生成方式产出特性
PDF模型编写带样式的 HTML/CSS 后转换排版可控、文字可选中,适合报告 / 简历 / 合同
PPTX(视觉优先)每页以 HTML 设计后截图,再合成幻灯片版式与设计稿一致,页面为整页图片,文字不可再编辑
PPTX(可编辑)编程式排版或填充模板文字可编辑;配合管理员提供的模板技能效果更佳
DOCX编程式生成或模板填充文字可编辑
XLSX编程式生成支持公式、样式与数据校验
  • 支持视觉能力的模型会在生成后自检页面截图(文字溢出、重叠、截断),发现问题自动修改再产出,质量明显更好;不支持视觉的模型一次成型。
  • 沙箱内置 CJK 字体,图表与文档中的中文正常显示。
  • 管理员可以把「文档模板 + 工作流说明」打包成技能,模型生成文档时自动加载,你会在工具调用行里看到 use_skill 步骤。

会话工作区:跨轮持久

沙箱是有状态的计算环境,以对话为单位:

  • /workspace 下的文件在多次执行之间、多轮消息之间都保留:上一轮写出的中间数据、安装的第三方包,后续消息可以直接接着用;
  • 会话中途切换模型,文件仍然在:沙箱归平台管理,与具体厂商无关;
  • 每次代码执行是独立进程,变量不跨执行保留,跨步骤传递数据请让模型落盘为文件(模型自己知道这一点);
  • 沙箱容器闲置一段时间(默认 30 分钟,管理员可调)后被回收,工作区自动归档;下次执行时自动恢复,对你完全透明
提示

管理员可以在后台的沙箱检查器(/admin/sandbox)浏览与清理任意对话的工作区文件,排查磁盘占用问题。

超时与资源限制

限制项默认值说明
单次执行超时120 秒超时强制终止本次执行。管理员可在后台「工具」页调整,最高可配到 10 分钟
文本输出截断后回传超长的 stdout/stderr 会被截断,避免灌爆模型上下文
单个产物文件20 MB超限的文件不会作为产物回传
单轮调用次数16 次一条消息内模型最多执行 16 次 Python(深度研究模式为 8 次)
CPU / 内存容器级限额由部署方配置,防止单对话占满宿主机

网络访问

沙箱容器默认与公网隔离(无网络),这是安全基线:模型代码不能外发数据、不能访问内网。

  • 需要联网获取的内容,由平台的其他工具代劳:web_fetch 抓网页、fetch_image 把公网图片下载进 /workspace/uploads/ 供代码使用;
  • 能否 pip install 第三方包取决于部署方是否配置了内网 PyPI 镜像白名单;沙箱镜像已预装 pandas、numpy、scipy、scikit-learn、matplotlib、openpyxl 等常用数据科学栈,大多数任务开箱即用。

失败与自动重试

  • 容器被回收后执行:系统检测到会话失效时,自动重建沙箱、重新暂存所有文件、透明重试,你不会看到任何错误;
  • 代码本身报错:异常与 stderr 会回传给模型,模型通常会修改代码自行重试(在单轮次数预算内),你可以在思考过程面板里看到每一次尝试;
  • 执行超时:该次执行被强杀并向模型报告,模型可拆小任务重试。

未配置沙箱时

  • 管理员未配置沙箱服务地址时,代码执行工具进入安全模式,只能做简单算术,适合演示与开发调试;完整能力需要部署沙箱 sidecar,见 沙箱部署
  • 与服务端沙箱互补,AI 回复中的 Python 代码块右上角有「运行」按钮,由浏览器内的 Pyodide 引擎执行:即点即跑、零后端依赖,输出按行流式显示,matplotlib 图表内联展示,支持「停止」与超时保护。首次运行需从 CDN 加载引擎(约 12 MB),之后常驻。该路径同样默认禁止网络访问,适合快速验证模型给出的代码片段。