Claude Code com DeepSeek V4 Pro via LiteLLM: o setup claude-ds
Adaptei a configuração do LiteLLM pra apontar o Claude Code pro DeepSeek. A diferença pra Zhipu? O Thinking Mode funciona de verdade.
O problema
Depois de passar meses usando o Claude Code apontado pra Zhipu, encontrei um problema em que a Inteligência Artificial da Zhipu (o modelo GLM) não deu conta: encontrar um leak (vazamento) de memória em um código concorrente.
Para entender o cenário: um leak de memória acontece quando um programa vai acumulando dados no computador e esquece de limpá-los, até travar tudo. Já um código concorrente é aquele que faz várias tarefas ao mesmo tempo, o que costuma gerar bugs bem difíceis de encontrar.
O modelo GLM-5.0 é ótimo para programar no dia a dia, mas para um raciocínio mais profundo e para achar esses erros sutis e complexos, faltava algo. Foi aí que pensei no DeepSeek V4-Pro — um modelo conhecido pelo seu Thinking Mode (Modo de Pensamento) nativo, capacidade de fazer longas cadeias de raciocínio e por ter uma estrutura gigante de “Mixture of Experts” (uma técnica que junta várias redes especialistas) com 1,6 trilhão de parâmetros (que representam o “tamanho do cérebro” da IA).
A grande dúvida era: dá para usar a mesma estrutura do nosso atalho claude-glm, apenas trocando o destino dentro do arquivo de configuração (config.yaml)? A resposta é sim! E a diferença principal — que mudou minha decisão sobre quando usar cada um — está em um detalhe que já abordamos no artigo sobre Effort: o DeepSeek aceita o parâmetro budget_tokens (o “orçamento” de tempo/tokens que damos para a IA pensar) de forma nativa, enquanto a Zhipu não aceita.
Este artigo é o passo a passo de configuração do claude-ds, que é o equivalente do nosso claude-glm, só que apontado para o DeepSeek.
O config.yaml do DeepSeek
Diferente do que fizemos na configuração da Zhipu, onde precisávamos mapear com cuidado cada alias (apelidos que o sistema usa, como Opus ou Haiku) para um modelo GLM diferente (Opus→GLM-4-Plus, Haiku→GLM-Turbo), com o DeepSeek o processo é mais direto. O modelo DeepSeek-V4-Pro é rápido e barato o suficiente para rodar tudo nele, inclusive as tarefas de subagentes (aquelas tarefas secundárias que a IA faz nos bastidores).
Arquivo ~/claude-deepseek/config.yaml:
model_list:
- model_name: claude-sonnet-4-5
litellm_params:
model: deepseek/deepseek-v4-pro
api_key: os.environ/DEEPSEEK_API_KEY
- model_name: claude-opus-4-5
litellm_params:
model: deepseek/deepseek-v4-pro
api_key: os.environ/DEEPSEEK_API_KEY
- model_name: claude-haiku-4-5
litellm_params:
model: deepseek/deepseek-v4-pro
api_key: os.environ/DEEPSEEK_API_KEY
litellm_settings:
# Note que NÃO estou dropando parâmetros aqui!
# drop_params: true (removido — DeepSeek suporta thinking nativo)
A ausência da linha drop_params: true (que significaria “descarte os parâmetros”) é o detalhe crucial. No claude-glm, essa linha jogava fora o parâmetro budget_tokens porque a Zhipu não consegue entendê-lo. Já no claude-ds, nós deixamos essa linha de fora de propósito — porque o DeepSeek entende o comando e vai usá-lo na prática.
O Thinking Mode que de fato funciona
Lembra do paradoxo do Effort na Zhipu? Quando usávamos a Zhipu através do LiteLLM (nosso tradutor/intermediário) com o comando drop_params: true, escolher a opção “Max Effort” (Esforço Máximo) não mudava nada — o parâmetro era simplesmente ignorado.
Com o DeepSeek a história é outra. A API (o sistema de conexão) do DeepSeek V4-Pro tem suporte nativo para controle de raciocínio. O LiteLLM consegue interceptar o bloco thinking (de pensamento) gerado pelo Claude Code e traduzi-lo exatamente para o comando equivalente que a API do DeepSeek entende.
Resultado prático: se você escolher “High Effort” (Esforço Alto) no terminal do Claude CLI, o DeepSeek vai genuinamente parar e gastar dezenas de milhares de tokens (os pedacinhos de texto/código que a IA processa) analisando cada detalhe e possibilidade lógica do seu código antes de responder. E você paga apenas os centavos que o DeepSeek cobra por milhão de tokens — um valor bem mais barato do que a Anthropic cobraria pelo mesmo esforço mental.
Isso é a grande diferença que justifica ter as duas configurações prontas. O claude-glm é mais barato no dia a dia (por ter um plano fixo), mas a função Effort nele é pura ilusão (placebo). Já o claude-ds cobra por quantidade de tokens consumidos, mas o Effort funciona de verdade.
O alias no .bashrc
Este passo é idêntico à configuração do claude-glm. Trata-se de criar um alias (um atalho de comando no arquivo de configurações .bashrc do seu terminal), mudando apenas a pasta onde fica o arquivo de configuração e a variável com a sua chave de acesso (API key):
export DEEPSEEK_API_KEY="sua_chave_deepseek_aqui"
claude-ds() {
local LITELLM_PID
# Aponta pra pasta correta do config do deepseek
litellm --config ~/claude-deepseek/config.yaml --port 4001 &>/dev/null &
LITELLM_PID=$!
sleep 2
ANTHROPIC_BASE_URL=http://localhost:4001 \
ANTHROPIC_API_KEY=fake-key \
claude "$@"
kill $LITELLM_PID 2>/dev/null
}
Depois de executar o comando source ~/.bashrc (que atualiza o terminal), digitar claude-ds vai iniciar o nosso proxy (o servidor intermediário) apontado para o DeepSeek e abrir a interface do Claude Code.
Quando usar qual
A decisão de qual das duas ferramentas usar no seu dia a dia se resume a três critérios simples:
- Plano financeiro. Se você prefere um gasto fixo mensal bem previsível (sem surpresas na fatura do cartão), o Developer Plan da Zhipu é imbatível. O DeepSeek trabalha no formato pay-as-you-go (você paga apenas pelo que usar) — é muito barato, mas o custo varia conforme a quantidade de uso.
- Escrita em Português (PT-BR). A Zhipu escreve de forma mais natural, fluida e “humana” em português do que o DeepSeek, que é um modelo focado principalmente em raciocínio matemático e código.
- Lógica pura, debugging (busca por erros) e refatoração pesada. É aqui que o DeepSeek V4-Pro brilha. Com o Thinking Mode no nível máximo, ele descobre vazamentos de memória e falhas de concorrência que a maioria dos modelos deixa passar — inclusive a Zhipu.
O que eu faço na prática: mantenho as duas opções configuradas. Uso o claude-glm para o fluxo de trabalho comum (programação do dia a dia, ajustes simples de código e escrita de textos). E chamo o claude-ds quando preciso de “cavalaria pesada” para debugar algum erro bizarro ou planejar a estrutura (arquitetura) de um sistema complexo.
O que aprendi
A grande lição que serve para qualquer situação em TI: a melhor ferramenta sempre depende do problema a ser resolvido, e ter duas ferramentas prontas custa menos do que escolher a errada. Eu poderia ter me forçado a usar apenas a Zhipu por teimosia ou por gostar do plano fixo. Mas, quando o modelo GLM não deu conta do erro de concorrência, acabei perdendo mais tempo tentando do que gastaria configurando o DeepSeek desde o início. Manter os dois prontos tem custo zero além da configuração inicial; usar o modelo errado custa horas de retrabalho.
E o segundo aprendizado, mais técnico: um parâmetro realmente suportado pelo sistema muda tudo. O comando budget_tokens na Zhipu é só um placebo (é descartado pelo sistema); no DeepSeek ele é real (executado de fato). Estamos usando a mesmíssima interface (o Claude Code) e o mesmo intermediário (o LiteLLM), mas o comportamento é definido pelo que o provedor final consegue entender. Sempre que configuro um provedor novo, faço um teste com o log (o relatório visual de funcionamento) aberto para confirmar se o parâmetro que preciso está realmente funcionando.
Comentários
Carregando comentários…