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

运行和继续会话

开始工作、跟踪进度并继续对话。

会话会持续保留智能体的配置、对话和已保存的工作内容。复用同一会话,即可发送后续消息并继续工作。

会话与轮次

轮次是会话中的一个工作周期。向空闲会话发送消息会启动新轮次。在轮次进行期间发送消息,则会引导该轮次的工作。

轮次以异步方式运行。您的应用可以通过流式传输跟踪进度,也可以通过 Webhook 接收会话状态变更通知。

开始工作

使用智能体配置和初始 input 创建会话。将 stream 设为 true,即可在同一请求中接收首个轮次的事件。

配置好 API 密钥和 SDK 后,运行以下示例以创建并运行脚本。其运行环境由 OpenAI 管理:

创建会话并流式接收首个轮次的事件
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)

session_id 与您应用的对话状态一同存储。使用它发送后续消息,并获取该对话中已保存的工作内容。

有关可复用的智能体设置,请参阅配置智能体;有关环境选择,请参阅架构。使用 environment.type: "none" 的会话必须提供初始输入。创建会话参考资料列出了请求字段。

跟踪进度并处理结果

智能体工作时,事件会报告输出和变化。请检查轮次的结果:完成、失败或取消。会话处于空闲状态本身并不意味着该轮次成功。

请关注 agent.session.turn.completedagent.session.turn.failedagent.session.turn.cancelled。同时也要检查智能体的输出:轮次完成并不保证每个工具都执行成功。

如果会话需要函数结果或环境连接,请获取该会话并检查 required_actions。您的代码必须处理函数调用连接环境,工作才能继续。

有关事件类型和载荷,请参阅事件和条目

继续或引导工作

向同一会话再发送一条 agent.session.input.message。如果智能体正在工作,这条消息会引导当前轮次。如果会话处于空闲状态,则会基于现有对话启动新轮次。

对已保存智能体的更新仅适用于新会话。要更改本会话后续轮次使用的模型、推理强度或服务层级,请更新此会话的设置

使用该对话的会话 ID 发送输入。请在发送消息之前订阅其事件流,以便您的应用接收该轮次早期的事件。

将您的 API 客户端、会话 ID 和消息传递给应用中的函数:

发送后续消息
# Pass your saved session ID and message to this helper.
def send_message(client: OpenAI, session_id: str, text: str) -> None:
    client.beta.agents.sessions.events.create(
        session_id,
        events=[
            {
                "type": "agent.session.input.message",
                "input": [
                    {
                        "role": "user",
                        "content": [
                            {
                                "type": "input_text",
                                "text": text,
                            }
                        ],
                    }
                ],
            }
        ],
    )

有关将发送消息与流式接收事件结合使用的示例,请参阅事件和条目

获取已保存的工作内容

事件显示实时进度。条目则是已保存的消息和工具调用,其中包括已完成的响应。获取这些条目,即可显示之前的工作内容,或在轮次结束后检查结果:

获取会话条目
# Pass your saved session ID to this helper.
def list_items(client: OpenAI, session_id: str):
    return client.beta.agents.sessions.items.list(session_id, order="asc", limit=100)

请参阅管理会话,了解如何检查会话状态和轮次结果。请参阅文件和产物,了解如何获取文件。

事件流不会重放错过的事件。连接断开后,请获取会话及其已保存的条目,以恢复工作内容。有关重新连接的步骤,请参阅恢复断开的事件流

取消正在进行的轮次

当您希望智能体停止工作时,请取消当前轮次。会话及其之前的工作内容仍然可用:

取消当前正在进行的轮次
# Pass your saved session ID to this helper.
def cancel_turn(client: OpenAI, session_id: str) -> None:
    client.beta.agents.sessions.events.create(
        session_id, events=[{"type": "agent.session.input.cancel"}]
    )