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

# OpenAI Agents SDK

> OpenAI Agents SDK で W&B Weave を使用して、エージェントアプリケーションをトラッキングおよび監視します

OpenAI Agents SDK で W\&B Weave を使用して、エージェントアプリケーションをトレースおよび監視できます。

<Tabs>
  <Tab title="Python">
    [OpenAI Agents Python SDK](https://github.com/openai/openai-agents-python) は、マルチエージェントのワークフローを構築するための、軽量かつ強力なフレームワークです。

    ## インストール

    `pip` を使って必要な依存関係をインストールします。

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

    ## はじめに

    OpenAI Agents SDK を Weave で使用するには、次の手順を行います。

    * project 名を指定して Weave を初期化します。
    * エージェントに Weave のトレースプロセッサを追加します。
    * 通常どおりエージェントを作成して実行します。

    次のコードサンプルでは、OpenAI Agent を作成し、トレースできるように Weave と統合しています。Weave project を初期化し、実行トレースを収集するように `WeaveTracingProcessor` を設定します。`Weather` データモデルは天気情報を表します。`get_weather` 関数は、エージェントが使用できるツールとしてデコレートされ、サンプルの天気レポートを返します。`Hello world` という名前のエージェントは、基本的な指示と天気ツールへのアクセスを設定してあります。`main` 関数は、サンプル入力 (`What's the weather in Tokyo?`) を使ってエージェントを非同期で実行し、最終応答を出力します。

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

    weave.init("openai-agents")

    class Weather(BaseModel):
        city: str
        temperature_range: str
        conditions: str

    @function_tool
    def get_weather(city: str) -> Weather:
        return Weather(city=city, temperature_range="14-20C", conditions="Sunny with wind.")

    agent = Agent(
        name="Hello world",
        instructions="You are a helpful agent.",
        tools=[get_weather]
    )

    async def main():
        result = await Runner.run(agent, input="What's the weather in Tokyo?")    
        print(result.final_output)

    if __name__ == "__main__":
        asyncio.run(main())
    ```

    ## トレースを表示

    上記のコードサンプルを実行すると、Weave ダッシュボードへのリンクが生成されます。リンクを開くと、エージェント run のトレースを確認できます。
  </Tab>

  <Tab title="TypeScript">
    [OpenAI Agents Node SDK](https://github.com/openai/openai-node) は、マルチエージェントのワークフローを構築するための、軽量で強力なフレームワークです。

    ## インストール

    `npm` を使用して、必要な依存関係をインストールします。Weave の TypeScript インテグレーションでは、`@openai/agents` バージョン `0.4.15` 以降が必要です。

    ```bash theme={null}
    npm install weave @openai/agents zod
    ```

    ## はじめに

    ほとんどの Node.js 環境では、手動インストルメンテーションは必要ありません。
    Weave は、モジュールの読み込み時に `@openai/agents` を自動的にインストルメントします。

    自動インストルメンテーションは、モジュールローダーフックを登録することで動作します。

    * **CommonJS project:** 追加の設定は不要です。
    * **ESM project:** インストルメンテーションが他のモジュールより先に読み込まれるよう、Node は `--import=weave/instrument` フラグを付けて起動する必要があります。

    project の設定方法や、使用しているタイプの見分け方についてサポートが必要な場合は、[TypeScript SDK: Third-Party Integration Guide](/ja/weave/guides/integrations/js) を参照してください。

    次のコードサンプルでは、OpenAI Agent を作成し、トレース可能にするために Weave と統合します。Weave project の初期化にある `your-team-name/your-project-name` は、ご利用の entity と project に置き換えてください。このサンプルでは、サンプルの天気レポートを返す `get_weather` ツールを定義し、続いて基本的な指示と天気ツールへのアクセス権を持つ `Hello world` という名前の エージェント を設定します。`main` 関数は、サンプル入力 (`What's the weather in Tokyo?`) で エージェント を実行し、最終的な応答をログします。

    ```typescript lines theme={null}
    import * as weave from "weave";
    import { Agent, run, tool } from "@openai/agents";
    import { z } from "zod";

    const getWeather = tool({
      name: "get_weather",
      description: "Get the current weather for a given city.",
      parameters: z.object({
        city: z.string().describe("The name of the city"),
      }),
      async execute({ city }) {
        return `${city}: 14-20C, Sunny with wind.`;
      },
    });

    async function main() {
      // project 情報に更新してください。
      await weave.init("your-team-name/your-project-name");

      const agent = new Agent({
        name: "Hello world",
        instructions: "You are a helpful agent.",
        tools: [getWeather],
      });

      const result = await run(agent, [
        { role: "user", content: "What's the weather in Tokyo?" },
      ]);
      console.log(result.finalOutput);
    }

    main();
    ```

    CommonJS では、自動インストルメンテーションを行うには、`import * as weave from "weave"` 文を `import { Agent, run, tool } from "@openai/agents"` よりも**前**に記述する必要があります。コード上この順序にできない場合は、以下の手動インストルメンテーションを使用してください。

    ### 手動インストルメンテンテーション

    手動インストルメンテーションが必要なのは、次のようにモジュールローダーフックを実行できない場合に限られます。

    * 依存関係を単一ファイルにバンドルするバンドラー。
    * Node CLI フラグを渡せない環境。
    * ローダーフックを経由しない動的なモジュール読み込みパターン。

    このような場合は、`instrumentOpenAIAgents()` を使用してインストルメンテーションを明示的に登録できます。

    ```typescript lines theme={null}
    import * as weave from "weave";

    await weave.init("openai-agents");
    await weave.instrumentOpenAIAgents();
    ```

    トレースプロセッサを完全に制御したい場合 (カスタムプロセッサの設定や条件付き登録を行う場合など) は、手動で作成して登録します:

    ```typescript lines theme={null}
    import { addTraceProcessor } from "@openai/agents";
    import { createOpenAIAgentsTracingProcessor } from "weave";

    ...

    const processor = createOpenAIAgentsTracingProcessor();
    addTraceProcessor(processor);
    ```
  </Tab>
</Tabs>
