ADK 2.x Workflow is a BaseNode, not a BaseAgent, and _ToolNode calls self.tool.run_async directly, bypassing flows/llm_flows/tools/_caller._call_tool_async. As a result:
- Workflow tool calls get no tool span (except MCP tools, via
McpToolPatcher).
- Workflows get no span between the Runner and agent spans.
ADK now marks SequentialAgent / ParallelAgent as deprecated in favor of Workflow, so this gap will grow. 2.11.0 also made workflow tool nodes pause for confirmation and run plugin callbacks (_ToolNode._run_tool_with_plugin_callbacks). This predates the 2.11.0 bump.
Proposal
- Candidate patch targets in
py/src/braintrust/integrations/adk/: google.adk.workflow._base_node.BaseNode.run (workflow/node spans) and google.adk.workflow._tool_node._ToolNode._run_impl (tool spans). Both exist in 2.10 and 2.11; gate them so 1.14.1 keeps working.
test_adk.py has no Workflow coverage; add cassette-backed tests.
- Related, lower value:
ModelConsultTool's advisor calls BaseLlm.generate_content_async directly, so it gets no ADK LLM span (the google-genai integration still traces the underlying call).
Parent: #858 (found while reviewing the 2026-10-05 weekly dependency update, #849).
🤖 Generated with Claude Code
ADK 2.x
Workflowis aBaseNode, not aBaseAgent, and_ToolNodecallsself.tool.run_asyncdirectly, bypassingflows/llm_flows/tools/_caller._call_tool_async. As a result:McpToolPatcher).ADK now marks
SequentialAgent/ParallelAgentas deprecated in favor ofWorkflow, so this gap will grow. 2.11.0 also made workflow tool nodes pause for confirmation and run plugin callbacks (_ToolNode._run_tool_with_plugin_callbacks). This predates the 2.11.0 bump.Proposal
py/src/braintrust/integrations/adk/:google.adk.workflow._base_node.BaseNode.run(workflow/node spans) andgoogle.adk.workflow._tool_node._ToolNode._run_impl(tool spans). Both exist in 2.10 and 2.11; gate them so 1.14.1 keeps working.test_adk.pyhas noWorkflowcoverage; add cassette-backed tests.ModelConsultTool's advisor callsBaseLlm.generate_content_asyncdirectly, so it gets no ADK LLM span (the google-genai integration still traces the underlying call).Parent: #858 (found while reviewing the 2026-10-05 weekly dependency update, #849).
🤖 Generated with Claude Code