🔴 Required Information
Describe the Bug:
ADK Java traces exported to Langfuse via OTLP show call_llm spans, but tool-call execution is not represented correctly: tools appear as "not called", and execute_tool visibility/payload mapping is missing or inconsistent even when tools were actually invoked.
Steps to Reproduce:
- Create an ADK Java agent with MCP tools (for example,
list_premerge_failed_tests_by_job and list_unhealthy_tests).
- Configure OpenTelemetry export to Langfuse using
OtlpHttpSpanExporter.
- Run an agent prompt that should invoke those tools.
- Open the resulting trace in Langfuse UI and inspect the
call_llm observation and tool section.
- Observe that tools are displayed as "not called" and no reliable
execute_tool observation/payload is shown.
Expected Behavior:
When tools execute, Langfuse should show them as called, include execute_tool observation visibility, and render tool request/response payloads correctly.
Observed Behavior:
call_llm is visible in timeline.
- Tools are shown as "not called" in the same trace.
- Tool-call visibility/payload mapping is missing or inconsistent.
- No crash, but observability is incorrect/incomplete for tool execution.
Environment Details:
- ADK Library Version (see maven dependency):
com.google.adk:google-adk:1.2.0 (google-adk-spring-ai:1.2.0)
- OS: macOS
- TS Version (tsc --version): N/A (Java integration)
Model Information:
- Which model is being used:
qwen-3.5-122b
🟡 Optional Information
Regression:
Unknown.
Logs:
Langfuse UI observation:
- call_llm span present
- Tools section shows entries as "not called"
- Agent output text indicates tools were expected/executed in flow
Screenshots / Video:
Additional Context:
- ADK Java appears to emit ADK-specific attributes (e.g.
gcp.vertex.agent.tool_call_args, gcp.vertex.agent.tool_response, gcp.vertex.agent.llm_request, gcp.vertex.agent.llm_response).
- Langfuse/OpenInference expects standard tool/IO mapping on spans (e.g.
input.value, output.value) for reliable rendering.
Minimal Reproduction Code:
// Pseudocode reproduction shape:
// 1) Build LlmAgent with MCP tools
// 2) Enable OTLP export to Langfuse
// 3) Trigger prompt that should call tools
// 4) Inspect Langfuse trace: call_llm visible, tools shown as "not called"
How often has this issue occurred?:
🔴 Required Information
Describe the Bug:
ADK Java traces exported to Langfuse via OTLP show
call_llmspans, but tool-call execution is not represented correctly: tools appear as "not called", andexecute_toolvisibility/payload mapping is missing or inconsistent even when tools were actually invoked.Steps to Reproduce:
list_premerge_failed_tests_by_jobandlist_unhealthy_tests).OtlpHttpSpanExporter.call_llmobservation and tool section.execute_toolobservation/payload is shown.Expected Behavior:
When tools execute, Langfuse should show them as called, include
execute_toolobservation visibility, and render tool request/response payloads correctly.Observed Behavior:
call_llmis visible in timeline.Environment Details:
com.google.adk:google-adk:1.2.0(google-adk-spring-ai:1.2.0)Model Information:
qwen-3.5-122b🟡 Optional Information
Regression:
Unknown.
Logs:
Screenshots / Video:
Additional Context:
gcp.vertex.agent.tool_call_args,gcp.vertex.agent.tool_response,gcp.vertex.agent.llm_request,gcp.vertex.agent.llm_response).input.value,output.value) for reliable rendering.Minimal Reproduction Code:
How often has this issue occurred?: