> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-workspaces-notebooks.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# WeaveAdkPlugin

> TypeScript SDK リファレンス

export const GitHubLink = ({url, compact = false}) => <a href={url} target="_blank" rel="noopener noreferrer" className={compact ? "source-link" : "github-source-link"}>
    {compact ? "ソースを表示" : <>
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
    </svg>
    GitHub のソース
      </>}
  </a>;

<GitHubLink url="https://github.com/wandb/weave/blob/7c9efdc9fe05ffcaf2430dd652ef9bc5b3ffdfaa/sdks/node/src/integrations/googleAdk.ts#L589" />

Weave のエージェント パイプラインで、ランナーの invocation、エージェントの run、モデルの Call、ツールの実行を GenAI-semconv OTel スパンとして出力する ADK プラグインです。

構造的に `BasePlugin` の完全なサーフェスを実装しています。ADK の PluginManager はすべてのコールバックを呼び出すため、no-op のコールバックであっても、すべて定義されています。ADK は `undefined` 以外の戻り値をショートサーキットとして扱うため、各コールバックは自身のエラーを捕捉して `undefined` を返します。

<div id="implements">
  ## 実装
</div>

* `BasePlugin`

<div id="constructor">
  ## コンストラクター
</div>

> **new WeaveAdkPlugin**(): `WeaveAdkPlugin`

<div id="returns">
  ### 戻り値
</div>

`WeaveAdkPlugin`

<div id="properties">
  ## プロパティ
</div>

<div id="name">
  ### 名
</div>

> `readonly` **名**: `"weave"` = `WEAVE_ADK_PLUGIN_NAME`

<div id="implementation-of">
  #### 実装元
</div>

`AdkBasePlugin.name`

<div id="methods">
  ## メソッド
</div>

<div id="afteragentcallback">
  ### afterAgentCallback()
</div>

> **afterAgentCallback**(`params`): `Promise`\<`undefined`>

エージェントの主要なロジックの完了後に実行されるコールバックです。

このコールバックを使用して、返される前にエージェントの最終結果を検査、ログする、または変更できます。

<div id="parameters">
  #### パラメーター
</div>

<ParamField path="params" type="object" required>
  <Expandable title="プロパティ" defaultOpen>
    <ParamField path="agent" type="BaseAgent" required>
      実行が完了したエージェント。
    </ParamField>

    <ParamField path="callbackContext" type="Context" required>
      エージェントの invocation のコンテキスト。
    </ParamField>
  </Expandable>
</ParamField>

<div id="returns-2">
  #### 戻り値
</div>

`Promise`\<`undefined`>

任意の `Content` オブジェクトです。値を返した場合、
エージェントの元の結果が置き換えられます。`undefined` を返した場合は、
変更されていない元の結果が使用されます。

<div id="implementation-of-2">
  #### 実装元
</div>

`AdkBasePlugin.afterAgentCallback`

***

<div id="aftercontextcompaction">
  ### afterContextCompaction()
</div>

> **afterContextCompaction**(`_params`): `Promise`\<`undefined`>

コンテキストの圧縮後に実行されるコールバックです。

このコールバックにより、圧縮後のコンテキストを
確認できます。

<div id="parameters-2">
  #### パラメーター
</div>

<ParamField path="_params" type="unknown" required />

<div id="returns-3">
  #### 戻り値
</div>

`Promise`\<`undefined`>

<div id="implementation-of-3">
  #### 実装元
</div>

`AdkBasePlugin.afterContextCompaction`

***

<div id="aftermodelcallback">
  ### afterModelCallback()
</div>

> **afterModelCallback**(`params`): `Promise`\<`undefined`>

モデルから応答を受信した後に実行されるコールバック。

ここは、モデルの応答をログし、トークン使用量に関するメトリクスを収集し、
生の `LlmResponse` を後処理するのに最適な場所です。

<div id="parameters-3">
  #### パラメーター
</div>

<ParamField path="params" type="object" required>
  <Expandable title="プロパティ" defaultOpen>
    <ParamField path="callbackContext" type="Context" required>
      現在のエージェント Call のコンテキストです。
    </ParamField>

    <ParamField path="llmResponse" type="LlmResponse" required>
      モデルから受け取った応答オブジェクトです。
    </ParamField>
  </Expandable>
</ParamField>

<div id="returns-4">
  #### 戻り値
</div>

`Promise`\<`undefined`>

任意の値です。`undefined` 以外の値を返すと、
フレームワークが応答を変更または置き換える場合があります。`undefined` を返すと、
元の応答が使用されます。

<div id="implementation-of-4">
  #### 実装元
</div>

`AdkBasePlugin.afterModelCallback`

***

<div id="afterruncallback">
  ### afterRunCallback()
</div>

> **afterRunCallback**(`params`): `Promise`\<`undefined`>

ADK ランナーの run の完了後に実行されるコールバックです。

ADK ライフサイクルにおける最後のコールバックであり、クリーンアップ、
最終的にログすること、またはレポート作成に適しています。

<div id="parameters-4">
  #### パラメーター
</div>

<ParamField path="params" type="object" required>
  <Expandable title="プロパティ" defaultOpen>
    <ParamField path="invocationContext" type="InvocationContext" required>
      invocation 全体のコンテキストです。
    </ParamField>
  </Expandable>
</ParamField>

<div id="returns-5">
  #### 戻り値
</div>

`Promise`\<`undefined`>

undefined

<div id="implementation-of-5">
  #### 実装元
</div>

`AdkBasePlugin.afterRunCallback`

***

<div id="aftertoolcallback">
  ### afterToolCallback()
</div>

> **afterToolCallback**(`params`): `Promise`\<`undefined`>

ツールの呼び出し後に実行されるコールバックです。

このコールバックを使用すると、ツールから返された結果を検査、ログ、または変更できます。

<div id="parameters-5">
  #### パラメーター
</div>

<ParamField path="params" type="object" required>
  <Expandable title="プロパティ" defaultOpen>
    <ParamField path="result" type="Record<string, unknown> | null" required>
      ツール の invocation が返した辞書 です。
    </ParamField>

    <ParamField path="tool" type="BaseTool" required>
      実行が完了した直後のツール の インスタンス です。
    </ParamField>

    <ParamField path="toolArgs" type="Record<string, unknown>" required>
      ツール に渡された元の引数です。
    </ParamField>

    <ParamField path="toolContext" type="Context" required>
      ツール実行に固有のコンテキストです。
    </ParamField>
  </Expandable>
</ParamField>

<div id="returns-6">
  #### 戻り値
</div>

`Promise`\<`undefined`>

省略可能な辞書です。辞書を返した場合、
ツールの元の結果は**置き換えられます**。これにより、
ツールの出力を後処理または変更できます。`undefined` を返した場合は、
変更されていない元の結果が使用されます。

<div id="implementation-of-6">
  #### 実装元
</div>

`AdkBasePlugin.afterToolCallback`

***

<div id="beforeagentcallback">
  ### beforeAgentCallback()
</div>

> **beforeAgentCallback**(`params`): `Promise`\<`undefined`>

エージェントの主要ロジックが呼び出される前に実行されるコールバックです。

このコールバックは、ログすることやセットアップ、または値を返してエージェントの
実行を中断するために使用できます。

<div id="parameters-6">
  #### パラメーター
</div>

<ParamField path="params" type="object" required>
  <Expandable title="プロパティ" defaultOpen>
    <ParamField path="agent" type="BaseAgent" required>
      これから実行されるエージェント。
    </ParamField>

    <ParamField path="callbackContext" type="Context" required>
      エージェントの invocation のコンテキスト。
    </ParamField>
  </Expandable>
</ParamField>

<div id="returns-7">
  #### 戻り値
</div>

`Promise`\<`undefined`>

省略可能な`Content`オブジェクト。値を返すと、
エージェントのコールバックと実行をスキップして、その値が直接返されます。
`undefined`を返すと、エージェントは通常どおり処理を続行します。

<div id="implementation-of-7">
  #### 実装元
</div>

`AdkBasePlugin.beforeAgentCallback`

***

<div id="beforecontextcompaction">
  ### beforeContextCompaction()
</div>

> **beforeContextCompaction**(`_params`): `Promise`\<`undefined`>

コンテキストの圧縮前に実行されるコールバックです。

このコールバックを使用すると、コンテキストが圧縮される前に
検査または変更できます。

<div id="parameters-7">
  #### パラメーター
</div>

<ParamField path="_params" type="unknown" required />

<div id="returns-8">
  #### 戻り値
</div>

`Promise`\<`undefined`>

<div id="implementation-of-8">
  #### 実装元
</div>

`AdkBasePlugin.beforeContextCompaction`

***

<div id="beforemodelcallback">
  ### beforeModelCallback()
</div>

> **beforeModelCallback**(`params`): `Promise`\<`undefined`>

モデルにリクエストが送信される前に実行されるコールバックです。

`LlmRequest`オブジェクトを検査、ログ、または変更できます。
また、キャッシュされた`LlmResponse`を返すことでキャッシュを実装でき、その場合は実際のモデルの Callをスキップします。

<div id="parameters-8">
  #### パラメーター
</div>

<ParamField path="params" type="object" required>
  <Expandable title="プロパティ" defaultOpen>
    <ParamField path="callbackContext" type="Context" required>
      現在のエージェント Call のコンテキストです。
    </ParamField>

    <ParamField path="llmRequest" type="LlmRequest" required>
      モデルに送信される、準備済みのリクエストオブジェクトです。
    </ParamField>
  </Expandable>
</ParamField>

<div id="returns-9">
  #### 戻り値
</div>

`Promise`\<`undefined`>

任意の値です。`undefined` 以外の値を返すと、
処理が早期終了し、応答が直ちに返されます。`undefined` を返すと、LLM リクエストは通常どおり続行されます。

<div id="implementation-of-9">
  #### 実装元
</div>

`AdkBasePlugin.beforeModelCallback`

***

<div id="beforeruncallback">
  ### beforeRunCallback()
</div>

> **beforeRunCallback**(`params`): `Promise`\<`undefined`>

ADK ランナーの実行前に呼び出されるコールバックです。

ライフサイクルで最初に呼び出されるコールバックであり、グローバルな
セットアップや初期化タスクに適しています。

<div id="parameters-9">
  #### パラメーター
</div>

<ParamField path="params" type="object" required>
  <Expandable title="プロパティ" defaultOpen>
    <ParamField path="invocationContext" type="InvocationContext" required>
      セッション情報、ルートエージェントなどを含む、invocation 全体のコンテキストです。
    </ParamField>
  </Expandable>
</ParamField>

<div id="returns-10">
  #### 戻り値
</div>

`Promise`\<`undefined`>

ADK に返す任意の `Event`。値を返すと、
ランナーの実行が停止され、そのイベントでランナーが終了します。
通常どおり続行するには `undefined` を返します。

<div id="implementation-of-10">
  #### 実装元
</div>

`AdkBasePlugin.beforeRunCallback`

***

<div id="beforetoolcallback">
  ### beforeToolCallback()
</div>

> **beforeToolCallback**(`params`): `Promise`\<`undefined`>

ツールが呼び出される前に実行されるコールバックです。

このコールバックは、ツールの使用状況をログすること、入力の検証、またはツールに渡す前の引数の変更に役立ちます。

<div id="parameters-10">
  #### パラメーター
</div>

<ParamField path="params" type="object" required>
  <Expandable title="プロパティ" defaultOpen>
    <ParamField path="tool" type="BaseTool" required>
      これから実行されるツール インスタンス。
    </ParamField>

    <ParamField path="toolArgs" type="Record<string, unknown>" required>
      ツール の呼び出しに使用する引数の辞書。
    </ParamField>

    <ParamField path="toolContext" type="Context" required>
      ツール実行に固有のコンテキスト。
    </ParamField>
  </Expandable>
</ParamField>

<div id="returns-11">
  #### 戻り値
</div>

`Promise`\<`undefined`>

任意の辞書です。辞書が返された場合、
ツール実行を停止し、この応答を直ちに返します。
`undefined` を返すと、元の未変更の引数が使用されます。

<div id="implementation-of-11">
  #### 実装元
</div>

`AdkBasePlugin.beforeToolCallback`

***

<div id="beforetoolselection">
  ### beforeToolSelection()
</div>

> **beforeToolSelection**(`_params`): `Promise`\<`undefined`>

ツールが選択される前に実行されるコールバックです。

このコールバックを使用すると、選択前に利用可能なツールを検査、ログ記録、または変更できます。

<div id="parameters-11">
  #### パラメーター
</div>

<ParamField path="_params" type="unknown" required />

<div id="returns-12">
  #### 戻り値
</div>

`Promise`\<`undefined`>

任意の値です。`undefined` 以外の値を返すと、
フレームワークが使用可能なツールを変更または置き換えることがあります。`undefined` を返すと、
元のツールが使用されます。

<div id="implementation-of-12">
  #### 実装元
</div>

`AdkBasePlugin.beforeToolSelection`

***

<div id="finishinterruptedinvocation">
  ### finishInterruptedInvocation()
</div>

> **finishInterruptedInvocation**(`invocationId`): `void`

`afterRunCallback` に到達しなかった run を終了処理します。ADK はイベント ループが通常どおりドレインされた場合にのみ
`afterRunCallback` をディスパッチするため、`runAsync` を途中で抜けたコンシューマーや、
中止された run では、その invocation (および関連するスパン) が開いたまま残ります。
自動インストルメントされたランナー ラッパーは、これらを中断として閉じるために `finally` からこれを呼び出します。
べき等であり、run がすでに終了している場合 (一般的な、完全に消費されたケース) には何もしません。

<div id="parameters-12">
  #### パラメーター
</div>

<ParamField path="invocationId" type="string" required />

<div id="returns-13">
  #### 戻り値
</div>

`void`

***

<div id="oneventcallback">
  ### onEventCallback()
</div>

> **onEventCallback**(`params`): `Promise`\<`undefined`>

ランナーからイベントが生成された後に実行されるコールバックです。

基盤となるエージェントアプリでイベントが処理される前に、
イベントに変更を加えるのに最適な場所です。

<div id="parameters-13">
  #### パラメーター
</div>

<ParamField path="params" type="object" required>
  <Expandable title="プロパティ" defaultOpen>
    <ParamField path="event" type="Event" required>
      ランナーが発生させたイベントです。
    </ParamField>

    <ParamField path="invocationContext" type="InvocationContext" required>
      invocation 全体のコンテキストです。
    </ParamField>
  </Expandable>
</ParamField>

<div id="returns-14">
  #### 戻り値
</div>

`Promise`\<`undefined`>

任意の値です。`undefined` 以外の値を返すと、
フレームワークが応答を変更または置き換える場合があります。`undefined` を返すと、
元の応答が使用されます。

<div id="implementation-of-13">
  #### 実装元
</div>

`AdkBasePlugin.onEventCallback`

***

<div id="onmodelerrorcallback">
  ### onModelErrorCallback()
</div>

> **onModelErrorCallback**(`params`): `Promise`\<`undefined`>

モデルの Callでエラーが発生したときに実行されるコールバックです。

このコールバックでは、モデルエラーを適切に処理し、
代替の応答や復旧手段を提供できます。

<div id="parameters-14">
  #### パラメーター
</div>

<ParamField path="params" type="object" required>
  <Expandable title="プロパティ" defaultOpen>
    <ParamField path="callbackContext" type="Context" required>
      現在のエージェント Call のコンテキスト。
    </ParamField>

    <ParamField path="error" type="Error" required>
      モデルの実行中に発生した例外。
    </ParamField>

    <ParamField path="llmRequest" type="LlmRequest" required>
      エラー発生時にモデルへ送信されたリクエスト。
    </ParamField>
  </Expandable>
</ParamField>

<div id="returns-15">
  #### 戻り値
</div>

`Promise`\<`undefined`>

省略可能な LlmResponse。LlmResponse が返された場合、エラーを伝播する代わりに
それが使用されます。`undefined` を返すと、元のエラーが送出されます。

<div id="implementation-of-14">
  #### 実装元
</div>

`AdkBasePlugin.onModelErrorCallback`

***

<div id="ontoolerrorcallback">
  ### onToolErrorCallback()
</div>

> **onToolErrorCallback**(`params`): `Promise`\<`undefined`>

ツール Call でエラーが発生したときに実行されるコールバック。
tool: BaseTool;
toolArgs: Record\<string, unknown>;
toolContext: Context;
result: Record\<string, unknown>;
}): Promise\<Record\<string, unknown> | undefined> \{
return;
}

/\*\*
ツール Call でエラーが発生したときに実行されるコールバック。

このコールバックを使用すると、ツールのエラーを適切に処理し、
代替の応答や復旧メカニズムを提供できます。

<div id="parameters-15">
  #### パラメーター
</div>

<ParamField path="params" type="object" required>
  <Expandable title="プロパティ" defaultOpen>
    <ParamField path="error" type="Error" required>
      ツール実行中に発生した例外です。
    </ParamField>

    <ParamField path="tool" type="BaseTool" required>
      エラーが発生したツールのインスタンスです。
    </ParamField>

    <ParamField path="toolArgs" type="Record<string, unknown>" required>
      ツールに渡された引数です。
    </ParamField>

    <ParamField path="toolContext" type="Context" required>
      そのツール実行に固有のコンテキストです。
    </ParamField>
  </Expandable>
</ParamField>

<div id="returns-16">
  #### 戻り値
</div>

`Promise`\<`undefined`>

省略可能な辞書です。辞書を返した場合、エラーを伝播せずに
ツールの応答として使用されます。`undefined` を返すと、元のエラーが送出されます。

<div id="implementation-of-15">
  #### 実装元
</div>

`AdkBasePlugin.onToolErrorCallback`

***

<div id="onusermessagecallback">
  ### onUserMessageCallback()
</div>

> **onUserMessageCallback**(`_params`): `Promise`\<`undefined`>

ユーザーメッセージを受信したときに、invocation が開始される前に実行されるコールバックです。

このコールバックを使用すると、ランナーが invocation を開始する前にユーザーメッセージをログしたり変更したりできます。

<div id="parameters-16">
  #### パラメーター
</div>

<ParamField path="_params" type="object" required>
  <Expandable title="プロパティ" defaultOpen>
    <ParamField path="invocationContext" type="InvocationContext" required />

    <ParamField path="userMessage" type="Content" required />
  </Expandable>
</ParamField>

<div id="returns-17">
  #### 戻り値
</div>

`Promise`\<`undefined`>

ADK に返す省略可能な `Content`。値を返すとユーザーメッセージが置き換えられ、`undefined` を返すと通常どおり処理が続行されます。

<div id="implementation-of-16">
  #### 実装元
</div>

`AdkBasePlugin.onUserMessageCallback`
