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

구현 항목

  • BasePlugin

생성자

new WeaveAdkPlugin(): WeaveAdkPlugin

반환값

WeaveAdkPlugin

속성

name

readonly name: "weave" = WEAVE_ADK_PLUGIN_NAME

구현 대상

AdkBasePlugin.name

메서드

afterAgentCallback()

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

매개변수

object
필수

반환값

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

구현 대상

AdkBasePlugin.afterAgentCallback

afterContextCompaction()

afterContextCompaction(_params): Promise<undefined>
컨텍스트 압축 후 실행되는 callback입니다. 이 callback을 통해 압축된 컨텍스트를 검사할 수 있습니다.

매개변수

unknown
필수

반환값

Promise<undefined>

구현 대상

AdkBasePlugin.afterContextCompaction

afterModelCallback()

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

매개변수

object
필수

반환값

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

구현 대상

AdkBasePlugin.afterModelCallback

afterRunCallback()

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

매개변수

object
필수

반환값

Promise<undefined> undefined

구현 대상

AdkBasePlugin.afterRunCallback

afterToolCallback()

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

매개변수

object
필수

반환값

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

구현 대상

AdkBasePlugin.afterToolCallback

beforeAgentCallback()

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

매개변수

object
필수

반환값

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

구현 대상

AdkBasePlugin.beforeAgentCallback

beforeContextCompaction()

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

매개변수

unknown
필수

반환값

Promise<undefined>

구현 대상

AdkBasePlugin.beforeContextCompaction

beforeModelCallback()

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

매개변수

object
필수

반환값

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

구현 대상

AdkBasePlugin.beforeModelCallback

beforeRunCallback()

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

매개변수

object
필수

반환값

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

구현 대상

AdkBasePlugin.beforeRunCallback

beforeToolCallback()

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

매개변수

object
필수

반환값

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

구현 대상

AdkBasePlugin.beforeToolCallback

beforeToolSelection()

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

매개변수

unknown
필수

반환값

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

구현 대상

AdkBasePlugin.beforeToolSelection

finishInterruptedInvocation()

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

매개변수

string
필수

반환값

void

onEventCallback()

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

매개변수

object
필수

반환값

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

구현 대상

AdkBasePlugin.onEventCallback

onModelErrorCallback()

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

매개변수

object
필수

반환값

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

매개변수

object
필수

반환값

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

구현 대상

AdkBasePlugin.onToolErrorCallback

onUserMessageCallback()

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

매개변수

object
필수

반환값

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

구현 대상

AdkBasePlugin.onUserMessageCallback