Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-john-wbdocs-2044-rename-serverless-products.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
OpenAI Agents SDK で W&B Weave を使用して、エージェントアプリケーションをトレースおよび監視できます。
OpenAI Agents Python SDK は、マルチエージェントのワークフローを構築するための、軽量かつ強力なフレームワークです。インストール
pip を使って必要な依存関係をインストールします。pip install weave openai-agents
はじめに
OpenAI Agents SDK を Weave で使用するには、次の手順を行います。
- プロジェクト名を指定して Weave を初期化します。
- エージェントに Weave のトレースプロセッサを追加します。
- 通常どおりエージェントを作成して実行します。
次のコードサンプルでは、OpenAI Agent を作成し、トレースできるように Weave と統合しています。Weave プロジェクトを初期化し、実行トレースを収集するように WeaveTracingProcessor を設定します。Weather データモデルは天気情報を表します。get_weather 関数は、エージェントが使用できるツールとしてデコレートされ、サンプルの天気レポートを返します。Hello world という名前のエージェントは、基本的な指示と天気ツールへのアクセスを設定してあります。main 関数は、サンプル入力 (What's the weather in Tokyo?) を使ってエージェントを非同期で実行し、最終応答を出力します。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 ダッシュボードへのリンクが生成されます。リンクを開くと、agent run のトレースを確認できます。 OpenAI Agents Node SDK は、マルチエージェントのワークフローを構築するための、軽量で強力なフレームワークです。インストール
npm を使用して、必要な依存関係をインストールします。npm install weave @openai/agents zod
はじめに
ほとんどの Node.js 環境では、手動インストルメンテーションは必要ありません。
Weave は、モジュールの読み込み時に @openai/agents を自動的にインストルメントします。自動インストルメンテーションは、モジュールローダーフックを登録することで動作します。
- CommonJS プロジェクト: 追加の設定は不要です。
- ESM プロジェクト: インストルメンテーションが他のモジュールより先に読み込まれるよう、Node は
--import=weave/instrument フラグを付けて起動する必要があります。
プロジェクトの設定方法や、使用しているタイプの見分け方についてサポートが必要な場合は、TypeScript SDK: Third-Party Integration Guide を参照してください。次のコードサンプルでは、OpenAI Agent を作成し、トレース可能にするために Weave と統合します。Weave プロジェクトの初期化にある your-team-name/your-project-name は、ご利用の entity とプロジェクトに置き換えてください。このサンプルでは、サンプルの天気レポートを返す get_weather ツールを定義し、続いて基本的な指示と天気ツールへのアクセス権を持つ Hello world という名前の agent を設定します。main 関数は、サンプル入力 (What's the weather in Tokyo?) で agent を実行し、最終的なレスポンスをログします。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() {
// プロジェクト情報に合わせて更新してください。
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() を使用してインストルメンテーションを明示的に登録できます。import * as weave from "weave";
await weave.init("openai-agents");
await weave.instrumentOpenAIAgents();
トレースプロセッサを完全に制御したい場合 (カスタムプロセッサの設定や条件付き登録を行う場合など) は、手動で作成して登録します:import { addTraceProcessor } from "@openai/agents";
import { createOpenAIAgentsTracingProcessor } from "weave";
...
const processor = createOpenAIAgentsTracingProcessor();
addTraceProcessor(processor);