Agentes e harnesses de código com IA

Aponte Claude Code, Codex CLI, OpenClaw, Cline, Cursor e mais de 25 outros agentes de código para o gateway com os mesmos três passos — cada um com seu destino exato de configuração e nomes de chave.

Todo agente de código de IA lê uma base URL e uma chave de API de algum lugar — uma variável de ambiente, um arquivo de configuração ou um painel de configurações. Esta página lista de onde cada harness as lê, qual protocolo ele fala e a armadilha que realmente pega as pessoas. As configurações completas para copiar e colar estão na documentação.

1

Aponte o base_url para o gateway

Padrão https://your-gateway.gatellm.io — incluir ou não /v1 depende do SDK (cada exemplo traz o valor exato).

2

Troque por uma chave de acesso do gateway

Não é uma chave upstream sk-… — a mesma chave de acesso é montada no cabeçalho que o seu SDK espera.

3

Use o nome de modelo do gateway

Aquele que você configurou no console — não o nome oficial do fornecedor.

Authorization: Bearer <key>
OpenAI · DashScope · genérico
Prefixo Bearer não diferencia maiúsculas de minúsculas
x-api-key: <key>
SDK Anthropic
Authorization também é aceito
x-goog-api-key: <key>
SDK Gemini
Authorization também é aceito

Matriz de compatibilidade de harnesses

HarnessProtocoloSuporteDestino da configuraçãoNomes de chave / configuraçõesDocumentação
Agentes de terminal
Claude CodeAnthropicNativoenv varsANTHROPIC_BASE_URL, ANTHROPIC_API_KEY, ANTHROPIC_MODELConfiguração no GitHub ↗ · Documentação
Codex CLIOpenAI ResponsesNativo~/.codex/config.tomlbase_url, env_key, wire_apiConfiguração no GitHub ↗ · Documentação
Gemini CLIGeminiNativoenv varsGOOGLE_GEMINI_BASE_URL, GEMINI_API_KEYConfiguração no GitHub ↗ · Documentação
OpenClawOpenAI / Anthropic-compatibleCompatível com OpenAIopenclaw.jsonmodels.providers.<id>.baseUrl, models.providers.<id>.apiKeyDocumentação
opencodeOpenAI-compatibleCompatível com OpenAIopencode.jsonprovider.<id>.options.baseURLDocumentação
CrushOpenAI / Anthropic-compatibleCompatível com OpenAIcrush.jsonproviders.<id>.base_url, providers.<id>.typeDocumentação
Factory DroidOpenAI / Anthropic-compatibleCompatível com OpenAI~/.factory/settings.jsoncustomModels[].baseUrl, customModels[].providerDocumentação
GooseOpenAI-compatibleCompatível com OpenAIenv varsOPENAI_HOST, OPENAI_BASE_PATH, OPENAI_API_KEYDocumentação
AiderOpenAI-compatible (LiteLLM)Compatível com OpenAIenv varsOPENAI_API_BASEDocumentação
Qwen CodeOpenAI-compatibleCompatível com OpenAIenv varsOPENAI_BASE_URL, OPENAI_API_KEY, OPENAI_MODELDocumentação
OpenHandsOpenAI-compatible (LiteLLM)Compatível com OpenAI~/.openhands/settings.jsonbase_url, model openai/ prefixDocumentação
Kimi Code CLIOpenAI / AnthropicCompatível com OpenAIconfig.tomlprovidersDocumentação
PlandexOpenAI-compatibleCompatível com OpenAIcustom models JSONbaseUrlDocumentação
SWE-agentOpenAI-compatible (LiteLLM)Compatível com OpenAIenv varsOPENAI_BASE_URLDocumentação
Grok BuildOpenAI-compatibleCompatível com OpenAIconfig.tomlcustom modelsDocumentação
Mistral VibeOpenAI-compatibleCompatível com OpenAI~/.vibe/config.tomlprovidersDocumentação
MiMo CodeOpenAI-compatibleCompatível com OpenAI/connect custom providerbase URL, API keyDocumentação
ForgeCodeOpenAI / AnthropicCompatível com OpenAIsetup wizardbase URLDocumentação
CodebuffOpenAI-compatibleCompatível com OpenAIsettingsbase URL, API keyDocumentação
IDEs e extensões
ClineOpenAI-compatibleCompatível com OpenAISettings → OpenAI CompatibleBase URL, API Key, Model IDDocumentação
Roo CodeOpenAI-compatibleCompatível com OpenAISettings → OpenAI CompatibleBase URL, API Key, Model IDDocumentação
Kilo CodeOpenAI-compatibleCompatível com OpenAISettings → OpenAI CompatibleBase URL, API Key, Model IDDocumentação
ContinueOpenAI-compatibleCompatível com OpenAIconfig.yamlmodels[].apiBaseDocumentação
ZedOpenAI-compatibleCompatível com OpenAIsettings.jsonlanguage_models.openai_compatible.<id>.api_urlDocumentação
CursorOpenAIParcialSettings → Models → Override OpenAI Base URLOverride OpenAI Base URLDocumentação
WindsurfOpenAI-compatibleCompatível com OpenAISettings → Models → BYOK / customBase URL, API KeyDocumentação
GitHub Copilot (BYOK)OpenAI-compatibleCompatível com OpenAIManage Models → OpenAI-compatibleBase URL, API KeyDocumentação
Plataformas gerenciadas
WarpOpenAI / Anthropic / Gemini (BYOK)ParcialSettings → BYOKBYOK API keysDocumentação
Amazon Q Developer CLIMCPSem endpoint personalizadoMCP server—Documentação
Devin—Sem endpoint personalizado——Documentação

Como nomear o modelo no gateway

Alguns harnesses fixam o próprio ID de modelo e o enviam literalmente. Se o modelo do seu gateway tiver outro nome, a primeira chamada retorna 404. Duas formas de alinhar:

Claude Code
①

Dê ao modelo do gateway exatamente o nome que o harness solicita — zero configuração extra.

②

Ou sobrescreva o harness para usar o nome do seu gateway pela variável de ambiente de modelo dele (por exemplo, ANTHROPIC_MODEL).

Armadilhas

O harness fixa o próprio ID de modelo

O Claude Code envia o padrão configurado nele (por exemplo, claude-opus-5 ou claude-sonnet-5) — não o nome do seu gateway. Ou dê ao modelo do gateway exatamente o nome que o harness pede, ou defina a variável de ambiente de modelo dele (por exemplo, ANTHROPIC_MODEL) com o nome do seu gateway. Incompatibilidade → 404 model_not_found na primeira mensagem.

Harnesses de protocolo Anthropic usam a raiz, não /v1

A base URL de clientes no estilo Anthropic aponta para a raiz do gateway (sem /v1) — o próprio cliente acrescenta /v1/messages. Adicionar /v1 aqui duplica o segmento de caminho.

Provedores personalizados do Codex exigem wire_api="responses"

O Codex CLI requer wire_api = "responses" para um bloco personalizado [model_providers.*]. O gateway implementa /v1/responses nativamente — aponte o base_url para ele e defina env_key com uma chave de acesso do gateway.

Harnesses baseados em LiteLLM querem o prefixo openai/ no modelo

Aider, OpenHands e SWE-agent rodam sobre o LiteLLM: defina OPENAI_API_BASE com o gateway e dê ao modelo um prefixo openai/ (por exemplo, openai/gateway-model-name) para que o LiteLLM o roteie como endpoint compatível com OpenAI.

O padrão é OAuth de assinatura, não a sua chave

Codex, Gemini CLI e Qwen Code usam por padrão o login OAuth / assinatura do fornecedor. Para rotear pelo gateway você precisa mudar para autenticação por chave de API (definir a chave + a base URL explicitamente) — caso contrário o agente contorna o gateway por completo.

IDEs inferem suporte a ferramentas/visão pelo ID do modelo

Cline / Roo / Kilo e outros decidem a capacidade de chamada de ferramentas e de visão pelo nome do modelo. Um nome personalizado do gateway pode desativar a chamada de funções — se as chamadas de ferramenta falharem, verifique as regras de detecção de capacidade do cliente ou dê ao modelo um nome que corresponda a uma família conhecida.

Inferência longa adiciona :keep-alive e _gateway_warning

Durante inferências upstream longas, o gateway emite linhas de comentário SSE :keep-alive (inofensivas — ignore linhas que começam com :), e em uma quebra no meio do stream insere um campo _gateway_warning em vez de gerar erro, para que harnesses como o Claude Code não abortem toda a conversa.

Modo automático do Claude Code: decida quem responde ao veredito de segurança

No modo automático, o Claude Code aguarda um veredito do servidor (um campo safeguards na requisição) antes de uma ação potencialmente perigosa. Quando o upstream é o Anthropic oficial, o veredito é produzido dentro da mesma requisição e o gateway o repassa intacto. Quando o upstream é um terceiro que ignora o campo, o gateway responde em seu lugar — e o padrão de fábrica (allow_all) libera toda ação, o que é mais permissivo do que deixar a chamada seguir. Devolva uma rota ao próprio upstream escrevendo "anthropic_server_safeguards": "upstream" no extra_config desse upstream; a configuração no console é exclusiva de admin.

# Every agent is one base_url + one access key away
export ANTHROPIC_BASE_URL="https://your-gateway.gatellm.io"   # Anthropic agents: root (no /v1)
export ANTHROPIC_API_KEY="<gateway access key>"

export OPENAI_API_BASE="https://your-gateway.gatellm.io/v1"   # OpenAI-compatible agents: /v1
export OPENAI_API_KEY="<gateway access key>"

# Codex CLI (~/.codex/config.toml) speaks the Responses protocol
# [model_providers.gatellm]
# base_url = "https://your-gateway.gatellm.io/v1"
# wire_api = "responses"

FAQ