thoughtSignature
and rejects a history that replays the call without it. Anthropic requires
thinking blocks, signatures included, in front of a tool-use turn that
continues. Such state has no OpenAI-compatible field, so GoModel carries it in
one place: an extra_content object keyed by vendor.
Where it appears
Send the member back exactly as you received it. Clients that copy assistant
messages into the history verbatim, which is what the OpenAI, Anthropic, and
Responses SDKs do, need no changes.
Rules
- Every translation copies it through. Chat, Responses, and Anthropic
Messages ingress, streaming, and the assistant-turn echo carry
extra_contentwithout looking inside. - Only the owning provider sees its own vendor. Before a request leaves for a provider, GoModel drops every vendor object that provider does not own. A Gemini signature never reaches Anthropic or OpenAI, and a history that moved between providers does not fail on foreign fields.
- Only the owning adapter reads or writes inside it. Nothing else in the gateway interprets the contents.
Vendors
When a history reaches Gemini 3 without a signature, because the conversation
started on another provider or a client dropped the member, GoModel sends
Google’s documented placeholder instead of surfacing the 400. Echo the real
value whenever you have it; the placeholder costs reasoning continuity for
that turn.