Skip to main content
러너 호출 수, 에이전트 Runs, 모델 Call, 도구 실행을 Weave의 에이전트 파이프라인에서 GenAI-semconv OTel span으로 내보내는 ADK 플러그인입니다. 구조적으로 BasePlugin의 전체 인터페이스를 구현합니다. ADK의 PluginManager는 모든 callback을 호출하므로 callback이 no-op인 경우에도 모두 포함되어 있습니다. ADK는 undefined가 아닌 반환값을 모두 단락 처리로 간주하므로, 모든 callback은 자체 오류를 내부적으로 처리하고 undefined를 반환합니다. 정의 위치: src/integrations/googleAdk.ts:589

구현 항목

  • BasePlugin

생성자

생성자

new WeaveAdkPlugin(): WeaveAdkPlugin

반환값

WeaveAdkPlugin

속성

name

readonly name: "weave" = WEAVE_ADK_PLUGIN_NAME
정의 위치: src/integrations/googleAdk.ts:590

구현 대상

AdkBasePlugin.name

메서드

afterAgentCallback()

afterAgentCallback(params): Promise<undefined>
에이전트의 기본 로직이 완료된 후 실행되는 callback입니다. 이 callback을 사용하여 반환되기 전에 에이전트의 최종 결과를 검사하거나 로깅 또는 수정할 수 있습니다. 정의 위치: src/integrations/googleAdk.ts:779

매개변수

params
agent
BaseAgent 방금 실행된 에이전트입니다.
callbackContext
Context 에이전트 호출의 컨텍스트입니다.

반환값

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

구현 대상

AdkBasePlugin.afterAgentCallback

afterContextCompaction()

afterContextCompaction(_params): Promise<undefined>
컨텍스트 압축 후 실행되는 callback입니다. 이 callback을 통해 압축된 컨텍스트를 검사할 수 있습니다. 정의 위치: src/integrations/googleAdk.ts:997

매개변수

_params
unknown

반환값

Promise<undefined>

구현 대상

AdkBasePlugin.afterContextCompaction

afterModelCallback()

afterModelCallback(params): Promise<undefined>
모델의 응답을 받은 후 실행되는 callback입니다. 모델 응답을 로깅하고 토큰 사용량에 대한 메트릭을 수집하거나 원시 LlmResponse를 후처리하기에 적합한 위치입니다. 정의 위치: src/integrations/googleAdk.ts:841

매개변수

params
callbackContext
Context 현재 에이전트 호출의 컨텍스트입니다.
llmResponse
LlmResponse 모델에서 받은 응답 객체입니다.

반환값

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

구현 대상

AdkBasePlugin.afterModelCallback

afterRunCallback()

afterRunCallback(params): Promise<undefined>
ADK 러너의 run이 완료된 후 실행되는 callback입니다. ADK 라이프사이클의 마지막 callback으로, 정리, 최종 로깅 또는 보고 작업에 적합합니다. 정의 위치: src/integrations/googleAdk.ts:713

매개변수

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

반환값

Promise<undefined> undefined

구현 대상

AdkBasePlugin.afterRunCallback

afterToolCallback()

afterToolCallback(params): Promise<undefined>
도구가 호출된 후 실행되는 callback입니다. 이 callback을 사용하면 도구가 반환한 결과를 검사, 로깅 또는 수정할 수 있습니다. 정의 위치: src/integrations/googleAdk.ts:965

매개변수

params
result
Record<string, unknown> | null 도구 호출에서 반환되는 딕셔너리입니다.
도구
BaseTool 방금 실행한 도구 인스턴스입니다.
toolArgs
Record<string, unknown> 도구에 전달된 원본 인수입니다.
toolContext
Context 도구 실행과 관련된 컨텍스트입니다.

반환값

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

구현 대상

AdkBasePlugin.afterToolCallback

beforeAgentCallback()

beforeAgentCallback(params): Promise<undefined>
에이전트의 기본 로직이 호출되기 전에 실행되는 callback입니다. 이 callback은 로깅, 설정 또는 값을 반환하여 에이전트의 실행을 조기에 종료하는 데 사용할 수 있습니다. 정의 위치: src/integrations/googleAdk.ts:765

매개변수

params
에이전트
BaseAgent 실행될 에이전트입니다.
callbackContext
Context 에이전트 호출의 컨텍스트입니다.

반환값

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

구현 대상

AdkBasePlugin.beforeAgentCallback

beforeContextCompaction()

beforeContextCompaction(_params): Promise<undefined>
컨텍스트 압축 전에 실행되는 callback입니다. 이 callback을 통해 압축 전에 컨텍스트를 검사하거나 수정할 수 있습니다. 정의 위치: src/integrations/googleAdk.ts:993

매개변수

_params
unknown

반환값

Promise<undefined>

구현 대상

AdkBasePlugin.beforeContextCompaction

beforeModelCallback()

beforeModelCallback(params): Promise<undefined>
모델에 요청을 보내기 전에 실행되는 callback입니다. LlmRequest 객체를 검사, 로깅하거나 수정할 수 있습니다. 캐시된 LlmResponse를 반환하여 캐싱을 구현할 수도 있으며, 이 경우 실제 모델 Call이 생략됩니다. 정의 위치: src/integrations/googleAdk.ts:804

매개변수

params
callbackContext
Context 현재 에이전트 호출의 컨텍스트입니다.
llmRequest
LlmRequest 모델에 전송할 준비가 된 요청 객체입니다.

반환값

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

구현 대상

AdkBasePlugin.beforeModelCallback

beforeRunCallback()

beforeRunCallback(params): Promise<undefined>
ADK 러너가 실행되기 전에 호출되는 callback입니다. 라이프사이클에서 가장 먼저 호출되는 callback으로, 전역 설정 또는 초기화 작업에 적합합니다. 정의 위치: src/integrations/googleAdk.ts:621

매개변수

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

반환값

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

구현 대상

AdkBasePlugin.beforeRunCallback

beforeToolCallback()

beforeToolCallback(params): Promise<undefined>
도구가 호출되기 전에 실행되는 callback입니다. 이 callback은 도구 사용을 로깅하거나 입력을 검증하거나, 도구에 전달되기 전에 인수를 수정하는 데 유용합니다. 정의 위치: src/integrations/googleAdk.ts:918

매개변수

params
도구
BaseTool 실행 직전의 도구 인스턴스입니다.
toolArgs
Record<string, unknown> 도구를 호출하는 데 사용할 인수 딕셔너리입니다.
toolContext
Context 도구 실행에 관련된 컨텍스트입니다.

반환값

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

구현 대상

AdkBasePlugin.beforeToolCallback

beforeToolSelection()

beforeToolSelection(_params): Promise<undefined>
도구를 선택하기 전에 실행되는 callback입니다. 이 callback을 사용하면 선택 전에 사용 가능한 도구를 검사, 로깅 또는 수정할 수 있습니다. 정의 위치: src/integrations/googleAdk.ts:914

매개변수

_params
unknown

반환값

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

구현 대상

AdkBasePlugin.beforeToolSelection

finishInterruptedInvocation()

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

매개변수

invocationId
string

반환값

void

onEventCallback()

onEventCallback(params): Promise<undefined>
러너에서 이벤트가 반환된 후 실행되는 callback입니다. 기본 에이전트 앱에서 이벤트를 처리하기 전에 이벤트를 수정하기에 적합한 위치입니다. 정의 위치: src/integrations/googleAdk.ts:693

매개변수

params
event
Event 러너가 발생시키는 이벤트입니다.
invocationContext
InvocationContext 전체 호출의 컨텍스트입니다.

반환값

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

구현 대상

AdkBasePlugin.onEventCallback

onModelErrorCallback()

onModelErrorCallback(params): Promise<undefined>
모델 Call 중 오류가 발생했을 때 실행되는 callback입니다. 이 callback을 통해 모델 오류를 적절히 처리하고, 대체 응답이나 복구 메커니즘을 제공할 수 있습니다. 정의 위치: src/integrations/googleAdk.ts:884

매개변수

params
callbackContext
Context 현재 에이전트 호출의 컨텍스트입니다.
error
Error 모델 실행 중 발생한 예외입니다.
llmRequest
LlmRequest 오류 발생 시 모델에 전송된 요청입니다.

반환값

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

구현 대상

AdkBasePlugin.onModelErrorCallback

onToolErrorCallback()

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

매개변수

params
error
Error 도구 실행 중 발생한 예외입니다.
도구
BaseTool 오류가 발생한 도구 인스턴스입니다.
toolArgs
Record<string, unknown> 도구에 전달된 인수입니다.
toolContext
Context 도구 실행과 관련된 컨텍스트입니다.

반환값

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

구현 대상

AdkBasePlugin.onToolErrorCallback

onUserMessageCallback()

onUserMessageCallback(_params): Promise<undefined>
사용자 메시지를 수신한 후 호출이 시작되기 전에 실행되는 callback입니다. 이 callback은 러너가 호출을 시작하기 전에 사용자 메시지를 로깅하고 수정하는 데 도움이 됩니다. 정의 위치: src/integrations/googleAdk.ts:614

매개변수

_params
invocationContext
InvocationContext
userMessage
Content

반환값

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

구현 대상

AdkBasePlugin.onUserMessageCallback