O limite de taxa não documentado do pool OAuth da Anthropic requer o prompt do sistema Claude Code

Um desenvolvedor que construía um proxy de LLM descobriu que o tratamento de limite de taxa da Anthropic para tokens OAuth depende do conteúdo do prompt do sistema, não dos cabeçalhos ou do tipo de token.
O problema
O desenvolvedor tinha uma configuração funcional com:
- SDK da Anthropic com authToken
- Cabeçalhos beta (claude-code-20250219, oauth-2025-04-20)
- user-agent: claude-cli/2.1.75
- x-app: cli
Haiku funcionou bem, mas Sonnet retornou persistentes erros de limite de taxa 429 sem cabeçalho retry-after, sem cabeçalhos de limite de taxa, apenas "message": "Error". Enquanto isso, um agente de IA (executando OpenClaw) no mesmo servidor com o mesmo token OAuth não teve problemas com o Sonnet 4.6.
A solução
Após examinar o código-fonte do provedor da Anthropic do OpenClaw (@mariozechner/pi-ai), o desenvolvedor encontrou este código:
// Para tokens OAuth, DEVEMOS incluir a identidade do Claude Code
if (isOAuthToken) {
params.system = [{
type: "text",
text: "You are Claude Code, Anthropic's official CLI for Claude.",
}];
}
Adicionar esta única linha ao proxy corrigiu imediatamente os erros de limite de taxa do Sonnet.
Como funciona
A API direciona as solicitações para o pool de limite de taxa do Claude Code (que é separado e maior que o pool regular da API) com base em se seu prompt do sistema se identifica como Claude Code. Este comportamento não está documentado na documentação do SDK ou da API.
Correção prática
Se você está usando tokens OAuth da Anthropic e recebendo erros 429 misteriosos, adicione "You are Claude Code, Anthropic's official CLI for Claude." ao seu prompt do sistema.
📖 Read the full source: r/ClaudeAI
👀 See Also

Como um não-programador criou um fluxo de trabalho reutilizável do Claude para marketing de conteúdo de fundador
Um ex-editor de revista com zero experiência em programação compartilha como acidentalmente criou um fluxo de trabalho repetível com Claude para marketing de conteúdo de founder solo: despeje pensamentos crus e depois reestruture com Claude em formatos específicos para cada plataforma.

Ocultar linhas de execução do OpenClaw no chat do Telegram: correção com um comando
Impeça o OpenClaw de enviar comandos executáveis brutos para o chat do Telegram, definindo streaming.preview.toolProgress e streaming.progress.toolProgress como false. Um único comando Python faz backup da configuração, adiciona as chaves e uma reinicialização rápida aplica a correção.

Executando um Agente de IA Totalmente Local em um Laptop com 6 GB de VRAM: Um Guia Passo a Passo para Estudantes
Descubra como os estudantes podem aproveitar laptops com 6GB de VRAM para executar agentes de IA localmente, sem depender de APIs caras. Nosso guia detalha etapas e ferramentas essenciais.
Um timeout do cron não prova que sua ação no OpenClaw falhou
Se um job cron expirar após enviar uma mensagem ou publicar conteúdo, o OpenClaw sabe que a execução falhou, mas não sabe se o provedor aceitou a ação. Trate timeouts ambíguos como desconhecidos, não como falhos.