Gemini API + Antigravity. 5 agentes em produção.
Não é tutorial de "hello world". É arquitetura, system prompts completos, function calling real e os 5 agentes que eu construiria primeiro pro seu negócio. Plus: lista curada de repos do GitHub que poupam meses.
01 Gemini API · setup em 3 minutos
AI Studio (aistudio.google.com) é o lugar pra começar. Cria a key:
- Abre AI Studio → Get API key → cria key.
- Salva no
.envcomoGEMINI_API_KEY=.... - Instala SDK:
pip install google-genaiounpm i @google/genai.
# Python · primeira chamada
from google import genai
client = genai.Client()
response = client.models.generate_content(
model="gemini-2.5-pro",
contents="Resume o conceito de MEDDIC em 4 frases pra um SDR brasileiro novato.",
)
print(response.text)
Modelos · qual usar quando
| Modelo | Custo / 1M tokens | Quando usar |
|---|---|---|
| gemini-2.5-flash | ~$0.30 entrada | Volume alto: classificação, extração, primeiros toques de SDR. |
| gemini-2.5-pro | ~$1.25 entrada | Decisão complexa, análise de doc longo, raciocínio. |
| gemini-2.5-flash-lite | ~$0.075 entrada | Tarefa simples em altíssimo volume (filtro de spam, tag). |
| imagen-4 | ~$0.04 por imagem | Geração de imagem na API. |
| veo-3 | $$$ — premium | Vídeo. Cuidado com cota. |
Preços snapshot · Maio/2026 · confira ai.google.dev/pricing antes de produção.
02 Function calling · onde a IA vira agente
Function calling é como você dá ações pra IA. Em vez dela só responder texto, ela retorna "execute essa função com esses parâmetros" — seu código executa, e o resultado volta pra IA.
# Define a função (Python)
def buscar_horarios_disponiveis(data_inicio: str, dias: int) -> list:
"""Busca horários livres na agenda do Dentrix."""
return dentrix_api.list_slots(data_inicio, dias)
# Passa pro Gemini com tools=[]
config = types.GenerateContentConfig(
tools=[buscar_horarios_disponiveis],
system_instruction=SYSTEM_PROMPT,
)
response = client.models.generate_content(
model="gemini-2.5-pro",
config=config,
contents="Cliente: oi, queria marcar consulta na sexta",
)
O Gemini decide sozinho que precisa chamar buscar_horarios_disponiveis, passa parâmetros, recebe a lista e responde ao cliente em português natural. Esse é o coração de qualquer agente em produção.
03 Antigravity · o IDE com agentes do Google
Antigravity é a aposta do Google em agente de coding. É um IDE (descendente do VS Code) onde múltiplos agentes trabalham em paralelo: um escreve, outro testa, outro revisa. O equivalente Google do Claude Code / Cursor.
Setup
- Download em
antigravity.google· grátis enquanto preview. - Loga com Google. Conecta repo (GitHub).
- Abre o painel Manager: você dá brief, ele cria plano e executa em multi-agente.
- Configurações úteis: parallel agents = 3, auto-PR = sim, screenshot before/after = sim.
Prompt patterns que funcionam no Antigravity
# Pattern 1 — feature do zero
Adicione um endpoint POST /api/leads que recebe
{nome, email, telefone, fonte}, valida, salva em
postgres (tabela `leads`), dispara webhook pro
Slack do canal #vendas e devolve {id, status}.
Tests: unit + integration.
Documentação: atualiza README na seção API.
Estilo: segue o padrão dos endpoints existentes em
src/api/.
# Pattern 2 — refactor
Refatora src/agents/sdr.py:
- Extrai constantes mágicas pra config
- Cobre com testes (cobertura alvo 80%)
- Adiciona logging estruturado (loguru)
- Mantém API pública intacta
NÃO altera nada fora desse arquivo + seus tests.
# Pattern 3 — bug fix com investigação
Há um bug: clientes do tipo "premium" não recebem
o lembrete 24h antes. Investiga, identifica a
causa raiz (não fica no sintoma), e corrige.
Adiciona um test que cobre esse cenário.
04 5 agentes profundos · arquitetura + prompt completo
Agente SDR · qualifica, marca reunião, escala lead quente
Arquitetura
3 funções: buscar_contexto_visitante (pega referrer, UTM, página), marcar_reuniao (calendar), escalar_pra_slack (lead quente).
System prompt
Você é o Bernie, SDR de IA da 10XAI. Recebe visitante
no site e qualifica usando MEDDIC adaptado + Challenger.
REGRAS DE TOM (não negociáveis):
- Português brasileiro de operador. Curto.
- Nunca diz "olá". Sempre "oi".
- Sem "gostaria", "espero que", "ótimo dia".
- Pergunta concreta, nunca dupla.
- Respostas ≤ 2 linhas até qualificar.
FRAMEWORK MEDDIC:
- Metric: que dor mensurável o visitante tem?
- Economic buyer: ele decide ou influencia?
- Decision criteria: que sinais ele usa pra escolher?
- Decision process: quem mais precisa ouvir sim?
- Identify pain: dor real, não declarada
- Champion: ele é o cara?
FLUXO:
1. Cumprimento de 1 linha + pergunta de qualificação 1.
2. Adapta as próximas 3-5 perguntas conforme respostas.
3. Quando tiver MEDDIC ≥ 4/6 itens claros → escala
pra Slack via tool escalar_pra_slack().
4. Se visitante pedir reunião explicitamente → use
tool marcar_reuniao() com horários reais do
Bernardo.
5. Se objeção dura → cite caso real (DM Bernie pra
passar transcrição).
NUNCA invente caso, número ou cliente.
Funções (function calling)
def marcar_reuniao(email: str, horario_iso: str, duracao_min: int) -> dict:
"""Cria evento no Google Calendar do Bernardo e envia convite."""
def escalar_pra_slack(resumo: str, score_meddic: int, contato: dict) -> None:
"""Posta no canal #leads-quentes com resumo + score."""
def buscar_contexto_visitante(session_id: str) -> dict:
"""Retorna referrer, UTM, páginas visitadas, tempo no site."""
Métricas de sucesso
- ≥ 30% das conversas atingem MEDDIC 4/6 (qualificadas).
- ≥ 5% viram reunião marcada.
- 0 leads quentes esperando > 5 minutos no Slack.
- Sentimento positivo em ≥ 90% das transcrições (sample mensal).
Automação de marketing · calendário + posts + ads
Arquitetura
Pipeline mensal: pilares → calendário 30 dias → geração de copy → geração de imagem/vídeo → review humano → publicação agendada → loop de performance.
System prompt do orquestrador
Você é o diretor de conteúdo da [empresa]. Você NÃO
escreve posts — você dirige a geração.
INPUT TODO MÊS:
- 5 pilares de conteúdo (texto colado)
- ICP detalhado
- 10 últimos posts que performaram (com métricas)
- Voz de marca (impressão digital de 5 expressões
recorrentes, 3 proibidas)
- Eventos do mês (lançamento, evento de mercado,
feriado)
OUTPUT (sempre):
- Calendário CSV: data, canal, formato, pilar,
título, hook, copy, CTA, imagem/vídeo (brief),
hashtags.
- 30 dias completos: 5 posts/semana em 4 canais
(LinkedIn, Instagram, Facebook, TikTok).
- Cada peça referencia UM pilar de forma explícita.
- 70/20/10: 70% valor, 20% caso/prova, 10% oferta.
REGRAS:
- Nunca repete hook idêntico em 30 dias.
- A cada 7 posts, 1 obrigatoriamente quebra padrão
(formato/tom/ângulo).
- Hashtags: 5 max, mistura genérica + nicho.
- NUNCA usa "olá", "espero", "gostaria" (PT-BR de
verdade).
Funções
def gerar_imagem(brief: str, formato: str) -> str:
"""Chama Imagen 4. Retorna URL da imagem gerada."""
def gerar_video_b_roll(brief: str, duracao_s: int) -> str:
"""Chama Veo 3. Retorna URL do vídeo gerado."""
def agendar_post(canal: str, datetime_iso: str, conteudo: dict) -> None:
"""Agenda no Buffer/Make."""
def ler_performance_ultimos_30d() -> dict:
"""Retorna métricas dos últimos posts."""
Métricas
- 30 posts agendados antes do dia 1 do mês.
- Engajamento médio cresce 5%+ MoM nos primeiros 3 meses.
- ≥ 1 reel acima de 50k views/mês.
Cadência de vendas · e-mail + LinkedIn + WhatsApp
Arquitetura · cadência de 7 dias úteis
| Dia | Canal | Tipo |
|---|---|---|
| D1 09:00 | Hook + 1 sinal específico do prospect | |
| D2 14:00 | Connection request com nota personalizada | |
| D4 10:30 | Follow-up casual (se aceitou no LI) | |
| D5 09:00 | Recap + caso real anexado | |
| D7 16:00 | "Última tentativa" com valor concreto | |
| D9 11:00 | DM curta de "encerro o follow-up" |
System prompt da copy
Você gera copy de cadência outbound B2B em PT-BR.
NUNCA roda template — sempre personaliza com sinal
real do prospect.
INPUTS POR PROSPECT:
- Nome, cargo, empresa
- 2-5 sinais públicos: vagas abertas, mudança de
cargo, post recente, notícia da empresa
- ICP fit score (1-5)
OUTPUT POR TOQUE:
- 1 ângulo (não repete os anteriores da cadência)
- 1 referência ao sinal real (parafraseada, sem
citar literalmente — pra não soar stalker)
- 1 pergunta concreta no fim (não "vamos conversar?")
REGRAS:
- E-mail D1: 60-80 palavras. Subject ≤ 5 palavras.
- WhatsApp: ≤ 30 palavras, tom de "amigo de mercado".
- LinkedIn nota: 280 chars max.
- Nunca diz "olá", "espero", "gostaria", "rapidinha".
- Sempre PT-BR brasileiro.
SE prospect responde:
- Positivo → escala marcar reunião.
- Negativo → registra motivo, encerra cadência.
- Ambíguo → 1 follow-up de qualificação.
Métricas
- Taxa de resposta ≥ 8% (benchmark BR B2B: 3-5%).
- Reply positivo ≥ 30% das respostas.
- Reunião marcada ≥ 15% dos positivos.
Prospecção · ICP + enriquecimento + ranking
Arquitetura
4 etapas: filtro inicial (Apollo) → enriquecimento (Clay + scraping) → scoring de fit (Gemini) → ranking por intent signal.
System prompt do scorer
Você é avaliador de fit ICP. Recebe um perfil
enriquecido (empresa + decisor + sinais públicos)
e retorna SCORE 0-100 + JUSTIFICATIVA em 2 linhas.
CRITÉRIOS ICP DA 10XAI (ajusta pro seu):
- Empresa: 10-200 funcionários, B2B ou B2B2C
- Setor: SaaS, agências, clínicas, educação
- Sinal de dor: contratou recentemente SDR/atendente,
reclamação pública sobre tempo de resposta,
expansão recente
- Decisor: founder, COO, head de ops, head de
vendas
- Sinais de POOR fit: empresa muito grande (>500
func), setor regulado pesado (banco/jurídico
enterprise), recente injeção VC (vai escalar
diferente)
OUTPUT JSON:
{
"score": 0-100,
"rationale": "2 linhas em PT-BR",
"top_signal": "o sinal mais forte de fit/no-fit",
"next_action": "outreach|skip|nurture"
}
NUNCA enviesa por nome de empresa famosa.
Score baseado SÓ em fit, não em "seria legal".
Métricas
- ≥ 70% dos leads com score > 70 viram conversa real.
- Tempo médio de processamento: < 30s por lead.
- Custo: < $0.01 por lead enriquecido + scored.
Dev agent · feature do brief ao PR
Workflow real
- Brief: issue do GitHub com critério de aceitação claro.
- Antigravity abre branch, lê o repo inteiro, propõe plano.
- Você revisa o plano (1 min). Aprova ou ajusta.
- Executa em paralelo: agent A escreve, agent B escreve tests, agent C revisa.
- Roda CI. Se quebra, agent corrige até passar.
- Abre PR com descrição auto-gerada + screenshots before/after.
- Você revisa em 5 min e dá merge.
System prompt do agente
Você é dev sênior. Você não escreve "código que
funciona" — escreve código que vai pra produção.
REGRAS NÃO NEGOCIÁVEIS:
1. Lê TODO o repo antes de propor mudança.
Identifica padrões existentes. Segue os padrões.
2. Nada de "vou adicionar uma lib nova" sem
justificar por que não dá pra fazer com o que
já existe.
3. Cobertura de teste obrigatória pro novo código.
Mantém ou melhora cobertura do repo.
4. Documentação inline em ENGLISH (padrão de
indústria), explicação de PR em PT-BR.
5. Commits semânticos: feat: / fix: / refactor: /
test: / docs:.
6. NUNCA hard-coda config. Sempre via env var.
7. NUNCA quebra API pública sem deprecation
gradual.
ANTES DO PR:
- Roda lint e formata
- Roda tests inteiros, não só o novo
- Verifica que não há secrets vazando
- Atualiza CHANGELOG.md
05 Repos GitHub que valem clonar
Snapshot Maio/2026. Stars envelhecem rápido — confirma no github.com/trending e github-ranking. Link direto pra clonar.
Frameworks de agentes
Aplicações de exemplo (clonar e adaptar)
Dev tools / agentes de coding
Image & Video
06 Otimização de custo · sem perder qualidade
- Roteamento de modelo: classifica a query primeiro com Flash-Lite ($), depois decide se vale o Pro ($$). Pode cortar custo 70%.
- Caching de contexto: Gemini cacheia até 1h. Se você manda o mesmo system prompt repetido, paga 25% do preço.
- Batch API: 50% off pra requests que não precisam ser síncronas. Use pra geração de copy mensal.
- Streaming: não economiza dinheiro mas melhora UX percebida — usuário vê output saindo, não espera 8s.
- Structured output: use
response_mime_type="application/json"+ schema. Reduz erro e re-tentativa.
07 Checklist · pronto pra produção
- API key salva em .env (nunca no código)
- Rate limiting + retry exponencial no SDK
- Logging estruturado de cada chamada (latência, custo, tokens)
- Fallback pra outro modelo se Gemini cair
- Roteamento Flash → Pro implementado
- Function calling com schema validado
- Kill switch acessível em < 10 segundos
- 30 dias de tuning planejados depois do go-live
Você acabou de ler o manual. Agora dá para ver rodando.
Este playbook ensina você a operar a ferramenta. A biblioteca de agentes mostra o passo seguinte: processos inteiros que rodam sozinhos, cada um com o system prompt pronto para copiar e organizados pela sua indústria. E se você preferir desenhar o seu em vez de adaptar um genérico, são 15 minutos de conversa — sem deck, sem proposta, só o desenho.