Agent 执行代码时,风险不只来自代码本身。上传文件可能带来意外内容,脚本可能占用过多资源,工具也可能访问不该接触的数据或外部服务。沙箱(Sandbox)为单次执行提供隔离环境,让文件、依赖、命令和运行产物处在可控制的范围内;它还需要和权限、审核、日志配合,才能进入实际业务。
ZGI 将文件、报告、计算、数据库和 Workflow 调用等可复用能力封装为 Skills,并在隔离运行环境中执行。对于需要处理文档、生成图表或运行计算的 Agent,团队可以把执行步骤放进 Workflow,保留输入、输出和状态,再根据任务性质决定哪些动作允许自动继续。
概念示意图:任务输入进入隔离 执行环境 ,产物和运行记录经过检查后再交给后续系统。
沙箱隔离的是执行过程
适合进入沙箱的任务通常有明确输入和输出,例如读取一份上传的表格、执行数据计算、生成报告文件,或者运行经过配置的工具。每次任务使用独立环境,可以减少临时文件、依赖和进程互相影响。
隔离环境不会自动决定所有边界。团队仍需明确可读取的目录、允许调用的 Skill、可访问的外部服务、最长运行时间、资源上限和产物保留规则。任务接触敏感数据时,还要把用户身份与数据范围传到执行链路中。
| 需要划清的边界 | 要配置的内容 | 验收方式 |
|---|---|---|
| 输入 | 文件来源、可读取范围、字段格式 | 上传异常文件和缺字段样本 |
| 执行 | 允许的 Skill、命令和依赖 | 非法动作和超时任务 |
| 外部访问 | 可调用的接口、凭据和数据范围 | 越权请求与凭据失效 |
| 产物 | 输出文件、结果字段、保留规则 | 检查文件是否可追溯、是否误写入 |
| 记录 | 开始、结束、错误和处理状态 | 定位失败节点和恢复位置 |
让模型提议,让规则决定执行
模型可以判断当前任务需要清洗数据、生成摘要或绘制图表。真正执行前,Workflow 还应检查文件类型、必填字段、用户权限和可用 Skill。涉及删除、对外发送或写入正式系统的动作,可以放在审批节点之后。
把计划、允许执行的动作和实际产物分别记录,排查会更直接。脚本失败时,团队可以判断问题来自模型选择、输入数据、运行环境,还是外部接口;模型切换后,也能继续沿用已有权限和流程规则。
ZGI 的 Skills 用于整理可复用能力,Workflow 可以组织条件、审批、通知和工具调用,运行日志则帮助查看任务过程。目录、网络、时长和凭据策略仍需结合部署环境配置,并用真实异常样本验收。
上线前别只测“能跑”
常规文件成功生成报告,只覆盖了最顺利的一条路径。上线前还应放入损坏文件、超大文件、含敏感字段的样本,并模拟依赖缺失、外部接口失败和用户中途取消。
每次测试都要观察拒绝行为是否清楚、错误是否留痕、产物是否留在约定范围,以及恢复后会不会重复执行已经完成的动作。沙箱提供执行隔离,权限、审批和日志负责把这层隔离接入企业治理。几项机制一起工作,Agent 执行代码时才有清晰边界。
GitHub:github.com/zgiai/zgi
Gitee:gitee.com/zgiai/zgi