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」即可:
| 格式 | 生成方式 | 产出特性 |
|---|---|---|
| 模型编写带样式的 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),之后常驻。该路径同样默认禁止网络访问,适合快速验证模型给出的代码片段。