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

# WeaveAdkPlugin

> TypeScript SDK 레퍼런스

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

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

정의 위치: [src/integrations/googleAdk.ts:589](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L589)

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

* `BasePlugin`

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

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

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

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

`WeaveAdkPlugin`

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

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

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

정의 위치: [src/integrations/googleAdk.ts:590](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L590)

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

`AdkBasePlugin.name`

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

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

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

에이전트의 기본 로직이 완료된 후 실행되는 callback입니다.

이 callback을 사용하여 반환되기 전에 에이전트의 최종
결과를 검사하거나 로깅 또는 수정할 수 있습니다.

정의 위치: [src/integrations/googleAdk.ts:779](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L779)

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

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

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

`BaseAgent`

방금 실행된 에이전트입니다.

<div id="callbackcontext">
  ###### callbackContext
</div>

`Context`

에이전트 호출의 컨텍스트입니다.

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

`Promise`\<`undefined`>

선택 사항인 `Content` 객체입니다. 값을 반환하면 에이전트의
원래 결과가 해당 값으로 대체됩니다. `undefined`를 반환하면
수정되지 않은 원래 결과가 사용됩니다.

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

`AdkBasePlugin.afterAgentCallback`

***

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

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

컨텍스트 압축 후 실행되는 callback입니다.

이 callback을 통해 압축된 컨텍스트를
검사할 수 있습니다.

정의 위치: [src/integrations/googleAdk.ts:997](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L997)

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

<div id="_params">
  ##### \_params
</div>

`unknown`

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

`Promise`\<`undefined`>

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

`AdkBasePlugin.afterContextCompaction`

***

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

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

모델의 응답을 받은 후 실행되는 callback입니다.

모델 응답을 로깅하고 토큰
사용량에 대한 메트릭을 수집하거나 원시 `LlmResponse`를 후처리하기에 적합한 위치입니다.

정의 위치: [src/integrations/googleAdk.ts:841](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L841)

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

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

<div id="callbackcontext">
  ###### callbackContext
</div>

`Context`

현재 에이전트 호출의 컨텍스트입니다.

<div id="llmresponse">
  ###### llmResponse
</div>

`LlmResponse`

모델에서 받은 응답 객체입니다.

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

`Promise`\<`undefined`>

선택적 값입니다. `undefined`가 아닌 값을 반환하면
프레임워크가 응답을 수정하거나 대체할 수 있습니다. `undefined`를 반환하면
원래 응답이 사용됩니다.

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

`AdkBasePlugin.afterModelCallback`

***

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

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

ADK 러너의 run이 완료된 후 실행되는 callback입니다.

ADK 라이프사이클의 마지막 callback으로, 정리, 최종 로깅 또는 보고 작업에 적합합니다.

정의 위치: [src/integrations/googleAdk.ts:713](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L713)

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

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

<div id="invocationcontext">
  ###### invocationContext
</div>

`InvocationContext`

전체 호출의 컨텍스트입니다.

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

`Promise`\<`undefined`>

undefined

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

`AdkBasePlugin.afterRunCallback`

***

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

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

도구가 호출된 후 실행되는 callback입니다.

이 callback을 사용하면 도구가 반환한 결과를 검사, 로깅 또는 수정할 수
있습니다.

정의 위치: [src/integrations/googleAdk.ts:965](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L965)

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

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

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

`Record`\<`string`, `unknown`> | `null`

도구 호출에서 반환되는 딕셔너리입니다.

<div id="tool">
  ###### 도구
</div>

`BaseTool`

방금 실행한 도구 인스턴스입니다.

<div id="toolargs">
  ###### toolArgs
</div>

`Record`\<`string`, `unknown`>

도구에 전달된 원본 인수입니다.

<div id="toolcontext">
  ###### toolContext
</div>

`Context`

도구 실행과 관련된 컨텍스트입니다.

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

`Promise`\<`undefined`>

선택적 딕셔너리입니다. 딕셔너리를 반환하면
도구의 원래 결과를 **대체**합니다. 이를 통해
도구 출력을 후처리하거나 변경할 수 있습니다. `undefined`를 반환하면
수정되지 않은 원래 결과가 사용됩니다.

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

`AdkBasePlugin.afterToolCallback`

***

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

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

에이전트의 기본 로직이 호출되기 전에 실행되는 callback입니다.

이 callback은 로깅, 설정 또는 값을 반환하여 에이전트의 실행을 조기에 종료하는 데 사용할 수 있습니다.

정의 위치: [src/integrations/googleAdk.ts:765](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L765)

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

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

###### 에이전트

`BaseAgent`

실행될 에이전트입니다.

<div id="callbackcontext">
  ###### callbackContext
</div>

`Context`

에이전트 호출의 컨텍스트입니다.

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

`Promise`\<`undefined`>

선택적 `Content` 객체입니다. 값이 반환되면 에이전트의 callback과 실행을
건너뛰고 해당 값을 직접 반환합니다. `undefined`를 반환하면 에이전트가 정상적으로 진행됩니다.

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

`AdkBasePlugin.beforeAgentCallback`

***

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

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

컨텍스트 압축 전에 실행되는 callback입니다.

이 callback을 통해 압축 전에 컨텍스트를 검사하거나 수정할 수 있습니다.

정의 위치: [src/integrations/googleAdk.ts:993](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L993)

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

<div id="_params">
  ##### \_params
</div>

`unknown`

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

`Promise`\<`undefined`>

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

`AdkBasePlugin.beforeContextCompaction`

***

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

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

모델에 요청을 보내기 전에 실행되는 callback입니다.

`LlmRequest`
객체를 검사, 로깅하거나 수정할 수 있습니다. 캐시된
`LlmResponse`를 반환하여 캐싱을 구현할 수도 있으며, 이 경우 실제 모델 Call이 생략됩니다.

정의 위치: [src/integrations/googleAdk.ts:804](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L804)

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

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

<div id="callbackcontext">
  ###### callbackContext
</div>

`Context`

현재 에이전트 호출의 컨텍스트입니다.

<div id="llmrequest">
  ###### llmRequest
</div>

`LlmRequest`

모델에 전송할 준비가 된 요청 객체입니다.

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

`Promise`\<`undefined`>

선택적 값입니다. `undefined`가 아닌 값을 반환하면
조기 종료가 트리거되고 응답이 즉시 반환됩니다. `undefined`를 반환하면 LLM 요청이 정상적으로 진행됩니다.

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

`AdkBasePlugin.beforeModelCallback`

***

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

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

ADK 러너가 실행되기 전에 호출되는 callback입니다.

라이프사이클에서 가장 먼저 호출되는 callback으로, 전역
설정 또는 초기화 작업에 적합합니다.

정의 위치: [src/integrations/googleAdk.ts:621](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L621)

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

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

<div id="invocationcontext">
  ###### invocationContext
</div>

`InvocationContext`

세션 정보, 루트 에이전트 등을 포함하는 전체 호출의 컨텍스트입니다.

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

`Promise`\<`undefined`>

ADK에 반환할 수 있는 선택적 `Event`입니다. 값을 반환하면
러너 실행이 중지되고 해당 이벤트와 함께 러너가 종료됩니다.
정상적으로 계속하려면 `undefined`를 반환합니다.

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

`AdkBasePlugin.beforeRunCallback`

***

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

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

도구가 호출되기 전에 실행되는 callback입니다.

이 callback은 도구 사용을 로깅하거나 입력을 검증하거나,
도구에 전달되기 전에 인수를 수정하는 데 유용합니다.

정의 위치: [src/integrations/googleAdk.ts:918](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L918)

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

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

<div id="tool">
  ###### 도구
</div>

`BaseTool`

실행 직전의 도구 인스턴스입니다.

<div id="toolargs">
  ###### toolArgs
</div>

`Record`\<`string`, `unknown`>

도구를 호출하는 데 사용할 인수 딕셔너리입니다.

<div id="toolcontext">
  ###### toolContext
</div>

`Context`

도구 실행에 관련된 컨텍스트입니다.

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

`Promise`\<`undefined`>

선택적 딕셔너리입니다. 딕셔너리를 반환하면
도구 실행이 중지되고 이 응답이 즉시 반환됩니다. `undefined`를 반환하면
수정되지 않은 원래 인수가 사용됩니다.

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

`AdkBasePlugin.beforeToolCallback`

***

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

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

도구를 선택하기 전에 실행되는 callback입니다.

이 callback을 사용하면 선택 전에 사용 가능한 도구를 검사, 로깅 또는 수정할 수 있습니다.

정의 위치: [src/integrations/googleAdk.ts:914](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L914)

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

<div id="_params">
  ##### \_params
</div>

`unknown`

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

`Promise`\<`undefined`>

선택적 값입니다. `undefined`가 아닌 반환값은
프레임워크에서 사용 가능한 도구를 수정하거나 대체하는 데 사용할 수 있습니다. `undefined`를 반환하면 원래 도구를 사용할 수 있습니다.

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

`AdkBasePlugin.beforeToolSelection`

***

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

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

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

정의 위치: [src/integrations/googleAdk.ts:732](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L732)

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

<div id="invocationid">
  ##### invocationId
</div>

`string`

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

`void`

***

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

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

러너에서 이벤트가 반환된 후 실행되는 callback입니다.

기본 에이전트 앱에서 이벤트를 처리하기 전에 이벤트를 수정하기에 적합한 위치입니다.

정의 위치: [src/integrations/googleAdk.ts:693](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L693)

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

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

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

`Event`

러너가 발생시키는 이벤트입니다.

<div id="invocationcontext">
  ###### invocationContext
</div>

`InvocationContext`

전체 호출의 컨텍스트입니다.

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

`Promise`\<`undefined`>

선택적 값입니다. `undefined`가 아닌 반환값은
프레임워크에서 응답을 수정하거나 대체하는 데 사용할 수 있습니다. 대체 응답을 생성할 때는 수정하지 않는
이벤트 액션 등의 필드를 보존하기 위해 `params.event`를 복사하세요. `undefined`를 반환하면
원래 응답이 사용됩니다.

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

`AdkBasePlugin.onEventCallback`

***

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

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

모델 Call 중 오류가 발생했을 때 실행되는 callback입니다.

이 callback을 통해 모델 오류를 적절히 처리하고,
대체 응답이나 복구 메커니즘을 제공할 수 있습니다.

정의 위치: [src/integrations/googleAdk.ts:884](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L884)

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

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

<div id="callbackcontext">
  ###### callbackContext
</div>

`Context`

현재 에이전트 호출의 컨텍스트입니다.

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

`Error`

모델 실행 중 발생한 예외입니다.

<div id="llmrequest">
  ###### llmRequest
</div>

`LlmRequest`

오류 발생 시 모델에 전송된 요청입니다.

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

`Promise`\<`undefined`>

선택적 LlmResponse입니다. LlmResponse가 반환되면 오류를 전파하는 대신
해당 응답이 사용됩니다. `undefined`를 반환하면 원래 오류가 발생합니다.

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

`AdkBasePlugin.onModelErrorCallback`

***

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

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

도구 Call 중 오류가 발생하면 실행되는 callback입니다.
tool: BaseTool;
toolArgs: Record\<string, unknown>;
toolContext: Context;
result: Record\<string, unknown>;
}): Promise\<Record\<string, unknown> | undefined> \{
return;
}

/\*\*
도구 Call 중 오류가 발생하면 실행되는 callback입니다.

이 callback을 사용하여 도구 오류를 정상적으로 처리하고,
필요에 따라 대체 응답이나 복구 메커니즘을 제공할 수 있습니다.

정의 위치: [src/integrations/googleAdk.ts:977](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L977)

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

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

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

`Error`

도구 실행 중 발생한 예외입니다.

<div id="tool">
  ###### 도구
</div>

`BaseTool`

오류가 발생한 도구 인스턴스입니다.

<div id="toolargs">
  ###### toolArgs
</div>

`Record`\<`string`, `unknown`>

도구에 전달된 인수입니다.

<div id="toolcontext">
  ###### toolContext
</div>

`Context`

도구 실행과 관련된 컨텍스트입니다.

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

`Promise`\<`undefined`>

선택적 딕셔너리입니다. 딕셔너리를 반환하면 오류를 전파하는 대신
도구 응답으로 사용됩니다. `undefined`를 반환하면 원래 오류가 발생합니다.

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

`AdkBasePlugin.onToolErrorCallback`

***

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

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

사용자 메시지를 수신한 후 호출이
시작되기 전에 실행되는 callback입니다.

이 callback은 러너가 호출을 시작하기 전에 사용자 메시지를 로깅하고 수정하는 데 도움이 됩니다.

정의 위치: [src/integrations/googleAdk.ts:614](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/integrations/googleAdk.ts#L614)

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

<div id="_params">
  ##### \_params
</div>

<div id="invocationcontext">
  ###### invocationContext
</div>

`InvocationContext`

<div id="usermessage">
  ###### userMessage
</div>

`Content`

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

`Promise`\<`undefined`>

ADK에 반환할 수 있는 선택적 `Content`입니다. 사용자 메시지를 대체하는 값을
반환합니다. 정상적으로 계속 진행하려면 `undefined`를 반환합니다.

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

`AdkBasePlugin.onUserMessageCallback`
