Skip to main content
Some providers attach opaque state to a reply and expect it back, unchanged, on the next turn. Gemini 3 signs its function calls with a 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.
This is the shape Google’s own OpenAI-compatible endpoint uses, so clients built against it work unchanged.

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_content without 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.
Last modified on September 5, 2026