OpenAI 负责运行智能体执行框架。您的应用向执行框架发送任务并接收结果。当智能体需要计算资源或文件时,再添加环境。
组成部分
- 执行框架: 由 OpenAI 托管的 Codex 实例,负责运行模型与工具调用循环,并维护智能体的会话。
- 环境: 智能体运行命令、执行代码和处理文件的地方。环境可以是远程沙盒、您的笔记本电脑、Docker 容器或 AWS Lambda 函数。
- 应用服务器: 您编写的、将智能体连接到产品的代码。它负责提交任务、接收事件并处理函数工具。如果环境由您提供,这些代码还负责管理环境的生命周期。
先使用任务所需的组成部分。执行框架可以在没有环境的情况下工作,您的应用可以通过流式传输或 Webhook 接收进度信息。
从不配置环境开始
回答问题或使用工具访问外部服务的智能体,可能不需要自己的计算资源或文件。将 environment.type 设置为 none。以下片段展示了环境设置。创建会话还需要指定智能体和初始输入:
{
"environment": {
"type": "none"
}
}
您的应用向会话发送输入。执行框架调用模型、使用已配置的工具并返回结果。OpenAI 会维护该会话,以便开展后续工作。
执行框架可以直接调用远程 MCP 工具。对于函数工具,您的代码会接收每次调用、运行函数并返回结果。
未配置环境时,内置的 Bash 和 apply-patch 工具、工作空间文件以及执行器 MCP 均不可用。

此处展示的可选虚拟运行时通过您应用中的函数工具提供文件和 Shell 命令。
添加 OpenAI 托管的环境
当智能体需要运行脚本、编辑文件或创建产物时,将 environment.type 设置为 openai_hosted。OpenAI 会为该会话创建并管理沙盒。
您负责配置智能体所需的软件包、文件和网络访问权限。执行框架直接在沙盒中运行命令。您的应用继续发送任务、接收事件并处理所有函数工具。

虚线箭头仅适用于您自行管理环境的情况,具体说明见下文。
有关配置选项,请参阅OpenAI 托管的环境。
连接您自己的环境
当智能体需要使用您的基础设施、私有网络或自定义软件时,请使用 environment.type: "self_hosted"。
您的代码启动环境,并将执行器连接到会话。执行器按照执行框架的请求运行命令和工具。您的应用负责管理连接和生命周期,无需逐条转发命令。
您负责资源配置、重新连接、关闭环境以及保存所需文件。您的应用服务器或 Webhook 处理程序可以管理这些工作。

停止计算资源前,请协调好新传入的任务,并确认没有待执行的操作。
接收进度和结果
无论选择哪种环境方案,您都可以使用以下任一方式,也可以同时使用两者:
- 流式传输: 在智能体工作时接收详细事件,例如用于在您产品中显示的输出。
- Webhook: 无需保持流连接即可接收会话状态变化。您的处理程序可以获取结果、运行函数工具或管理自行托管的环境。
函数工具需要处理程序来接收调用并返回结果。如果该处理程序不可用,智能体可能会一直等待结果。事件或生命周期处理程序发生故障,也可能中断进度更新或环境管理。