Como Combinar Google Search, Google Maps e Funções Personalizadas em Uma Única Chamada à API Gemini com Circulação de Contexto, IDs de Ferramentas Paralelas e Cadeias Agentics de Várias Etapas

Como Combinar Google Search, Google Maps e Funções Personalizadas em Uma Única Chamada à API Gemini com Circulação de Contexto, IDs de Ferramentas Paralelas e Cadeias Agentics de Várias Etapas

Neste tutorial, exploramos as últimas atualizações das ferramentas da API Gemini que o Google anunciou em março de 2026, especificamente a capacidade de combinar ferramentas integradas como Google Search e Google Maps com chamadas de função personalizadas em uma única requisição de API. Percorremos cinco demonstrações práticas que se baseiam umas nas outras, começando com a ferramenta principal […] A postagem Como Combinar Google Search, Google Map

Neste tutorial, exploramos as últimas atualizações das ferramentas da API Gemini que o Google anunciou em março de 2026, especificamente a capacidade de combinar ferramentas integradas como Google Search e Google Maps com chamadas de função personalizadas em uma única requisição de API. Percorremos cinco demonstrações práticas que se baseiam umas nas outras, começando com o recurso principal de combinação de ferramentas e terminando com uma cadeia agentic completa de várias ferramentas. Ao longo do caminho, demonstramos como a circulação de contexto preserva cada chamada e resposta de ferramenta em todas as etapas, permitindo que o modelo raciocine sobre saídas anteriores; como IDs de resposta de ferramenta exclusivos nos permitem mapear chamadas de função paralelas para seus resultados exatos; e como o Grounding com o Google Maps traz dados de localização em tempo real para nossos aplicativos. Usamos gemini-3-flash-preview para recursos de combinação de ferramentas e gemini-2.5-flash para o grounding do Maps, então tudo o que construímos aqui funciona sem qualquer configuração de faturamento. Copiar Código Copiado Usar um navegador diferente import subprocess, sys subprocess.check_call( [sys.executable, "-m", "pip", "install", "-qU", "google-genai"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, ) import getpass, json, textwrap, os, time from google import genai from google.genai import types if "GOOGLE_API_KEY" not in os.environ: os.environ["GOOGLE_API_KEY"] = getpass.getpass("Digite sua chave de API Gemini: ") client = genai.Client(api_key=os.environ["GOOGLE_API_KEY"]) TOOL_COMBO_MODEL = "gemini-3-flash-preview" MAPS_MODEL = "gemini-2.5-flash" DIVIDER = "=" * 72 def heading(title: str): print(f"
{DIVIDER}") print(f" {title}") print(DIVIDER) def wrap(text: str, width: int = 80): for line in text.splitlines(): print(textwrap.fill(line, width=width) if line.strip() else "") def describe_parts(response): parts = response.candidates[0].content.parts fc_ids = {} for i, part in enumerate(parts): prefix = f" Parte {i:2d}:" if hasattr(part, "tool_call") and part.tool_call: tc = part.tool_call print(f"{prefix} [toolCall] type={tc.tool_type} id={tc.id}") if hasattr(part, "tool_response") and part.tool_response: tr = part.tool_response print(f"{prefix} [toolResponse] type={tr.tool_type} id={tr.id}") if hasattr(part, "executable_code") and part.executable_code: code = part.executable_code.code[:90].replace("
", " ↵ ") print(f"{prefix} [executableCode] {code}...") if hasattr(part, "code_execution_result") and part.code_execution_result: out = (part.code_execution_result.output or "")[:90] print(f"{prefix} [codeExecResult]

Gemini APIFerramentas GoogleAgentes de IA