Weave for Agents はパブリック プレビューです。一般提供前に、機能、API、Agents view UI は変更される可能性があります。
学習内容
weave.init()を使用して、agent tracing 用に Weave を初期化する。start_session/startSessionとstart_turn/startTurnを使用して、セッションとターンを開始する。start_llm/startLLMで LLM Call をラップし、Usage を記録する。start_tool/startToolでツール実行をラップし、結果を記録する。- 生成されたセッション、ターン、ツールコールを Agents ビューで確認する。
Weave SDK とエージェントの連携の仕組み
| 概念 | Python | TypeScript | OTel span |
|---|---|---|---|
| 1 つの会話 | weave.start_session(...) | weave.startSession(...) | (スパンなし。ターンをグループ化) |
| 1 回のユーザーまたはエージェントのやり取り | weave.start_turn(...) | weave.startTurn(...) | invoke_agent |
| 1 回の LLM API 呼び出し | weave.start_llm(...) | weave.startLLM(...) | chat |
| 1 回のツール実行 | weave.start_tool(...) | weave.startTool(...) | execute_tool |
with weave.start_*(...) as obj:) 。コンテキストを抜けると、例外が発生した場合も含めて、スパンを終了し、属性を flush します。TypeScript では、返された各オブジェクトに対して .end() を呼び出します。例外が発生した場合でも確実にクリーンアップするには、try { ... } finally { obj.end(); } を使用してください。
gen_ai.usage.* や gen_ai.agent.name などの他の GenAI semantic-convention attributes を指定すると、追加の表示も有効になりますが、これらは任意です。
前提条件
- W&Bアカウントと APIキー
- OpenAI APIキー
- Python 3.10+ (Python の例を使用する場合)
- Node.js 18+ (TypeScript の例では組み込みの
fetchが必要です)
パッケージをインストール
Weave を初期化する
weave.init() は W&B で認証を行い、エージェントのスパンを Agents ビューに送信する OTel exporter を設定します。チームにそのプロジェクトが存在しない場合、Weave は最初に書き込むときにプロジェクトを作成します。
ツールを定義する
トレースされたマルチターン エージェントを実行する
chatspan を開始し、ツールを呼び出すかどうかを LLM に選択させます。- LLM がツールをリクエストした場合は、呼び出しを
execute_toolspan で囲み、その結果を LLM に戻します。 - 2 つ目の
chatspan を開始し、最終的な回答を生成します。
Agents ビューでエージェントのトレースを確認する
weave.init() を実行すると、以下を確認できる project へのリンクが出力されます。
- Agents タブに
research-botの行が 1 つ表示されます。 - 3 つのターンを含む 1 つのセッション。
- 各ターン (
invoke_agent) には、2 つのchatスパンと、その内側にネストされたexecute_toolスパンがあります。 - 各
chatのトークン数、レイテンシ、モデル、およびメッセージのやり取り全体。
次のステップ
- エージェントを Weave でトレースする では、エージェントをトレースする方法と、Weave SDK で利用できる機能やオプションを学べます。
- エージェントに Weave を統合するその他の方法については、エージェント インテグレーションをトレースするを参照してください。