For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
主导航

Agents API 快速入门

创建一个在 OpenAI 托管的沙盒中编写并运行脚本的智能体。

构建一个编程助手,让它编写 tree.py、运行该脚本并显示目录树。OpenAI 负责管理智能体、其对话以及运行所在的沙盒。

前提条件

在您的 OpenAI Platform 项目中创建一个应用 API 密钥。授予该密钥用于会话操作的 api.agents.readapi.agents.write 权限,以及用于模型推理的 api.responses.write 权限,然后将其导出为环境变量:

export OPENAI_API_KEY="your-api-key"

请将此密钥保存在智能体的沙盒之外。有关沙盒配置和限制,请参阅OpenAI 托管的沙盒

请求必须包含 OpenAI-Beta: agents=v1 请求头。OpenAI SDK 会自动添加该请求头; 使用 cURL 时,请显式添加。

1. 运行任务

选择语言,安装 OpenAI SDK,然后运行示例。SDK 示例使用 beta.agents 命名空间。该请求会创建会话、提交任务,并以流式方式返回进度。

安装或更新 Python SDK:

pip install --upgrade openai

将示例保存为 quickstart.py

创建并运行 tree.py
from openai import OpenAI

with OpenAI() as client:
    with client.beta.agents.sessions.create(
        agent={
            "model": "gpt-6-astra",
            "instructions": "Write clean code, run it, and report the actual output.",
        },
        environment={"type": "openai_hosted"},
        input="Create tree.py, a Python script that prints a readable tree of the files in the current directory. Run it and show me the output.",
        stream=True,
    ) as events:
        for event in events:
            print(event.to_json(indent=None), flush=True)

在终端中运行:

python quickstart.py

不需要沙盒? 对于回答问题或调用外部工具, 但不运行命令或处理本地文件的智能体, 请将 environment.type 设置为 none了解 更多

2. 查看进度

终端会显示流式传输的事件。SDK 示例会打印 JSON;cURL 则显示原始事件流。运行成功时,智能体会创建 tree.py、执行该脚本,并报告包含该文件的目录树。其他文件和输出取决于沙盒。

查找 agent.session.turn.completed,然后检查智能体报告的执行结果。一个轮次完成并不保证每个工具都执行成功。以 turn.failedturn.cancelledsession.failed 结尾的事件表示失败或取消;仅出现 agent.session.idle 并不意味着成功。如果事件流提前断开,请先获取会话及其已保存的条目,再重试。

3. 继续会话

保存事件中的 session_id。使用它发送后续消息,例如:“Add a maximum-depth option to tree.py, run it, and show me the output.”请在发送后续输入之前打开事件流,以免错过最初的事件。

4. 清理

您可以保留会话以继续执行更多任务,也可以在完成后将其删除。请先保存所需的文件

请将示例中用于演示的 sess_123 替换为您保存的会话 ID。

删除会话
# Replace the illustrative IDs and URLs below with your own resource values.

from openai import OpenAI


def delete_session(client: OpenAI, session_id: str):
    return client.beta.agents.sessions.delete(session_id)


if __name__ == "__main__":
    result = delete_session(OpenAI(), "sess_123")
    print(result.to_json())

后续步骤