Uh oh!
There was an error while loading. Please reload this page.
feat(google-adk): add ADK instrumentation and e2e coverage - #1765
Conversation
Abhijeet Prasad (AbhiPrasad)
commented
Apr 9, 2026
wait this need some more work. I realized the parent child relationships are wrong 😢 |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Luca Forstner (lforst)
commented
Apr 9, 2026
I honestly don't know why this is so painful in this SDK. Tracing channels make it harder because they are event based. It should honestly just be a simple wrapping call imo. |
45ea59e to
19c40c1CompareAdd manual and load-time instrumentation for `@google/adk` across runner, agent, and tool execution. This introduces the wrapper entrypoint, tracing-channel plugin, vendored SDK types, exports, and loader config needed to emit Braintrust spans for Google ADK workflows. Add a dedicated Google ADK e2e scenario with a committed lockfile and stable snapshots for both wrapped and hook-driven execution. Stabilize the scenario by pre-creating ADK sessions, letting the loader hook respect `BRAINTRUST_DISABLE_INSTRUMENTATION`, and normalizing volatile outputs in the assertions so the coverage stays repeatable.
19c40c1 to
d4ef367CompareAbhijeet Prasad (AbhiPrasad)
commented
Apr 13, 2026
Okay fixed the parent-child relationships! This is good to review now. |
d4ef367 to
4739528Compare4739528 to
3ae014bCompareLuca Forstner (lforst)
commented
Apr 14, 2026
The wrapper is still not perfect. It's not capturing llm spans. I am still gonna merge because the package has too little downloads to justify putting more work in. |
Uh oh!
There was an error while loading. Please reload this page.
resolves#1477
Add Braintrust instrumentation for
@google/adkwith auto-instrumentation support by default when users run with Braintrust's loader hook.This adds tracing for:
Runner.runAsyncBaseAgent.runAsyncand subclassesFunctionTool.runAsyncIt also adds Google ADK e2e coverage for both hook-driven and wrapped execution.
Because ADK uses
@google/genaiunder the hood, underlying LLM spans continue to come from the existing Google GenAI instrumentation.Recommended usage: auto-instrumentation
The primary way users should adopt this is via Braintrust auto-instrumentation:
Then they can use
@google/adknormally and Braintrust will trace supported ADK operations automatically.Example:
If needed, it can be disabled with:
Manual usage
Manual wrapping is also available for cases where users want explicit control:
Screenshot