google / google/adk-python

LiteLLM tool call ids carry the embedded Gemini thought signature

Open
#6,742 3 comments 0 reactions 1 assignee Claimed by @surajksharma07 View on GitHub
models
Dominant language
Python
Stars
21.5k
Forks
4k
Avg merge
1d 14h
Merged PRs (30d)
37

Description

## 🔴 Required Information

**Describe the Bug:**

LiteLLM embeds a Gemini `thought_signature` inside the tool call id, separated by `__thought__` (see `_THOUGHT_SIGNATURE_SEPARATOR`). `_message_to_generate_content_response` already extracts that signature onto `part.thought_signature`, but then assigns the **raw** id to `part.function_call.id`:

```python
thought_signature = _extract_thought_signature_from_tool_call(tool_call)
part = types.Part.from_function_call(...)
part.function_call.id = tool_call.id # still "call_abc__thought__AY89a18..."
if thought_signature:
part.thought_signature = thought_signature
```

So every consumer of `function_call_id` gets several hundred characters of base64 glued onto the real id:

```
call_abc__thought__AY89a18qpllj6mkpxPjhFEcbBbtEsqy4Ia4Eam2lD_NsoZ...
```

In practice it leaks into logs, into any UI that displays a tool call id, and into anything that derives a name from one.

**Steps to Reproduce:**

1. Run an agent on `LiteLlm(model="vertex_ai/gemini-3.5-flash")` (any Gemini model through LiteLLM) with a tool.
2. Prompt it so the model both thinks and calls the tool.
3. Inspect `part.function_call.id` on the resulting event, or anything keyed by it.

**Expected Behavior:**

`part.function_call.id` is the id LiteLLM assigned, e.g. `call_abc`, with the signature available separately on `part.thought_signature`.

**Observed Behavior:**

`part.function_call.id` is `call_abc__thought__AY89a18...`, carrying a few hundred characters of base64 that every downstream consumer inherits.

**Environment Details:**

- ADK Library Version (pip show google-adk): 1.31.1, and current `main`
- Desktop OS: macOS
- Python Version (python -V): 3.13.5

**Model Information:**

- Are you using LiteLLM: Yes
- Which model is being used: `vertex_ai/gemini-3.5-flash`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.