> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-mintlify-8476678c.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenAI Agents SDK

> Weave を使用して、OpenAI Agents SDK で構築したエージェントをトレースします。

<Note>
  Weave for Agents はパブリック プレビューです。一般提供前に、機能、API、Agents view UI は変更される可能性があります。
</Note>

[OpenAI Agents SDK](https://github.com/openai/openai-agents-python) は、OpenAI の API 上でエージェントやマルチエージェント ワークフローを構築するための軽量なフレームワークです。Weave は、OpenAI Agents SDK で構築されたエージェントを自動的にトレースし、各エージェントの呼び出し、サブエージェントへのハンドオフ、モデル呼び出し、ツール呼び出しを含むデータを取得します。Weave は、取得したデータを project の **Agents** ビューに表示します。

<Note>
  Weave TypeScript SDK は、OpenAI Agents SDK の自動パッチ適用をサポートしていません。
</Note>

<div id="trace-openai-agents-sdk-agents-with-weave">
  ## OpenAI Agents SDK のエージェントを Weave でトレースする
</div>

Weave SDK は OpenAI Agents SDK に自動でパッチを適用するため、最小限の設定でエージェントのトレースを取得できます。このガイドでは、Weave を初期化したうえで、OpenAI Agents SDK で構築したマルチターンのリサーチエージェントを実行し、セッション全体を通じたすべてのエージェント呼び出し、モデル呼び出し、ツール呼び出しを Weave で取得する方法を説明します。

<div id="prerequisites">
  ### 前提条件
</div>

始める前に、以下が揃っていることを確認してください。

* W\&B アカウントと、`WANDB_API_KEY` 環境変数として設定された [APIキー](https://wandb.ai/authorize)。
* [OpenAI APIキー](https://platform.openai.com/api-keys)。
* Python 3.10+。

<div id="install-packages">
  ### パッケージをインストールする
</div>

スクリプトで Weave と OpenAI Agents SDK を利用できるように、開発環境に次のパッケージをインストールします。

```bash theme={null}
pip install weave openai-agents requests
```

<div id="initialize-weave-in-your-code">
  ### コードで Weave を初期化する
</div>

project に `weave.init` を追加し、W\&B のチーム名と project 名を指定してから、通常どおりエージェントを構築します。次のコードでは、`wikipedia_search` 関数ツールと `Research assistant` エージェントを定義し、Weave がトレースを取得しながら、OpenAI Agents SDK の `Runner` で 3 つの質問を実行します。

```python lines theme={null}
import asyncio
import requests
import weave
from agents import Agent, Runner, function_tool

weave.init("<your-team>/<your-project-name>")

@function_tool
def wikipedia_search(query: str) -> str:
    """Search Wikipedia for a topic and return its title and intro paragraph."""
    r = requests.get(
        "https://en.wikipedia.org/w/api.php",
        params={
            "action": "query", "generator": "search", "gsrsearch": query, "gsrlimit": 1,
            "prop": "extracts", "exintro": True, "explaintext": True, "format": "json",
        },
        headers={"User-Agent": "weave-demo"},
    ).json()
    page = next(iter(r["query"]["pages"].values()))
    return f"{page['title']}: {page['extract']}"

agent = Agent(
    name="Research assistant",
    instructions=(
        "You are a research assistant. Use the wikipedia_search tool to look up "
        "topics when needed, and cite the article titles you used."
    ),
    tools=[wikipedia_search],
)

async def main():
    history = []
    for question in [
        "Who founded Anthropic?",
        "What is Claude (the AI assistant)?",
        "Summarize what we discussed in one sentence.",
    ]:
        history.append({"role": "user", "content": question})
        print(f"USER: {question}")
        result = await Runner.run(agent, input=history)
        print(f"AGENT: {result.final_output}\n")
        history = result.to_input_list()

asyncio.run(main())
```

この例では、1 つの会話内で 3 つのターンを実行します。最初の 2 つのターンでは Wikipedia のルックアップがトリガーされ、3 つ目では、それまでの会話コンテキストを使用して、ツール呼び出し なしで summary を生成します。`Runner.run` を呼び出すたびに、前回の result の input list を次の request として渡すことで、会話を継続します。

<div id="see-your-agent-traces-in-the-agents-view">
  ### Agents ビューでエージェントのトレースを確認する
</div>

スクリプトの実行後、Weave で取得されたアクティビティを確認できます。`weave.init()` は、実行時に project へのリンクを表示します。次の内容を確認するには、**Agents** ビューを開きます。

* **Agents** タブ内にある `Research assistant` の行。
* 3 つのターンを含むセッション。
* ネストされたモデルの Call とツールの Call を含む `invoke_agent` span として表示される各ターン。
* 各ステップでの完全な入力、モデル、出力、トークン使用量、Wikipedia の結果。

Weave で Agents データを表示する方法の詳細については、[エージェントのアクティビティを表示する](/ja/weave/guides/tracking/view-agent-activity) を参照してください。
