google / google/adk-java

ADK Java OTel spans do not expose tool-call execution correctly in Langfuse/OpenInference

Abierto
#1,235 3 comentarios 0 reacciones 1 asignado Reclamado por @hemasekhar-p Ver en GitHub
needs review
Lenguaje dominante
Java
Estrellas
1.7k
Forks
420
Merge medio
4 d 12 h
PR fusionados (30 d)
31

Descripción

## 🔴 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:**
1. Create an ADK Java agent with MCP tools (for example, `list_premerge_failed_tests_by_job` and `list_unhealthy_tests`).
2. Configure OpenTelemetry export to Langfuse using `OtlpHttpSpanExporter`.
3. Run an agent prompt that should invoke those tools.
4. Open the resulting trace in Langfuse UI and inspect the `call_llm` observation and tool section.
5. 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:**
```text
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:**

Image

**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:**
```java
// 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?:**

- 100%

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.