Conecte o Codex a modelos de terceiros com Responses
O Codex atual só oferece suporte ao protocolo Responses. Configure o provedor e a chave, teste a rota da API e veja o que fazer quando o gateway só oferece Chat Completions.
Resposta curta
O Codex atual aceita apenas "responses" em wire_api. "chat" foi removido e causa um erro de configuração ao iniciar. O KimiSeek oferece /v1/responses, permitindo a conexão direta com a configuração abaixo.
Tabela de decisão em 30 segundos
| Capacidade do gateway | O que fazer |
|---|---|
Oferece /v1/responses | Usar "responses" |
Só oferece /v1/chat/completions | Usar um gateway compatível ou uma camada de conversão que exponha Responses |
| Desconhecida | Testar o caminho e inspecionar o corpo da resposta abaixo |
Por que o Codex usa responses por padrão
O Codex envia solicitações a /responses e processa seus eventos de streaming e chamadas de ferramentas. Chat Completions usa estruturas diferentes; mudar wire_api não faz o Codex atual utilizá-lo. As capacidades também dependem do modelo e da implementação do gateway. Uma resposta válida não comprova o funcionamento de todas as ferramentas.
Pré-requisitos
- Node.js 20 ou superior
- Codex CLI:
npm install -g @openai/codex - Uma API key do KimiSeek (começa com
ks-), criada no painel
Step 1 · Escreva o arquivo de configuração
Edite ~/.codex/config.toml (crie se ainda não existir):
model = "deepseek-v4-pro-0813"
model_provider = "kimiseek"
[model_providers.kimiseek]
name = "KimiSeek"
base_url = "https://api.kimiseek.app/v1"
env_key = "KIMISEEK_API_KEY"
wire_api = "responses"Três pontos que costumam derrubar:
base_urlprecisa incluir/v1. O Codex acrescenta/responsesdireto nobase_url. Sem o/v1, a requisição vai parahttps://api.kimiseek.app/responsese volta 404.env_keyé um nome de variável, não a key em si. Aqui você escreveKIMISEEK_API_KEY; o valor real fica no ambiente.modelprecisa ser um id que existe de verdade no catálogo. Um typo devolvemodel not found, e um id descontinuado também.
Step 2 · Defina a variável de ambiente e inicie
export KIMISEEK_API_KEY="ks-your-key"
codexPara trocar de modelo temporariamente, edite model em config.toml ou passe codex --model <id>.
Step 3 · Confirme que a key funciona
curl https://api.kimiseek.app/v1/models \
-H "Authorization: Bearer ${KIMISEEK_API_KEY:?Set KIMISEEK_API_KEY before running this command}"Se vier uma lista de modelos, tanto a key quanto a rede estão ok. A utilidade deste passo é separar falha de autenticação de falha de protocolo — sem isso, um 404 te deixa adivinhando qual dos dois foi.
Step 4 · Sondando responses em 30 segundos
curl https://api.kimiseek.app/v1/responses \
-H "Authorization: Bearer ${KIMISEEK_API_KEY:?Set KIMISEEK_API_KEY before running this command}" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro-0813",
"input": "Explain what a base URL is in one sentence.",
"max_output_tokens": 256,
"stream": false
}'- HTTP 200 com um array JSON
output→ a rota Responses funciona; teste depois uma tarefa e chamadas de ferramentas. - HTTP 404 → confira
/v1embase_urle se o corpo informa uma rota ausente ou um modelo não encontrado. O status sozinho não basta. - HTTP 401 → volte ao Step 3 e verifique as credenciais.
Se o gateway só oferece Chat Completions
Mantenha wire_api = "responses". Escolha um gateway com /v1/responses ou adicione uma camada de conversão compatível. Não mude para o valor removido "chat".
Erros comuns
| Erro | Causa | Correção |
|---|---|---|
unexpected status 401 Unauthorized: Missing bearer | A variável apontada por env_key não está definida ou está com o nome errado | Confirme que KIMISEEK_API_KEY está visível no shell atual |
unexpected status 404 Not Found | Falta /v1 no base_url, ou o gateway não tem /v1/responses | Adicionar /v1 e ler o corpo do erro; sem Responses, usar um gateway ou camada de conversão compatível |
stream disconnected before completion | O stream foi cortado: proxy local, gateway corporativo ou timeout | Verifique as configurações de proxy HTTP e repita em outra rede |
model not found | Id de modelo errado, ou um id descontinuado | Use o id completo do catálogo, por exemplo deepseek-v4-pro-0813 |
Mais erros de camada de protocolo estão na referência de erros.
Custo
O uso do Codex é pesado em entrada: cada turno reenvia o context window. O DeepSeek V4 Pro é cobrado em CNY por milhão de tokens, em duas faixas:
| Faixa | Entrada | Entrada em cache | Saída |
|---|---|---|---|
| Off-peak | ¥4.5 | ¥0.45 | ¥13.5 |
| Peak | ¥9 | ¥0.9 | ¥27 |
Peak custa exatamente o dobro. Agrupar refatorações grandes no horário off-peak corta a conta pela metade. Os números atualizados de cada modelo vêm da página de preços, que lê o catálogo de modelos direto.
Versões e verificação
Configuração verificada com Codex CLI 0.154.0 em 2026-10-26. Consulte a referência oficial de configuração para os protocolos aceitos.
Perguntas frequentes
Com um gateway assim, ainda preciso de um bridge tipo Codex-Bridge?
Não. Um bridge existe para traduzir requisições Responses em Chat Completions localmente, para gateways que só falam chat completions. O KimiSeek implementa /v1/responses por conta própria, então um bridge só adiciona um salto e mais um lugar para dar errado.
Por que o base_url precisa incluir /v1?
O Codex concatena: base_url + "/responses". Se você escrever https://api.kimiseek.app, a requisição vai para https://api.kimiseek.app/responses, que é uma página web, não uma API.
O Codex atual ainda aceita wire_api = "chat"?
Não. As versões atuais rejeitam esse valor ao iniciar. Use responses; um upstream que só oferece Chat Completions exige um gateway compatível ou uma camada de conversão.
Uma única key serve para Claude Code e Codex ao mesmo tempo?
Sim. As keys são por conta; os clientes apenas chamam a mesma key por rotas de protocolo diferentes. Veja o guia do Claude Code.