Weave for Agents はパブリック プレビューです。一般提供前に、機能、API、Agents view UI は変更される可能性があります。
学習内容
weave.init()を使用して、agent tracing 用に Weave を初期化する。start_session/startSessionとstart_turn/startTurnを使用して、セッションとターンを開始する。start_llm/startLLMで LLM Call をラップし、使用状況を記録する。start_tool/startToolでツール実行をラップし、結果を記録する。- 生成されたセッション、ターン、ツール呼び出し を Agents ビューで表示する。
Weave SDK のエージェントとの連携の仕組み
| 概念 | Python | TypeScript | OTel span |
|---|---|---|---|
| 1 つの会話 | weave.start_session(...) | weave.startSession(...) | (span なし、ターンをグループ化) |
| 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:) 。終了時には、例外が発生した場合も含めて、span を終了し、属性をフラッシュします。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 で認証し、agent スパンを Agents ビューに送信する OTel エクスポーターを設定します。チームにその project が存在しない場合、Weave は最初に書き込んだときに作成します。
ツールを定義する
トレースされたマルチターン エージェントを実行する
chatspan を開き、ツール を呼び出すかどうかを LLM に判断させます。- LLM が ツール を要求した場合は、呼び出しを
execute_toolspan で囲み、その結果を LLM に返します。 - 2 つ目の
chatspan を開いて、最終的な回答を生成します。
Agentsビューでエージェントのトレースを確認する
weave.init() が実行されると、次の内容を確認できる project へのリンクが表示されます。
- Agents タブにある
research-botの行。 - 3 つの ターン を含む 1 つのセッション。
- 各 ターン (
invoke_agent) には、2 つのchatspan と、その内側にネストされたexecute_toolspan が含まれます。 - 各
chatの token 数、レイテンシ、モデル、メッセージの完全なやり取り。
次のステップ
- Weave でエージェントをトレースする方法や、Weave SDK で利用できる機能とオプションについて学んでください。
- エージェントに Weave を統合するその他の方法については、エージェント インテグレーションをトレースするを参照してください。