> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 클래스: WeaveAdkPlugin

> TypeScript SDK 레퍼런스

[weave](../) / WeaveAdkPlugin

러너 호출 수, 에이전트 Runs, 모델 Call, 도구
실행을 Weave의 에이전트 파이프라인에서 GenAI-semconv OTel span으로 내보내는 ADK
플러그인입니다.

구조적으로 `BasePlugin`의 전체 인터페이스를 구현합니다. ADK의 PluginManager는
모든 callback을 호출하므로 callback이 no-op인 경우에도 모두 포함되어 있습니다.
ADK는 `undefined`가 아닌 반환값을 모두 단락 처리로 간주하므로, 모든 callback은
자체 오류를 내부적으로 처리하고 `undefined`를 반환합니다.

<div id="implements">
  ## 구현 항목
</div>

* `BasePlugin`

<div id="table-of-contents">
  ## 목차
</div>

<div id="constructors">
  ### 생성자
</div>

* [constructor](./weaveadkplugin#constructor)

<div id="properties">
  ### 속성
</div>

* [name](./weaveadkplugin#name)

<div id="methods">
  ### 메서드
</div>

* [afterAgentCallback](./weaveadkplugin#afteragentcallback)
* [afterContextCompaction](./weaveadkplugin#aftercontextcompaction)
* [afterModelCallback](./weaveadkplugin#aftermodelcallback)
* [afterRunCallback](./weaveadkplugin#afterruncallback)
* [afterToolCallback](./weaveadkplugin#aftertoolcallback)
* [beforeAgentCallback](./weaveadkplugin#beforeagentcallback)
* [beforeContextCompaction](./weaveadkplugin#beforecontextcompaction)
* [beforeModelCallback](./weaveadkplugin#beforemodelcallback)
* [beforeRunCallback](./weaveadkplugin#beforeruncallback)
* [beforeToolCallback](./weaveadkplugin#beforetoolcallback)
* [beforeToolSelection](./weaveadkplugin#beforetoolselection)
* [finishInterruptedInvocation](./weaveadkplugin#finishinterruptedinvocation)
* [onEventCallback](./weaveadkplugin#oneventcallback)
* [onModelErrorCallback](./weaveadkplugin#onmodelerrorcallback)
* [onToolErrorCallback](./weaveadkplugin#ontoolerrorcallback)
* [onUserMessageCallback](./weaveadkplugin#onusermessagecallback)

## 생성자

<div id="constructor">
  ### constructor
</div>

• **new WeaveAdkPlugin**(): [`WeaveAdkPlugin`](./weaveadkplugin)

<div id="returns">
  #### 반환값
</div>

[`WeaveAdkPlugin`](./weaveadkplugin)

## 속성

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

• `Readonly` **name**: `"weave"`

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.name

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:590](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L590)

## 메서드

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름                       | 유형          |
| :----------------------- | :---------- |
| `params`                 | `Object`    |
| `params.agent`           | `BaseAgent` |
| `params.callbackContext` | `Context`   |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.afterAgentCallback

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:779](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L779)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름        | 유형        |
| :-------- | :-------- |
| `_params` | `unknown` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.afterContextCompaction

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:997](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L997)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름                       | 유형            |
| :----------------------- | :------------ |
| `params`                 | `Object`      |
| `params.callbackContext` | `Context`     |
| `params.llmResponse`     | `LlmResponse` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.afterModelCallback

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:841](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L841)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름                         | 유형                  |
| :------------------------- | :------------------ |
| `params`                   | `Object`            |
| `params.invocationContext` | `InvocationContext` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.afterRunCallback

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:713](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L713)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름                   | 유형                             |                                |
| :------------------- | :----------------------------- | ------------------------------ |
| `params`             | `Object`                       |                                |
| `params.result`      | `null`                         | `Record`\<`string`, `unknown`> |
| `params.tool`        | `BaseTool`                     |                                |
| `params.toolArgs`    | `Record`\<`string`, `unknown`> |                                |
| `params.toolContext` | `Context`                      |                                |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.afterToolCallback

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:965](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L965)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름                       | 유형          |
| :----------------------- | :---------- |
| `params`                 | `Object`    |
| `params.agent`           | `BaseAgent` |
| `params.callbackContext` | `Context`   |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.beforeAgentCallback

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:765](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L765)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름        | 유형        |
| :-------- | :-------- |
| `_params` | `unknown` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.beforeContextCompaction

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:993](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L993)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름                       | 유형           |
| :----------------------- | :----------- |
| `params`                 | `Object`     |
| `params.callbackContext` | `Context`    |
| `params.llmRequest`      | `LlmRequest` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.beforeModelCallback

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:804](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L804)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름                         | 유형                  |
| :------------------------- | :------------------ |
| `params`                   | `Object`            |
| `params.invocationContext` | `InvocationContext` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.beforeRunCallback

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:621](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L621)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름                   | 유형                             |
| :------------------- | :----------------------------- |
| `params`             | `Object`                       |
| `params.tool`        | `BaseTool`                     |
| `params.toolArgs`    | `Record`\<`string`, `unknown`> |
| `params.toolContext` | `Context`                      |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.beforeToolCallback

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:918](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L918)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름        | 유형        |
| :-------- | :-------- |
| `_params` | `unknown` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.beforeToolSelection

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:914](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L914)

***

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

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

`afterRunCallback`에 도달하지 못한 run을 완료 처리합니다. ADK는 이벤트 루프가 정상적으로 모두 처리된 후에만
`afterRunCallback`을 호출하므로, 소비자가 `runAsync`에서
일찍 빠져나오거나 run이 중단되면 invocation
(및 해당 span들)이 열린 상태로 남습니다. 자동 instrument 러너 래퍼는 이를
`finally`에서 호출해 중단된 것으로 닫습니다. 멱등적이므로 run이
이미 완료된 경우에는 아무 작업도 하지 않습니다(일반적으로 전체를 끝까지 소비한 경우).

<div id="parameters">
  #### 매개변수
</div>

| 이름             | 유형       |
| :------------- | :------- |
| `invocationId` | `string` |

<div id="returns">
  #### 반환값
</div>

`void`

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:732](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L732)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름                         | 유형                  |
| :------------------------- | :------------------ |
| `params`                   | `Object`            |
| `params.event`             | `Event`             |
| `params.invocationContext` | `InvocationContext` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.onEventCallback

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:693](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L693)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름                       | 유형           |
| :----------------------- | :----------- |
| `params`                 | `Object`     |
| `params.callbackContext` | `Context`    |
| `params.error`           | `Error`      |
| `params.llmRequest`      | `LlmRequest` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.onModelErrorCallback

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:884](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L884)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름                   | 유형                             |
| :------------------- | :----------------------------- |
| `params`             | `Object`                       |
| `params.error`       | `Error`                        |
| `params.tool`        | `BaseTool`                     |
| `params.toolArgs`    | `Record`\<`string`, `unknown`> |
| `params.toolContext` | `Context`                      |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.onToolErrorCallback

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:977](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L977)

***

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

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

<div id="parameters">
  #### 매개변수
</div>

| 이름                          | 유형                  |
| :-------------------------- | :------------------ |
| `_params`                   | `Object`            |
| `_params.invocationContext` | `InvocationContext` |
| `_params.userMessage`       | `Content`           |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`undefined`>

<div id="implementation-of">
  #### 구현 대상
</div>

AdkBasePlugin.onUserMessageCallback

<div id="defined-in">
  #### 정의 위치
</div>

[src/integrations/googleAdk.ts:614](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/integrations/googleAdk.ts#L614)
