bedrock-agent-runtime クライアントへの Call をトレースします。これにより、各 invoke_agent の invocation について、基盤モデル、トークン使用量、セッション ID、エージェントの応答などを確認できます。
Weave TypeScript SDK は現在、Bedrock Agents インテグレーションをサポートしていません。
前提条件
- W&B APIキー。詳細については、APIキーを参照してください。
- Bedrock Agents へのアクセス権を持つアカウント用に設定された AWS 認証情報 (Identity and access management for Amazon Bedrock を参照してください) 。
-
既存の Bedrock エージェントとエイリアス。
agentIdとagentAliasIdを控えておいてください。次の AWS CLI コマンドを実行すると、ご自身の ID に関連付けられたエージェントの一覧を取得できます。<your-region>は、エージェントが配置されているリージョンのスラッグに置き換えてください。
インストール
Weave と AWS SDK for Python をインストールします。invoke_agent の Call をトレースする
bedrock-agent-runtime クライアントを作成し、patch_client に渡します。Weave がクライアントのタイプを検出し、invoke_agent メソッドをラップします。パッチの適用後は、通常どおりクライアントを使用できます。
invoke_agent の Call は、Weights & Biases の UI に BedrockAgentRuntime.invoke_agent トレースとして表示されます。トレースには次の内容が記録されます。
- エージェントの入力 (
agentId、agentAliasId、sessionId、inputText) 。 - completion イベントストリームから抽出されたアシスタントのテキスト。
- エージェントが使用する基盤モデル (オーケストレーショントレースから抽出) 。
- トークン使用量 (
prompt_tokens、completion_tokens、total_tokens) 。エージェントから報告された場合に記録されます。
orchestrationTrace イベントから抽出されます。Bedrock がこのイベントを出力するのは、enableTrace=True を指定して invoke_agent を呼び出した場合のみです。このフラグを指定しなくても、トレースには入力と生成された応答テキストが記録されます。ただし、基盤モデルは bedrock-agent:<agentId> にフォールバックし、トークン数は取得できません。
関連するエージェントの Call をまとめてネストする
前処理、後処理、チェーンされた API 呼び出しなどの関連ロジックとinvoke_agent の Call をグループ化するには、関数を @weave.op でラップします。Weave は、パッチが適用された invoke_agent のトレースを親 op の中にネストします。
マルチターンの会話
Bedrock Agents では、sessionId を再利用すると、会話の状態がサービス側で保持されます。Weights & Biases の UI で複数のターンを 1 つのトレースにまとめるには、それらのターンを weave.thread でラップします。
トレースを表示する
サンプルを実行すると、Weave が project のダッシュボードへのリンクを出力します。このリンクを開くと、各invoke_agent Call のエージェントへの入力、基盤モデル、トークン使用量、生成された応答を確認できます。