Da API às Routines: automatizando análises de economia e finanças
Guia completo, com todos os 15 passos
Nota
Para um economista: em vez de colar um boletim no chat toda semana, seu programa chama o Claude automaticamente para cada novo Focus.
Aviso
A API key é como uma senha: nunca vai para o GitHub. Use variáveis de ambiente (local) e Secrets (na nuvem) — exatamente o que faremos na Routine.
resumir_focus.pyO mesmo resumo da Routine, mas feito por código que você roda:
import anthropic, pathlib
texto = pathlib.Path("data/focus_2026-06-15.txt").read_text(encoding="utf-8")
client = anthropic.Anthropic() # lê ANTHROPIC_API_KEY do ambiente
msg = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=600,
system="Você resume o Boletim Focus. NUNCA invente número: "
"toda mediana citada deve estar no texto.",
messages=[{"role": "user",
"content": f"Resuma em até 200 palavras, com IPCA, Selic, "
f"PIB e câmbio e as 3 maiores revisões:\n\n{texto}"}],
)
print(msg.content[0].text)system carrega a regra do projeto; model escolhe o modelo; messages é a conversaNota
Script completo e rodável (com a variante de tool use): cursos/claude-platform-101/exemplos/resumir_focus.py
| Modelo | Perfil | Bom para |
|---|---|---|
Opus 4.8 (claude-opus-4-8) |
mais capaz | análises complexas, raciocínio longo |
Sonnet 4.6 (claude-sonnet-4-6) |
equilíbrio | a maioria das tarefas — incl. a Routine |
Haiku 4.5 (claude-haiku-4-5...) |
rápido e barato | classificações, tarefas simples em volume |
Dica
Regra prática: comece no Sonnet. Suba para Opus se a tarefa exige raciocínio pesado; desça para Haiku quando é simples e em grande quantidade.
Um agente não responde uma vez só — ele age em ciclo:
Nota
A Routine do Focus é esse loop: ler o .txt → conferir os números → redigir → montar o HTML → publicar.
No resumir_focus.py, em vez de o modelo “lembrar” a mediana, ele chama uma ferramenta que lê o número exato dos dados:
mediana_focus("IPCA"); seu código devolve o valor realDica
Mais “pensamento” = respostas melhores em problemas difíceis, ao custo de mais tempo e tokens. Ligue quando a análise é não-trivial.
Exemplo: pedir ao Claude que calcule a variação % entre duas projeções do Focus usando code execution — conta feita por código, não “no chute”.
Nota
No Focus, o routine-prompt.md funciona como a “skill” da Routine: o roteiro fixo de como montar o resumo (frescor → sanity check → redação → HTML).
Dica
A Routine do Focus usa o conector MCP do GitHub para ler o repositório e commitar o HTML do resumo.
.txt mais recente, não todos)Nota
A Routine lê apenas o boletim da semana — contexto enxuto, resposta focada e barata.
| Aspecto | Via API — resumir_focus.py | Via Routine |
|---|---|---|
| Quem hospeda | você (sua máquina / um Action) | a Anthropic (na nuvem) |
| Como | código com o SDK | /schedule, sem código |
| Modelo | escolhido no código | escolhido na configuração |
| Ferramentas | tool use no código | MCP (GitHub, etc.) |
| Quando usar | controle total, integrar num pipeline | agendar sem manter servidor |
➡️ A Routine é o caminho de managed agent — é exatamente aqui que ela entra.
Sim — se cada um tiver um papel. Os dois agendados entregando = duplicação:
⚠️ O problema (os dois em produção)
✅ O bom uso (papéis distintos)
Dica
Pergunta-chave: quem hospeda o agente? Para produção, escolha um entregador.
Dica
O pulo do gato: do “rodo na minha máquina” (a chamada de API que você dispara) para “roda na nuvem, no horário, sem mim” — o managed agent.
Depois, dispare o Action de coleta à mão (aba Actions → Run workflow) e confira os data/focus_*.{pdf,txt} na main.
myaccount.google.com/apppasswordsgh):A Routine roda remota: precisa de dois acessos ao GitHub.
github.com/apps/claude, instale marcando só o repo resumo-focus — com permissão de pushclaude.ai → Connectors → GitHub → Connect (se não aparecer, use https://api.githubcopilot.com/mcp)Aviso
App e MCP andam juntos: o App dá a entrada no repo; o MCP dá as ferramentas para agir. Um sem o outro não funciona.
Crie uma Routine agendada com o /schedule:
- Nome: resumo-focus
- Repositório: seu-usuario/resumo-focus (com push habilitado)
- Agenda (cron): 0 13 * * 1 — toda segunda às 13h UTC (10h BRT)
- Modelo: claude-sonnet-4-6
- Conector MCP: o github (ler o repo e dar push no HTML)
- Prompt da Routine: use exatamente o conteúdo do routine-prompt.md
Antes de criar, me mostre o resumo da configuração para eu confirmar./schedule run resumo-focus).txt → sanity check → monta o HTML → commitaDica
Cadastre seu e-mail no FOCUS_EMAIL_BCC para receber uma cópia de cada disparo e acompanhar a qualidade.
Dica
Mesma base, três formas: chat (Claude 101), agente no terminal (Code 101), agente programável/agendado (Platform 101).
resumir_focus.py) ou Routine (managed agent, na nuvem)De uma pasta vazia a um sistema que trabalha sozinho — em 15 passos:
O resumo do Focus chega ao time sem ninguém apertar nada.
Obrigado! — Análise Macro