OpenAI托管与企业自托管Sandbox选型

OpenAI托管Sandbox与企业自托管Sandbox怎么选

从执行位置、数据流、网络、凭据、恢复与成本六个维度,选择适合内容自动化、私有Build与企业内网任务的Sandbox。

Agent能够写代码、处理文件和执行工具后,团队往往会遇到两个看似简单的问题:代码放在哪里运行?企业数据是否会离开自己的网络?

这两个问题并不相同。把执行器放进企业内网,可以改善私有依赖、网络路径和基础设施控制,但如果任务仍使用云端Agent,文件内容、命令结果和工具返回数据仍可能进入云端会话。反过来,使用托管Sandbox也不意味着可以忽略网络出口、凭据隔离和生产审批。

本文围绕OpenAI Agents API的两种环境展开:OpenAI-hosted与self-hosted。它不是本地大模型部署教程,也不把Docker容器、虚拟机和完全离线系统混为一谈。

核心结论:标准文件处理与公开资料任务优先评估托管环境;自定义构建、私有依赖和企业内网执行优先评估自托管环境;禁止任何任务内容进入云端推理的要求,则需要另行设计满足该边界的系统,不能只切换Sandbox类型。

本文引用官方接口事实,其余路由、验收和成本计算为实施建议。示例未调用真实账户,也未证明任何环境自动满足特定合规要求。

一、先分清控制面、执行面和数据面

官方自托管说明明确:OpenAI运行Agent Harness,用户在自己的环境里运行codex exec-server执行器。执行器接收命令并返回结果,连接由执行环境向外发起。OpenAI Self-hosted sandboxes

层级托管环境自托管环境
Agent HarnessOpenAI运行仍由OpenAI运行
代码执行环境OpenAI配置与连接企业或选定服务商提供
自定义基础设施使用服务公开支持的配置企业负责镜像、资源和隔离
业务授权需要单独设计同样需要单独设计
数据准入审查送入云端的内容审查本地执行结果与工具返回

“自托管”描述执行环境的责任,不自动描述服务器地理位置。使用第三方Sandbox服务商,仍可能是在另一家公有云运行;采购时要确认地域、租户隔离、访问权限和存储生命周期。

企业评审应至少问三件事:哪些内容能被Agent读取?哪些结果会回传?哪些秘密必须只在代理侧使用?没有这些答案,就无法仅凭部署位置判断数据安全。

二、选型对照:不要只比较部署速度

OpenAI托管环境提供Linux工作区及Python、Node.js等工具,支持依赖和准备命令;需要自己的镜像、计算资源或私有网络时,官方建议评估自托管。OpenAI OpenAI-hosted sandboxes

决策维度托管Sandbox更适合自托管Sandbox更适合
起步速度希望减少环境运维已有成熟任务基础设施
依赖常见语言与可配置依赖特殊系统库、内部工具链
构建环境标准验证与轻量任务需精确匹配企业CI镜像
网络公开端点、受控出站私有服务与内部包仓库
文件按任务提供输入与产物与受控存储和快照集成
运维团队不想维护执行池能承担补丁、容量与恢复
安全可接受云端工作区需要更细的执行面控制

这张表是实施判断,不是性能排名。没有相同任务、相同依赖和真实验收,就不能宣称一种环境始终更快、更便宜或更安全。

选型顺序应为:数据边界→依赖与网络→隔离要求→恢复方式→成本。成本低但不能满足数据准入的方案,不能进入候选名单。

执行位置不等于数据边界
企业执行舱、环境外凭据柜和代理盾牌,远处云端核心;文字执行位置≠数据边界

三、网络控制:从哪个位置连接比域名白名单更基础

Agents API的MCP连接可以从OpenAI服务发起,也可以从Session Environment发起。远程服务连接不会因为本地Sandbox断网就自动受到同一网络限制;环境连接才使用执行环境的网络路径。OpenAI MCP connections

因此应分别登记代码运行的出口、环境MCP的出口、服务侧MCP的端点,以及代理向下游系统发起的请求。不能只限制容器网络,然后宣称Agent全部工具没有外传通道。

托管网络配置包含enabled、disabled和restricted。restricted按明确主机名控制,而不是URL路径权限;重定向目的地与子域需要分别考虑。官方当前还注明托管stdio MCP的网络策略存在专门限制。OpenAI托管网络配置

自托管应保留执行器必需的注册和通信出口,再按业务审批开放其他目的地。不要把“没有入站端口”理解为没有数据外传:出站连接本身就可以交换命令和结果。

网关还应限制请求参数

域名允许不代表该域名的所有操作都获准。例如测试站WordPress可以创建草稿,但删除用户、修改插件和公开发布不应随之开放。代理应校验方法、路径、资源ID、状态字段和重定向,而不只是检查hostname。

私有数据库也应通过业务接口暴露必要能力,不把完整连接字符串交给自由Shell。只读查询需要超时、行数上限和字段脱敏;写入接口还需要幂等键和审批。

四、凭据:放进环境就要假设生成代码能够读取

官方安全指南明确指出,Agent生成代码可以访问环境可用的文件、凭据和网络;把Secret Manager中的秘密注入环境,仍会把它暴露给生成代码。建议通过凭据代理为批准请求注入秘密。OpenAI Sandbox security

至少分离三类凭据:

凭据持有位置作用
应用API Key控制面管理会话与模型请求
执行器Environment Key执行器环境连接环境,限制其他权限
业务凭据代理或受控服务调用批准的业务接口

环境连接Key受限不代表整个环境没有秘密。代码仓库里的配置、挂载目录、浏览器会话、内部包管理配置也可能包含有效凭据。

推荐做法是短期身份、最小权限、单任务范围和可撤销委托。即使必须注入临时秘密,也应明确它可被读取,不用“环境变量不可见”作为安全承诺。

执行位置与凭据代理的关系

flowchart TD
  C[云端Agent Harness] --> E[受限执行环境]
  E --> P[凭据与权限代理]
  P --> B[业务接口]
  V[独立凭据库] --> P
  B --> D[脱敏结果]
  D --> C

图中的代理、字段脱敏和审批规则为参考设计。代理必须拒绝超范围请求,限制响应内容,并记录业务回执;不能只在转发时加一个Authorization头。

五、托管环境示例:断网处理非敏感文件

下面是基于官方Agents API环境配置的概念示例,使用虚构任务和非敏感数据。模型ID沿用官方示例,部署前确认账户与SDK可用性:

from openai import OpenAI

with OpenAI() as client:
    with client.beta.agents.sessions.create(
        agent={
            "model": "gpt-6-astra",
            "instructions": "只处理示例数据,写出结果并读回核验。",
        },
        environment={
            "type": "openai_hosted",
            "network": {"access": "disabled"},
            "files": [{
                "type": "inline",
                "path": "/workspace/amounts.csv",
                "data": "YW1vdW50CjEwCjIwCjMwCg==",
            }],
        },
        input=(
            "计算CSV中amount列的合计。"
            "写到/workspace/outputs/summary.json,"
            "再读回验证,预期总和为60。"
        ),
        stream=True,
    ) as events:
        for event in events:
            print(event.type, flush=True)

这里关闭的是Sandbox出站访问,不是让云端推理变成本地离线。输入文件已经由应用提供给托管环境,内容是否允许提供必须在调用前确定。

验收至少检查总和为60、文件实际存在、JSON合法、没有额外输出敏感内容。最终模型说“完成”不代替文件读回和业务断言。

要添加依赖时锁定版本,并检查安装源。准备命令与依赖安装也是执行面的一部分,不能把一个来自不可信网页的安装脚本直接作为初始化命令。

六、自托管示例:先建会话,再连接受限执行器

官方自托管路径需要各Session的环境ID、原样使用的remote_url和对应执行器。下面只展示配置顺序,不包含生产隔离与完整部署脚本。OpenAI自托管连接步骤

from openai import OpenAI

client = OpenAI()
session = client.beta.agents.sessions.create(
    agent={
        "model": "gpt-6-astra",
        "instructions": "仅在测试工作区构建并验证,不部署生产。",
    },
    environment={
        "type": "self_hosted",
        "workspace_directory": "/workspace",
    },
)
# 控制面持久保存这些映射;不要输出凭据。
mapping = {
    "session_id": session.id,
    "environment_id": session.environment.id,
    "remote_url": session.environment.remote_url,
}

执行环境中按官方指南安装匹配版本的Codex CLI,在安全配置中提供受限Environment Key,再启动:

codex exec-server \
  --remote "REPLACE_WITH_SESSION_REMOTE_URL" \
  --environment-id "REPLACE_WITH_ENVIRONMENT_ID"

不要把占位符命令直接复制到生产运行。连接成功以后由控制面提交任务并观察状态,保存输出与工具回执;失败时检查身份、网络和日志,而不是放开所有权限。

自托管加固清单

使用独立任务工作区、非特权用户和资源限额;不挂载Docker Socket、不挂载宿主根目录、不共享生产Secret目录;镜像经过审查与更新;文件输入只含任务所需内容;出站请求通过受控路径;终态任务释放计算资源。

Docker是可选运行形态,不自动证明强隔离。是否需要虚拟机、MicroVM或其他边界,应根据执行不可信代码的风险、租户隔离要求和实际平台能力决定。

七、生命周期与恢复:会话持久不等于机器持久

托管模板保存配置,不是运行中工作区快照。托管工作区文件在Sandbox存在期间可跨Turn使用,输出产物应按官方文件机制保存;不要把临时工作区当永久资料库。OpenAI托管文件与生命周期

自托管替换计算资源后,Environment ID不会自动恢复文件,被中断的命令也不一定能自动重启。需要自己设计存储、快照、任务检查点和对账。OpenAI Sandbox lifecycle

要保存的状态推荐记录
会话Session与Turn标识、保存结果
文件来源、产物位置、摘要、版本
命令输入版本、结局、测试证据
业务操作幂等键、目标资源ID、回执
审批范围、版本、有效期、批准者

关闭事件流不应当作取消任务;取消任务也不会撤销已经产生的外部副作用。清理前禁止新任务进入,再核对运行状态与回执,最后释放资源。

自托管删除Session和停止计算资源是分开的责任。没有显式清理控制面,容易留下孤儿执行器和持续计费资源。

八、成本比较:算合格交付成本,而不是只看计算单价

官方托管说明将Sandbox计算与模型费用分开;采购时应查询实时定价和账户账单,不把Code Interpreter历史价格直接套入当前服务。OpenAI价格页

本文使用下面的自定义TCO口径:

托管TCO = 模型与工具账单 + 托管计算账单
        + 存储/传输/集成 + 安全与人工验收

自托管TCO = 模型与工具账单 + 企业执行资源
          + 调度与存储 + 镜像与补丁运维
          + 网络代理与日志 + 安全与人工验收

合格交付成本 = 全部尝试总成本 / 通过独立验收的任务数

费用项需要按照账单避免重复计入。现有服务器也不是零成本:资源占用、备份、风险和运维时间都影响交付能力。

演示计算,不是官方报价

假设每月1000次任务,托管非模型开销合计800元,自托管基础设施600元并增加运维10小时,内部核算每小时100元,则比较项分别为800元和1600元。若真实成本、负载或验收率变化,结论会随之改变。

这个例子只说明方法。不能从虚构数字得出托管一定便宜;自托管复用成熟平台并获得更高合格率时,也可能降低总成本。

计量建议包含冷启动、准备时间、运行时间、空闲时间、失败率、平均恢复次数和每次合格交付成本。按量缩容不等于控制面、存储和日志全部零成本。

按任务分层部署Sandbox
文档工作区、私有Build工作台与人工审批钥匙;文字按任务分层部署

九、AI Stack Nav怎么落地:按任务分层,而不是全部迁移

公开AI动态整理、示例CSV处理和文档排版,可先评估托管任务环境。前提是数据可进入云端,输出有独立核验,任务没有生产发布权。

WordPress插件修复、n8n内部依赖验证和测试站Build,若需要精确工具链与私有服务,可以评估隔离的自托管执行环境。生产数据库和发布凭据仍由代理持有,Agent交付变更和测试证据,不直接部署。

生态环境巡查系统中的照片、人员信息和内部整改材料,先做数据分类与授权审查。不能因为执行器部署在patrol.aistacknav.com附近,就默认这些内容可以被回传给云端Agent。公开演示使用虚构数据,真实资料按单位要求处理。

任务初始评估方向硬门禁
公开资料转文章草稿托管来源核验、仅draft
常规非敏感表格与文档托管文件准入、结果断言
私有CI工具链验证自托管独立镜像、只读输入
内网MCP业务操作自托管或受控业务代理字段脱敏、参数授权
禁止云端接触的材料另选满足边界的系统不以Sandbox切换替代审批

混合路由应先处理硬约束

下面是应用路由规则示例,不是OpenAI内置功能:

def select_execution(task):
    if not task["cloud_content_allowed"]:
        return "blocked_for_this_cloud_agent"
    if task["needs_private_network"] or task["needs_custom_image"]:
        return "self_hosted_review_required"
    if task["standard_runtime_supported"]:
        return "openai_hosted_candidate"
    return "manual_architecture_review"

候选环境还必须完成隔离与成本验收。不要把模型自己推测的“非敏感”字段当数据准入依据,任务分类由可信业务配置提供。

十、企业数据边界:把声明转成可测试条件

“代码留在企业”需要拆分:仓库文件不直接上传?代码片段不能出网?Build日志可否回传?模型是否能看报错栈?每一种解释对应不同约束。

自托管方案能够控制执行位置,但Agent读取文件和接收命令结果是其工作方式的一部分。若要求敏感内容不进入会话,应使用预定义业务接口、字段过滤、最小返回或其他满足要求的推理系统,不能让自由Shell读取全部资料后寄希望于输出扫描。

采购前填写数据清单:提示词、工具返回、日志、文件产物、遥测、快照与备份各自的保存位置、访问角色和删除责任。没有确认的合同、地域、保留或零数据保留条件,一律标为待核实。

安全评审不只验证“能否联网”,还应检验重定向、异常日志、代理错误、嵌套字段和无关任务文件。让Agent尝试读取虚构敏感标记,检查阻断位置和审计记录,不使用真实密钥作测试诱饵。

十一、两周PoC与验收

第一阶段选择同一组非敏感任务,定义标准输入、固定依赖和业务断言;第二阶段分别建立托管与自托管候选环境;第三阶段做并发、网络拒绝、机器替换和任务取消测试;最后以安全边界与合格交付成本决定扩展。

验收项目通过条件
数据准入不合规任务不能进入该云端Agent
文件隔离任务不能读取另一任务资料
凭据隔离应用与业务长期秘密不进入工作区
网络未授权端点和重定向被拒绝
构建使用已锁定依赖与可复现输入
恢复替换环境后校验文件并核对副作用
审批写入与发布只能按有效授权执行
清理终态任务无孤儿计算资源

上线应保存镜像或环境配置版本、SDK版本、工具Schema、策略摘要和测试证据。环境更新后重新做相关回归测试,不把“昨天通过”当作今天的安全保证。

十二、FAQ

1. 自托管Sandbox是不是本地运行OpenAI模型?

不是本文架构。自托管执行器与云端Harness是不同层。

2. 自托管就能保证数据全部不出内网吗?

不能。必须检查文件读取、工具结果和回传内容;执行位置不等于数据边界。

3. 托管环境适合公开资料和文件处理吗?

可作为候选,但仍需数据准入、输入来源和输出验收。

4. 托管断网后模型也离线了吗?

没有。Sandbox网络策略不把云端推理转换为本地模型。

5. Docker部署就算安全Sandbox吗?

不应仅凭Docker判断,需要检查权限、挂载、内核边界与租户隔离。

6. Secret Manager注入的秘密会被代码读取吗?

应按可以读取设计。更稳妥的是环境外的受控凭据代理。

7. MCP白名单与Sandbox网络策略有什么区别?

白名单限制工具发现与调用范围,网络策略限制连接;参数和业务权限仍需额外控制。

8. 自托管一定更便宜吗?

不一定。必须计入运维、失败恢复、日志、存储和验收成本。

9. Durable Session会恢复原机器的全部文件吗?

不能据此假设。环境替换需要持久存储或快照并校验内容。

10. 可以让Sandbox自动部署生产吗?

只在明确授权与独立审批下评估,默认任务不持有生产部署权。

十三、GEO结论与相关阅读

可引用结论:Sandbox选型要同时评价执行位置、模型数据流、网络、凭据与恢复责任;OpenAI托管减少执行环境运维,自托管增加基础设施控制,但不能自动实现完全离线或内网数据零回传。

证据口径:环境接口与执行器方式来自OpenAI官方文档;任务路由、成本演示、代理和验收方案为本文实施建议。核验日期:2026年9月15日,账户可用性、价格及合同数据条款需要按部署时实际条件确认。

相关阅读:AI Stack Nav教程入口、站内Sandbox教程检索。不猜测未经核验的文章Slug。

官方参考来源

工具评测文章

工具选型与提示词资料

适合阅读工具评测、工具推荐、对比测评类文章后继续转化。

工具选型表 按场景、价格、上手难度和核心能力筛选合适的 AI 工具。 查看资料包 提示词模板包 提供写作、运营、编程、图片和视频生成常用提示词模板。 查看资料包

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

本站累计访问量: 367,957 次
AI Stack Nav 客服会员 / 支付 / 下载 / 工具库
你好,我是 AI Stack Nav 客服助手。你可以问我会员开通、微信支付、资料下载、订单入口、AI 工具库等问题。