For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション
Theme

Agents API クイックスタート

OpenAI がホストするサンドボックスでスクリプトを作成し、実行するエージェントを構築します。

このクイックスタートでは、tree.py を作成して実行し、ディレクトリツリーを表示するコーディングアシスタントを構築します。エージェント、その会話、エージェントが作業するサンドボックスは、いずれも OpenAI が管理します。

前提条件

OpenAI Platform のプロジェクトでアプリケーション用の API キーを作成します。セッション操作用に api.agents.read と api.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,
    ).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

ターミナルから実行します。

python quickstart.py

サンドボックスが不要な場合は、environment.type を none に設定します。これは、コマンドの実行やローカルファイルの操作を行わずに、質問に答えたり外部ツールを呼び出したりするエージェント向けの設定です。詳しい設定方法をご覧ください。

2. 進行状況の確認

ターミナルには、ストリームで届いたイベントが順次表示されます。SDK のサンプルは JSON を出力し、cURL は受信したイベントストリームをそのまま表示します。実行が成功すると、エージェントは tree.py を作成して実行し、そのファイルを含むディレクトリツリーを報告します。ほかに含まれるファイルや出力内容は、サンドボックスによって異なります。

イベント agent.session.turn.completed が表示されたら、エージェントが報告した実行結果を確認します。ターンが完了しても、すべてのツールが正常に実行されたとは限りません。イベント名の末尾が turn.failed、turn.cancelled、session.failed のいずれかであれば、失敗またはキャンセルを示します。agent.session.idle だけでは成功したかどうかは判断できません。ストリームが途中で切断された場合は、再試行する前にセッションとそこに保存された項目を取得します。

3. セッションの継続

イベントに含まれる session_id を保存します。この ID を使って追加の指示を送信します。たとえば、「tree.py にディレクトリツリーの深さの上限を指定するオプションを追加し、スクリプトを実行して出力を見せてください」と指示できます。最初のイベントを取りこぼさないよう、追加の指示を送信する前にイベントストリームを開いてください。

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())

次のステップ