🪦 Extended thinking deprecated
O mecanismo com budget fixo foi aposentado. Não é mais suportado no 4.7 — código antigo falha ou ignora silenciosamente.
⚠️ Importante
Passar {type: "enabled", budget_tokens: N} pode dar erro em alguns SDKs ou simplesmente ser ignorado. Grep seu codebase por budget_tokens antes de fazer upgrade de modelo.
🔁 budget_tokens → adaptive
Substituição direta — uma linha.
✗ Antes (4.6)
thinking={
"type": "enabled",
"budget_tokens": 8000
}✓ Depois (4.7)
thinking={
"type": "adaptive"
}🎯 Effort + adaptive
A combinação substitui budget integralmente. Effort controla intensidade. Adaptive controla alocação passo a passo.
response = client.messages.create(
model="claude-opus-4-7",
thinking={"type": "adaptive"},
output_config={"effort": "xhigh"},
max_tokens=64000,
messages=[...],
)💡 Não tente isso
Usar max_tokens ou stop_sequences para "simular budget" é anti-pattern — corta raciocínio no meio e piora qualidade.
📊 Como o modelo decide passo a passo
Adaptive aloca thinking por tool-call, por passo, por complexidade detectada.
| Situação | Thinking alocado |
|---|---|
| Tool call com parâmetros claros | Mínimo |
| Escolher entre 3 abordagens | Médio |
| Debug de erro ambíguo | Alto |
| Decisão de arquitetura | Máximo local |
🔍 Output config e effort
O campo effort vai dentro de output_config. Valores: low | medium | high | xhigh | max.
# Explícito:
output_config={"effort": "high"}
# Default do modelo (xhigh):
output_config={} # ou omitir
# Forçar null reverte para o default da conta:
output_config={"effort": None}🧪 Experimento controlado — 3 execuções
Mesmo prompt, 3 configurações. Observe variações de thinking tokens.
| Configuração | Resultado esperado |
|---|---|
| budget_tokens=8000 | Erro ou ignore silencioso |
| adaptive sem effort | Default xhigh, thinking varia |
| adaptive + effort=medium | Thinking reduzido mas ainda adaptativo |
💡 Insight
Thinking tokens variam entre execuções idênticas — é esperado. A consistência vem do effort, não do budget.
📋 Checklist de migração
- 1.
grep -rn "budget_tokens"no repo inteiro - 2.Trocar por
{"type": "adaptive"}em todos call-sites - 3.Adicionar
output_config.effortonde fazia sentido (xhigh default) - 4.Subir
max_tokenspara 64000 - 5.Rodar suite de testes com modelo 4.7 — comparar métricas
- 6.PR único de "migração thinking" antes de outras mudanças
📋 Resumo
Próximo Módulo:
2.6 — Biblioteca de Frases-Gatilho