google / google/adk-python

LiteLLM tool call ids carry the embedded Gemini thought signature

Ouverte
#6,742 3 commentaires 0 réactions 1 personne assignée Réclamée par @surajksharma07 Voir sur GitHub
models
Langage dominant
Python
Étoiles
21.5k
Forks
4k
Merge moyen
1 j 14 h
PR mergées (30 j)
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`

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.