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
Theme

Guia de início rápido da API de agentes

Crie um agente que escreve e executa um script em um sandbox hospedado pela OpenAI.

Crie um assistente de programação que escreve o script tree.py, executa esse script e exibe uma árvore de diretórios. A OpenAI gerencia o agente, a conversa e o sandbox em que ele trabalha.

Pré-requisitos

No seu projeto na plataforma da OpenAI, crie uma chave de API para o aplicativo. Conceda à chave as permissões api.agents.read e api.agents.write para operações de sessão e api.responses.write para inferência do modelo. Em seguida, exporte a chave:

export OPENAI_API_KEY="your-api-key"

Mantenha essa chave fora do sandbox do agente. Consulte Sandboxes hospedados pela OpenAI para saber como configurar o sandbox e quais limites se aplicam.

As requisições exigem o cabeçalho OpenAI-Beta: agents=v1. Os SDKs da OpenAI incluem esse cabeçalho automaticamente. Ao usar cURL, inclua o cabeçalho explicitamente.

1. Execute uma tarefa

Escolha uma linguagem, instale o SDK da OpenAI e execute o exemplo. Os exemplos com SDK usam o namespace beta.agents. A requisição cria uma sessão, envia uma tarefa e transmite atualizações de progresso em tempo real.

Instale ou atualize o SDK para Python:

pip install --upgrade openai

Salve o exemplo como quickstart.py:

Criar e executar 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,
    ).with_result_collection() as stream:
        for event in stream:
            print(event.to_json(indent=None), flush=True)
        result = stream.get_final_result()
    print(result.output_text)
    session_id = result.session_id

Execute o exemplo no terminal:

python quickstart.py

Não precisa de um sandbox? Defina environment.type como none para agentes que respondem a perguntas ou chamam ferramentas externas sem executar comandos nem trabalhar com arquivos locais. Saiba mais.

2. Acompanhe o progresso

O terminal exibe os eventos à medida que chegam. Os exemplos com SDK exibem os eventos em JSON. O cURL mostra o fluxo de eventos em formato bruto. Quando a execução é bem-sucedida, o agente cria tree.py, executa o script e mostra uma árvore de diretórios que contém esse arquivo. Os demais arquivos e a saída variam conforme o sandbox.

Procure o evento agent.session.turn.completed e confira o resultado da execução informado pelo agente. A conclusão de um turno não garante que todas as chamadas de ferramenta tenham sido bem-sucedidas. Eventos cujos nomes terminam em turn.failed, turn.cancelled ou session.failed indicam falha ou cancelamento. O evento agent.session.idle, por si só, não indica sucesso. Se a conexão cair antes do fim da transmissão, recupere a sessão e os itens salvos nela antes de tentar novamente.

3. Continue a sessão

Salve o session_id que aparece nos eventos. Use esse identificador para enviar outra mensagem, como “Adicione ao script tree.py uma opção para definir a profundidade máxima, execute o script e me mostre a saída.” Abra o fluxo de eventos antes de enviar a próxima mensagem para acompanhar os eventos desde o início.

4. Exclua a sessão quando terminar

Mantenha a sessão para executar outras tarefas ou exclua-a quando terminar. Antes de excluí-la, salve os arquivos de que precisar.

No exemplo, substitua sess_123 pelo ID da sessão que você salvou.

Excluir a sessão
# 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())

Próximos passos