Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-mintlify-style-consistency-1776283399.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
これはインタラクティブなノートブックです。ローカルで実行するか、以下のリンクを使用できます:
マルチエージェントシステムのための Structured Outputs
OpenAI は、強い言葉でのプロンプトを使わずに、モデルが常に提供された JSON スキーマに準拠したレスポンスを生成することを保証する Structured Outputs をリリースしました。Structured Outputs を使用すると、不適切な形式のレスポンスを検証したり、再試行したりする必要がなくなります。 新しいパラメータstrict: true を使用することで、レスポンスが提供されたスキーマに従うことを保証できます。
マルチエージェントシステムで Structured Outputs を使用すると、エージェント間で一貫性があり、処理しやすいデータが保証されるため、コミュニケーションが強化されます。また、明示的な拒否が可能になることで安全性が向上し、再試行や検証の必要がなくなることでパフォーマンスが向上します。これにより、相互作用が簡素化され、システム全体の効率が高まります。
このチュートリアルでは、マルチエージェントシステムで Structured Outputs を活用し、Weave でそれらをトレースする方法を紹介します。
依存関係のインストール
このチュートリアルには以下のライブラリが必要です:WANDB_API_KEY を設定します(これは Colab の secret として提供する必要があります)。
ログを記録したい W&B のプロジェクトを name_of_wandb_project に設定します。
注意: name_of_wandb_project は、トレースをログに記録するチームを指定するために {team_name}/{project_name} の形式にすることもできます。
次に、weave.init() を呼び出して Weave クライアントを取得します。
OpenAI API を使用するため、OpenAI API キーも必要です。OpenAI プラットフォームで サインアップ して、独自の API キーを取得できます(これも Colab の secret として提供する必要があります)。
エージェントのセットアップ
今回取り組むユースケースはデータ分析タスクです。 まず、4 つのエージェントシステムをセットアップしましょう:- Triaging agent(振り分けエージェント):どのアージェントを呼び出すかを決定します。
- Data pre-processing Agent(データ前処理エージェント):クリーニングなどを行い、分析のためのデータを準備します。
- Data Analysis Agent(データ分析エージェント):データに対して分析を実行します。
- Data Visualization Agent(データ可視化エージェント):分析結果を可視化してインサイトを抽出します。 まず、これらの各エージェントのシステムプロンプトを定義することから始めます。
Weave を使用したマルチエージェントの追跡の有効化
以下の処理を行うコードロジックを書く必要があります:- ユーザーのクエリをマルチエージェントシステムに渡す
- マルチエージェントシステムの内部動作を処理する
- ツール呼び出しを実行する
clean_data、start_analysis、および use_line_chart であることが推測できます。
まず、ツール呼び出しを実行する実行関数を定義します。
Python 関数を @weave.op() でデコレートすることで、言語モデルの入力、出力、およびトレースを記録し、デバッグできます。
マルチエージェントシステムを作成すると多くの関数が登場しますが、それらの上に @weave.op() を追加するだけで十分です。
Weave でのマルチエージェントシステムの実行と可視化
最後に、ユーザーの入力を使用して主要なhandle_user_message 関数を実行し、結果を観察します。

analysis_agent の入力と出力を見ると、それが Structured Output 形式であることがわかります。OpenAI の Structured Output はエージェント間の連携を容易にしますが、システムが複雑になるにつれて、これらのやり取りがどのような形式で行われているかを把握するのが難しくなります。Weave を使用すると、これらの中間プロセスとその入出力を、まるで手元で見ているかのように理解することができます。
