For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal

Execute e continue sessões

Inicie o trabalho, acompanhe o progresso e continue a conversa.

Uma sessão mantém a configuração, a conversa e o trabalho salvo de um agente ao longo do tempo. Reutilize a mesma sessão para enviar novas mensagens e continuar o trabalho.

Sessões e turnos

Um turno é um ciclo de trabalho dentro de uma sessão. Uma mensagem enviada a uma sessão ociosa inicia um novo turno. Uma mensagem enviada durante um turno ativo orienta esse turno.

Os turnos são executados de forma assíncrona. Sua aplicação pode acompanhar o progresso por streaming ou receber alterações no estado da sessão por webhooks.

Inicie o trabalho

Crie uma sessão com uma configuração de agente e um input inicial. Defina stream como true para receber eventos do primeiro turno na mesma requisição.

Com sua chave de API e seu SDK configurados, execute este exemplo para criar e executar um script. A OpenAI gerencia o ambiente dele:

Crie uma sessão e receba seu primeiro turno por streaming
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)

Armazene o session_id junto com o estado da conversa da sua aplicação. Use-o para enviar novas mensagens e recuperar o trabalho salvo dessa conversa.

Consulte Configuração de Agentes para ver configurações reutilizáveis de agentes e Arquitetura para conhecer as opções de ambiente. Sessões com environment.type: "none" exigem uma entrada inicial. A referência de criação de sessão lista os campos da requisição.

Acompanhe o progresso e trate os resultados

Os eventos informam as saídas e as alterações enquanto o agente trabalha. Verifique o resultado do turno: conclusão, falha ou cancelamento. Uma sessão ociosa, por si só, não significa que o turno foi bem-sucedido.

Procure por agent.session.turn.completed, agent.session.turn.failed ou agent.session.turn.cancelled. Inspecione também a saída do agente: um turno concluído não garante que todas as ferramentas tenham sido executadas com sucesso.

Se a sessão precisar do resultado de uma função ou de uma conexão com um ambiente, recupere a sessão e inspecione required_actions. Seu código deve tratar a chamada de função ou conectar o ambiente para que o trabalho possa continuar.

Consulte Eventos e itens para conhecer os tipos de eventos e seus payloads.

Continue ou oriente o trabalho

Envie outra agent.session.input.message à mesma sessão. Se o agente estiver trabalhando, a mensagem orienta o turno ativo. Se a sessão estiver ociosa, a mensagem inicia um novo turno com a conversa existente.

As atualizações em agentes salvos se aplicam apenas a novas sessões. Para alterar o modelo, o esforço de raciocínio ou o nível de serviço nos turnos posteriores desta sessão, atualize as configurações da sessão.

Use o ID da sessão da conversa para enviar entradas. Inscreva-se no fluxo de eventos da sessão antes de enviar a mensagem para que sua aplicação receba os primeiros eventos do turno.

Passe seu cliente de API, o ID da sessão e a mensagem para uma função da sua aplicação:

Envie uma nova mensagem
# 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,
                            }
                        ],
                    }
                ],
            }
        ],
    )

Para ver um exemplo que combina envio e streaming, consulte Eventos e itens.

Recupere o trabalho salvo

Os eventos mostram o progresso em tempo real. Os itens são as mensagens e chamadas de ferramentas salvas, incluindo respostas concluídas. Recupere-os para exibir trabalhos anteriores ou inspecionar os resultados após o término de um turno:

Recupere os itens da sessão
# 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)

Consulte Gerenciamento de sessões para inspecionar o estado da sessão e os resultados dos turnos. Recupere arquivos conforme descrito em Arquivos e artefatos.

Os fluxos não retransmitem eventos perdidos. Após uma desconexão, recupere a sessão e seus itens salvos para recuperar o trabalho. Consulte Recupere um fluxo desconectado para ver o procedimento de reconexão.

Cancele um turno ativo

Cancele o turno atual quando quiser que o agente pare. A sessão e o trabalho anterior continuam disponíveis:

Cancele o turno ativo
# 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"}]
    )