Nënshkrimet e mendimit janë përfaqësime të koduara të procesit të brendshëm të të menduarit të modelit dhe përdoren për të ruajtur kontekstin e arsyetimit në bashkëveprimet me shumë kthesa. Kur përdoren modele të të menduarit (siç janë seritë Gemini 3 dhe 2.5), API mund të kthejë një fushë thoughtSignature brenda pjesëve të përmbajtjes së përgjigjes (p.sh., pjesët text ose functionCall ).
Si rregull i përgjithshëm, nëse merrni një nënshkrim mendimi në një përgjigje model, duhet ta kaloni atë pikërisht ashtu siç e morët kur dërguat historikun e bisedës në raundin tjetër. Kur përdorni Gemini 3 Pro, duhet të kaloni nënshkrimet e mendimit gjatë thirrjes së funksionit, përndryshe do të merrni një gabim validimi (kodi i statusit 4xx).
Si funksionon
Grafiku më poshtë vizualizon kuptimin e "kthesës" dhe "hapit" siç lidhen me thirrjen e funksioneve në Gemini API. Një "kthesë" është një shkëmbim i vetëm dhe i plotë në një bisedë midis një përdoruesi dhe një modeli. Një "hap" është një veprim ose operacion më i detajuar i kryer nga modeli, shpesh si pjesë e një procesi më të madh për të përfunduar një kthesë.

Ky dokument përqendrohet në trajtimin e thirrjes së funksioneve për Gemini 3 Pro. Referojuni seksionit të sjelljes së modelit për mospërputhjet me 2.5.
Gemini 3 Pro kthen nënshkrimet e mendimit për të gjitha përgjigjet e modelit (përgjigjet nga API) me një thirrje funksioni. Nënshkrimet e mendimit shfaqen në rastet e mëposhtme:
- Kur ka thirrje paralele të funksioneve , pjesa e parë e thirrjes së funksionit e kthyer nga përgjigja e modelit do të ketë një nënshkrim mendimi.
- Kur ka thirrje funksionesh sekuenciale (me shumë hapa), çdo thirrje funksioni do të ketë një nënshkrim dhe ju duhet të kaloni të gjitha nënshkrimet mbrapsht.
- Përgjigjet e modelit pa një thirrje funksioni do të kthejnë një nënshkrim mendimi brenda pjesës së fundit të kthyer nga modeli.
Tabela e mëposhtme ofron një vizualizim për thirrjet e funksioneve me shumë hapa, duke kombinuar përkufizimet e kthesave dhe hapave me konceptin e nënshkrimeve të prezantuara më sipër:
Kthehu | Hapi | Kërkesë për përdoruesin | Përgjigje modeli | FunksioniPërgjigja |
1 | 1 | request1 = user_prompt | FC1 + signature | FR1 |
1 | 2 | request2 = request1 + (FC1 + signature) + FR1 | FC2 + signature | FR2 |
1 | 3 | request3 = request2 + (FC2 + signature) + FR2 | text_output(pa FC) | Asnjë |
Nënshkrimet në pjesët që thërrasin funksionet
Kur Gemini gjeneron një functionCall , ai mbështetet në thought_signature për të përpunuar saktë rezultatin e mjetit në kthesën tjetër.
- Sjellja :
- Thirrje e një funksioni të vetëm : Pjesa
functionCalldo të përmbajë njëthought_signature. - Thirrjet e Funksioneve Paralele : Nëse modeli gjeneron thirrje të funksioneve paralele në një përgjigje,
thought_signaturei bashkëngjitet vetëm pjesës së parëfunctionCall. Pjesët pasuesefunctionCallnë të njëjtën përgjigje nuk do të përmbajnë një nënshkrim.
- Thirrje e një funksioni të vetëm : Pjesa
- Kërkesa : Duhet ta ktheni këtë nënshkrim pikërisht në pjesën ku e keni marrë kur keni dërguar historikun e bisedës.
- Validimi : Validimi i rreptë zbatohet për të gjitha thirrjet e funksioneve brenda rradhës aktuale. (Kërkohet vetëm rradha aktuale; ne nuk validojmë në rradhët e mëparshme)
- API-ja shkon prapa në histori (nga më e reja tek më e vjetra) për të gjetur mesazhin më të fundit të Përdoruesit që përmban përmbajtje standarde (p.sh.,
text) (i cili do të ishte fillimi i kthesës aktuale). Kjo nuk do të jetë njëfunctionResponse. - Të gjitha kthesat e modelit
functionCallqë ndodhin pas atij mesazhi specifik të përdorimit konsiderohen pjesë e kthesës. - Pjesa e parë
functionCallnë secilin hap të kthesës aktuale duhet të përfshijëthought_signaturein e saj. - Nëse hiqni një
thought_signaturepër pjesën e parëfunctionCallnë çdo hap të kthesës aktuale, kërkesa do të dështojë me një gabim 400.
- API-ja shkon prapa në histori (nga më e reja tek më e vjetra) për të gjetur mesazhin më të fundit të Përdoruesit që përmban përmbajtje standarde (p.sh.,
- Nëse nënshkrimet e duhura nuk kthehen, ja se si do të bëni gabim
-
gemini-3-pro-preview: Mospërfshirja e nënshkrimeve do të rezultojë në një gabim 400. Fjalori do të jetë i formës:- Thirrja e funksionit
<Function Call>në bllokun<index of contents array>i mungon njëthought_signature. Për shembull, thirrja e funksionitFC1në bllokun1.i mungon njëthought_signature.
- Thirrja e funksionit
-
Shembull i thirrjes së funksionit sekuencial
Ky seksion tregon një shembull të thirrjeve të shumëfishta të funksioneve ku përdoruesi bën një pyetje komplekse që kërkon detyra të shumëfishta.
Le të shqyrtojmë një shembull të thirrjes së një funksioni me shumë kthesa, ku përdoruesi bën një pyetje komplekse që kërkon detyra të shumëfishta: "Check flight status for AA100 and book a taxi if delayed" .
Kthehu | Hapi | Kërkesë për përdoruesin | Përgjigje modeli | FunksioniPërgjigja |
1 | 1 | request1="Check flight status for AA100 and book a taxi 2 hours before if delayed." | FC1 ("check_flight") + signature | FR1 |
1 | 2 | request2 = request1 + FC1 ("check_flight") + signature + FR1 | FC2("book_taxi") + signature | FR2 |
1 | 3 | request3 = request2 + FC2 ("book_taxi") + signature + FR2 | text_output(pa FC) | None |
Kodi i mëposhtëm ilustron sekuencën në tabelën e mësipërme.
Kthesa 1, Hapi 1 (Kërkesë e përdoruesit)
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Check flight status for AA100 and book a taxi 2 hours before if delayed."
}
]
}
],
"tools": [
{
"functionDeclarations": [
{
"name": "check_flight",
"description": "Gets the current status of a flight",
"parameters": {
"type": "object",
"properties": {
"flight": {
"type": "string",
"description": "The flight number to check"
}
},
"required": [
"flight"
]
}
},
{
"name": "book_taxi",
"description": "Book a taxi",
"parameters": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "time to book the taxi"
}
},
"required": [
"time"
]
}
}
]
}
]
}
Kthesa 1, Hapi 1 (Përgjigje modeli)
{
"content": {
"role": "model",
"parts": [
{
"functionCall": {
"name": "check_flight",
"args": {
"flight": "AA100"
}
},
"thoughtSignature": "<Signature A>"
}
]
}
}
Hapi 1, Hapi 2 (Përgjigja e përdoruesit - Dërgimi i rezultateve të mjetit) Meqenëse ky hap i përdoruesit përmban vetëm një functionResponse (pa tekst të ri), jemi ende në Hapi 1. Duhet të ruajmë <Signature_A> .
{
"role": "user",
"parts": [
{
"text": "Check flight status for AA100 and book a taxi 2 hours before if delayed."
}
]
},
{
"role": "model",
"parts": [
{
"functionCall": {
"name": "check_flight",
"args": {
"flight": "AA100"
}
},
"thoughtSignature": "<Signature A>" //Required and Validated
}
]
},
{
"role": "user",
"parts": [
{
"functionResponse": {
"name": "check_flight",
"response": {
"status": "delayed",
"departure_time": "12 PM"
}
}
}
]
}
Kthesa 1, Hapi 2 (Modeli) Modeli tani vendos të rezervojë një taksi bazuar në rezultatin e mëparshëm të mjetit.
{
"content": {
"role": "model",
"parts": [
{
"functionCall": {
"name": "book_taxi",
"args": {
"time": "10 AM"
}
},
"thoughtSignature": "<Signature B>"
}
]
}
}
Kthesa 1, Hapi 3 (Përdoruesi - Dërgimi i rezultatit të mjetit) Për të dërguar konfirmimin e rezervimit të taksisë, duhet të përfshijmë nënshkrime për TË GJITHA thirrjet e funksioneve në këtë lak ( <Signature A> + <Signature B> ).
{
"role": "user",
"parts": [
{
"text": "Check flight status for AA100 and book a taxi 2 hours before if delayed."
}
]
},
{
"role": "model",
"parts": [
{
"functionCall": {
"name": "check_flight",
"args": {
"flight": "AA100"
}
},
"thoughtSignature": "<Signature A>" //Required and Validated
}
]
},
{
"role": "user",
"parts": [
{
"functionResponse": {
"name": "check_flight",
"response": {
"status": "delayed",
"departure_time": "12 PM"
}
}
}
]
},
{
"role": "model",
"parts": [
{
"functionCall": {
"name": "book_taxi",
"args": {
"time": "10 AM"
}
},
"thoughtSignature": "<Signature B>" //Required and Validated
}
]
},
{
"role": "user",
"parts": [
{
"functionResponse": {
"name": "book_taxi",
"response": {
"booking_status": "success"
}
}
}
]
}
}
Shembull i thirrjes së funksionit paralel
Le të shqyrtojmë një shembull të thirrjes së një funksioni paralel ku përdoruesi pyet "Check weather in Paris and London" për të parë se ku e kryen modeli validimin.
Kthehu | Hapi | Kërkesë për përdoruesin | Përgjigje modeli | FunksioniPërgjigja |
|---|---|---|---|---|
1 | 1 | request1="Kontrolloni motin në Paris dhe Londër" | FC1 ("Paris") + nënshkrimi FC2 ("Londër") | FR1 |
1 | 2 | kërkesa 2 = kërkesa1 + FC1 ("Paris") + nënshkrimi + FC2 ("Londër") | text_output (pa FC) | Asnjë |
Kodi i mëposhtëm ilustron sekuencën në tabelën e mësipërme.
Kthesa 1, Hapi 1 (Kërkesë e përdoruesit)
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Check the weather in Paris and London."
}
]
}
],
"tools": [
{
"functionDeclarations": [
{
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name, e.g. San Francisco"
}
},
"required": [
"location"
]
}
}
]
}
]
}
Kthesa 1, Hapi 1 (Përgjigje modeli)
{
"content": {
"parts": [
{
"functionCall": {
"name": "get_current_temperature",
"args": {
"location": "Paris"
}
},
"thoughtSignature": "<Signature_A>"// INCLUDED on First FC
},
{
"functionCall": {
"name": "get_current_temperature",
"args": {
"location": "London"
}// NO signature on subsequent parallel FCs
}
}
]
}
}
Hapi 1, Hapi 2 (Përgjigja e përdoruesit - Dërgimi i rezultateve të mjetit) Duhet ta ruajmë <Signature_A> në pjesën e parë pikërisht ashtu siç është marrë.
[
{
"role": "user",
"parts": [
{
"text": "Check the weather in Paris and London."
}
]
},
{
"role": "model",
"parts": [
{
"functionCall": {
"name": "get_current_temperature",
"args": {
"city": "Paris"
}
},
"thought_signature": "<Signature_A>" // MUST BE INCLUDED
},
{
"functionCall": {
"name": "get_current_temperature",
"args": {
"city": "London"
}
}
} // NO SIGNATURE FIELD
]
},
{
"role": "user",
"parts": [
{
"functionResponse": {
"name": "get_current_temperature",
"response": {
"temp": "15C"
}
}
},
{
"functionResponse": {
"name": "get_current_temperature",
"response": {
"temp": "12C"
}
}
}
]
}
]
Nënshkrimet në pjesët jo- functionCall
Gemini gjithashtu mund të kthejë thought_signatures në pjesën e fundit të përgjigjes në pjesët që nuk përfshijnë thirrje funksioni.
- Sjellja : Pjesa e fundit e përmbajtjes (
text, inlineData…) e kthyer nga modeli mund të përmbajë njëthought_signature. - Rekomandim : Kthimi i këtyre nënshkrimeve rekomandohet për të siguruar që modeli të ruajë arsyetim me cilësi të lartë, veçanërisht për ndjekjen e udhëzimeve komplekse ose rrjedhat e punës të simuluara të agjentëve.
- Validimi : API nuk e zbaton në mënyrë strikte validimin. Nuk do të merrni një gabim bllokimi nëse i lini jashtë, megjithëse performanca mund të përkeqësohet.
Arsyetim Tekst/Në Kontekst (Pa validim)
Kthesa 1, Hapi 1 (Përgjigje modeli)
{
"role": "model",
"parts": [
{
"text": "I need to calculate the risk. Let me think step-by-step...",
"thought_signature": "<Signature_C>" // OPTIONAL (Recommended)
}
]
}
Kthesa 2, Hapi 1 (Përdoruesi)
[
{ "role": "user", "parts": [{ "text": "What is the risk?" }] },
{
"role": "model",
"parts": [
{
"text": "I need to calculate the risk. Let me think step-by-step...",
// If you omit <Signature_C> here, no error will occur.
}
]
},
{ "role": "user", "parts": [{ "text": "Summarize it." }] }
]
Nënshkrimet për pajtueshmërinë me OpenAI
Shembujt e mëposhtëm tregojnë se si të trajtohen nënshkrimet e mendimeve për një API të përfundimit të bisedës duke përdorur përputhshmërinë me OpenAI .
Shembull i thirrjes së funksionit sekuencial
Ky është një shembull i thirrjes së funksioneve të shumëfishta ku përdoruesi bën një pyetje komplekse që kërkon detyra të shumëfishta.
Le të shqyrtojmë një shembull të një funksioni me thirrje të shumëfishta, ku përdoruesi pyet Check flight status for AA100 and book a taxi if delayed dhe mund të shihni se çfarë ndodh kur përdoruesi bën një pyetje komplekse që kërkon detyra të shumëfishta.
Kthehu | Hapi | Kërkesë për përdoruesin | Përgjigje modeli | FunksioniPërgjigja |
1 | 1 | request1="Check the weather in Paris and London" | FC1 ("Paris") + signatureFC2 ("Londër") | FR1 |
1 | 2 | request 2 = request1 + FC1 ("Paris") + signature + FC2 ("London") | text_output(pa FC) | None |
Kodi i mëposhtëm ecën nëpër sekuencën e dhënë.
Kthesa 1, Hapi 1 (Kërkesa e Përdoruesit)
{
"model": "google/gemini-3-pro-preview",
"messages": [
{
"role": "user",
"content": "Check flight status for AA100 and book a taxi 2 hours before if delayed."
}
],
"tools": [
{
"type": "function",
"function": {
"name": "check_flight",
"description": "Gets the current status of a flight",
"parameters": {
"type": "object",
"properties": {
"flight": {
"type": "string",
"description": "The flight number to check."
}
},
"required": [
"flight"
]
}
}
},
{
"type": "function",
"function": {
"name": "book_taxi",
"description": "Book a taxi",
"parameters": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "time to book the taxi"
}
},
"required": [
"time"
]
}
}
}
]
}
Kthesa 1, Hapi 1 (Përgjigje Modeli)
{
"role": "model",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature A>"
}
},
"function": {
"arguments": "{\"flight\":\"AA100\"}",
"name": "check_flight"
},
"id": "function-call-1",
"type": "function"
}
]
}
Kthesa 1, Hapi 2 (Përgjigja e Përdoruesit - Dërgimi i Rezultateve të Mjetit)
Meqenëse kjo raund përdoruesi përmban vetëm një functionResponse (pa tekst të ri), ne jemi ende në Raundin 1 dhe duhet të ruajmë <Signature_A> .
"messages": [
{
"role": "user",
"content": "Check flight status for AA100 and book a taxi 2 hours before if delayed."
},
{
"role": "model",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature A>" //Required and Validated
}
},
"function": {
"arguments": "{\"flight\":\"AA100\"}",
"name": "check_flight"
},
"id": "function-call-1",
"type": "function"
}
]
},
{
"role": "tool",
"name": "check_flight",
"tool_call_id": "function-call-1",
"content": "{\"status\":\"delayed\",\"departure_time\":\"12 PM\"}"
}
]
Kthesa 1, Hapi 2 (Model)
Modeli tani vendos të rezervojë një taksi bazuar në rezultatin e mëparshëm të mjetit.
{
"role": "model",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature B>"
}
},
"function": {
"arguments": "{\"time\":\"10 AM\"}",
"name": "book_taxi"
},
"id": "function-call-2",
"type": "function"
}
]
}
Kthesa 1, Hapi 3 (Përdoruesi - Dërgimi i të Dhënave të Mjetit)
Për të dërguar konfirmimin e rezervimit të taksisë, duhet të përfshijmë nënshkrime për TË GJITHA thirrjet e funksioneve në këtë lak ( <Signature A> + <Signature B> ).
"messages": [
{
"role": "user",
"content": "Check flight status for AA100 and book a taxi 2 hours before if delayed."
},
{
"role": "model",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature A>" //Required and Validated
}
},
"function": {
"arguments": "{\"flight\":\"AA100\"}",
"name": "check_flight"
},
"id": "function-call-1d6a1a61-6f4f-4029-80ce-61586bd86da5",
"type": "function"
}
]
},
{
"role": "tool",
"name": "check_flight",
"tool_call_id": "function-call-1d6a1a61-6f4f-4029-80ce-61586bd86da5",
"content": "{\"status\":\"delayed\",\"departure_time\":\"12 PM\"}"
},
{
"role": "model",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature B>" //Required and Validated
}
},
"function": {
"arguments": "{\"time\":\"10 AM\"}",
"name": "book_taxi"
},
"id": "function-call-65b325ba-9b40-4003-9535-8c7137b35634",
"type": "function"
}
]
},
{
"role": "tool",
"name": "book_taxi",
"tool_call_id": "function-call-65b325ba-9b40-4003-9535-8c7137b35634",
"content": "{\"booking_status\":\"success\"}"
}
]
Shembull i thirrjes së funksionit paralel
Le të shqyrtojmë një shembull të thirrjes së një funksioni paralel ku përdoruesi pyet "Check weather in Paris and London" dhe ju mund të shihni se ku bën validimin modeli.
Kthehu | Hapi | Kërkesë për përdoruesin | Përgjigje modeli | FunksioniPërgjigja |
1 | 1 | request1="Check the weather in Paris and London" | FC1 ("Paris") + signatureFC2 ("Londër") | FR1 |
1 | 2 | request 2 = request1 + FC1 ("Paris") + signature + FC2 ("London") | text_output(pa FC) | None |
Ja kodi për të ecur nëpër sekuencën e dhënë.
Kthesa 1, Hapi 1 (Kërkesa e Përdoruesit)
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Check the weather in Paris and London."
}
]
}
],
"tools": [
{
"functionDeclarations": [
{
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name, e.g. San Francisco"
}
},
"required": [
"location"
]
}
}
]
}
]
}
Kthesa 1, Hapi 1 (Përgjigje Modeli)
{
"role": "assistant",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature A>" //Signature returned
}
},
"function": {
"arguments": "{\"location\":\"Paris\"}",
"name": "get_current_temperature"
},
"id": "function-call-f3b9ecb3-d55f-4076-98c8-b13e9d1c0e01",
"type": "function"
},
{
"function": {
"arguments": "{\"location\":\"London\"}",
"name": "get_current_temperature"
},
"id": "function-call-335673ad-913e-42d1-bbf5-387c8ab80f44",
"type": "function" // No signature on Parallel FC
}
]
}
Kthesa 1, Hapi 2 (Përgjigja e Përdoruesit - Dërgimi i Rezultateve të Mjetit)
Duhet ta ruani <Signature_A> në pjesën e parë pikërisht ashtu siç e keni marrë.
"messages": [
{
"role": "user",
"content": "Check the weather in Paris and London."
},
{
"role": "assistant",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature A>" //Required
}
},
"function": {
"arguments": "{\"location\":\"Paris\"}",
"name": "get_current_temperature"
},
"id": "function-call-f3b9ecb3-d55f-4076-98c8-b13e9d1c0e01",
"type": "function"
},
{
"function": { //No Signature
"arguments": "{\"location\":\"London\"}",
"name": "get_current_temperature"
},
"id": "function-call-335673ad-913e-42d1-bbf5-387c8ab80f44",
"type": "function"
}
]
},
{
"role":"tool",
"name": "get_current_temperature",
"tool_call_id": "function-call-f3b9ecb3-d55f-4076-98c8-b13e9d1c0e01",
"content": "{\"temp\":\"15C\"}"
},
{
"role":"tool",
"name": "get_current_temperature",
"tool_call_id": "function-call-335673ad-913e-42d1-bbf5-387c8ab80f44",
"content": "{\"temp\":\"12C\"}"
}
]
Pyetje të shpeshta
Si mund ta transferoj historikun nga një model tjetër në Gemini 3 Pro me një pjesë të thirrjes së funksionit në kthesën dhe hapin aktual? Duhet të ofroj pjesë të thirrjes së funksionit që nuk janë gjeneruar nga API dhe për këtë arsye nuk kanë një nënshkrim mendimi të lidhur me to?
Ndërkohë që injektimi i blloqeve të thirrjeve të funksioneve të personalizuara në kërkesë nuk rekomandohet fuqimisht, në rastet kur nuk mund të shmanget, p.sh. duke i dhënë informacion modelit mbi thirrjet e funksioneve dhe përgjigjet që janë ekzekutuar në mënyrë deterministe nga klienti, ose duke transferuar një gjurmë nga një model tjetër që nuk përfshin nënshkrime mendimi, mund të vendosni nënshkrimet e mëposhtme artificiale si
"context_engineering_is_the_way_to_go"ose"skip_thought_signature_validator"në fushën e nënshkrimit të mendimit për të anashkaluar validimin.Po dërgoj mbrapsht thirrje dhe përgjigje të funksioneve paralele të ndërthurura dhe API po kthen një vlerë 400. Pse?
Kur API kthen thirrjet paralele të funksioneve "FC1 + nënshkrim, FC2", përgjigja e pritur e përdoruesit është "FC1 + nënshkrim, FC2, FR1, FR2". Nëse i keni të ndërthurura si "FC1 + nënshkrim, FR1, FC2, FR2", API do të kthejë një gabim 400.
Kur transmetohet dhe modeli nuk po kthen një thirrje funksioni, nuk mund ta gjej nënshkrimin e mendimit.
Gjatë një përgjigjeje të modelit që nuk përmban një FC me një kërkesë transmetimi, modeli mund ta kthejë nënshkrimin e mendimit në një pjesë me një pjesë të përmbajtjes së tekstit bosh. Këshillohet që të analizohet e gjithë kërkesa derisa modeli të kthejë
finish_reason.
Sjellja e shenjës së mendimit sipas serisë së modelit
Modelet Gemini 3 Pro dhe Gemini 2.5 sillen ndryshe me nënshkrimet e mendimit në thirrjet e funksioneve:
- Nëse ka thirrje funksionesh në një përgjigje,
- Gemini 3 Pro do ta ketë gjithmonë nënshkrimin në pjesën e parë të thirrjes së funksionit. Është e detyrueshme të kthehet ajo pjesë.
- Gemini 2.5 do ta ketë nënshkrimin në pjesën e parë (pavarësisht nga lloji). Kthimi i asaj pjese është opsional .
- Nëse nuk ka thirrje funksionesh në një përgjigje,
- Gemini 3 Pro do të ketë firmën në pjesën e fundit nëse modeli gjeneron një ide.
- Gemini 2.5 nuk do të ketë një nënshkrim në asnjë pjesë.
Për sjelljen e të menduarit dhe nënshkrimin e modeleve Gemini 2.5, referojuni faqes së të menduarit .