Conecte o DeepSeek V4-Pro ao Cursor com suas configurações padrão compatíveis com OpenAI e a primeira chamada de ferramenta retornará um erro 400. O motivo é pequeno, mas persistente: o V4-Pro é um modelo de pensamento que retorna um bloco `reasoning_content`, o Cursor remove esse campo de suas solicitações subsequentes, e a API do DeepSeek rejeita mensagens de chamada de ferramenta que descartam a cadeia de raciocínio. Um proxy de código aberto em yxlao/deepseek-cursor-proxy armazena em cache o conteúdo de raciocínio e o reinjeta em solicitações de saída. Uma vez que o proxy esteja em execução, o V4-Pro se comporta como qualquer outro modelo no painel de modelo personalizado do Cursor, com os tokens de pensamento renderizados como markdown recolhível. Abaixo está a configuração completa, o cálculo de custos e a lista de solução de problemas.
Em resumo
- Cursor mais DeepSeek V4-Pro retornam erros 400 por padrão, porque o V4-Pro é um modelo de pensamento e o Cursor remove `reasoning_content` nas mensagens de chamada de ferramenta.
- `deepseek-cursor-proxy` (código aberto, Python) fica entre o Cursor e o DeepSeek, armazena em cache o `reasoning_content` de cada conversa e o reinjeta para que as chamadas de ferramenta não falhem.
- Configuração: instale via `uv` ou `pip`, execute `deepseek-cursor-proxy`, cole a URL do ngrok mais sua chave de API do DeepSeek nas configurações de modelo personalizado do Cursor.
- O V4-Pro dentro do Cursor agora custa aproximadamente US$ 0,87 por milhão de tokens de saída, cerca de 34 vezes mais barato que o GPT-5.5 na saída. Veja DeepSeek V4-Pro 75% Price Cut Is Now Permanent para o contexto completo de preços.
Por que você precisa de um proxy em primeiro lugar
O V4-Pro retorna duas coisas em cada resposta: um campo `content` regular e um campo `reasoning_content` que contém a cadeia de pensamento. Para um chat comum, você pode ignorar `reasoning_content`. O problema começa com as chamadas de ferramenta.
O contrato da API do DeepSeek para modelos de pensamento exige que, ao continuar uma conversa que continha um bloco `reasoning_content`, você inclua esse bloco na próxima solicitação, juntamente com o resultado de `tool_calls`. A cadeia de raciocínio faz parte do estado da conversa. O Cursor não conhece esse requisito. Ele envia um cliente de chat no estilo OpenAI, e `reasoning_content` não faz parte do esquema do OpenAI, então ele descarta o campo. A próxima chamada de ferramenta retorna com HTTP 400 e uma mensagem sobre um `reasoning_content` ausente.
Isso não é exatamente um bug do Cursor. É uma incompatibilidade de contrato entre dois provedores que compartilham a maior parte de sua superfície de API. Até que o Cursor adicione suporte de primeira classe ao V4-Pro ou o DeepSeek relaxe o contrato, a solução alternativa é um proxy que se lembra do que o Cursor esqueceu.
O que o proxy faz, em três linhas
- Escuta em uma porta local (padrão 9000) as solicitações de chat de saída do Cursor.
- Armazena em cache o `reasoning_content` de cada resposta do V4-Pro, indexado pelo SHA-256 do prefixo canônico da conversa.
- Em cada nova solicitação, procura o `reasoning_content` em cache para o prefixo correspondente e o adiciona à mensagem antes de encaminhar para o DeepSeek.
Ele também expõe a porta local através de um túnel ngrok, porque a configuração de modelo personalizado do Cursor exige HTTPS e não aceitará uma URL `localhost`.
O cache reside em `~/.deepseek-cursor-proxy/reasoning_content.sqlite3`. A indexação SHA-256 significa que duas conversas paralelas não colidem. O conteúdo de raciocínio é armazenado exatamente como o DeepSeek o retornou, então o próprio cache de prompt do DeepSeek ainda é acionado, o que é importante para os novos preços permanentes.
Pré-requisitos
Você precisa de quatro itens em vigor antes de começar:
- Cursor 2.0 ou mais recente. A UI de modelo personalizado é a mesma na versão 3.x; qualquer uma funciona.
- Uma chave de API DeepSeek. Registre-se em platform.deepseek.com se não tiver uma. Um pequeno saldo é suficiente; os detalhes de preços estão abaixo.
- Python 3.11 ou mais recente. O proxy é puro Python. `uv` é recomendado, mas pip funciona.
- Uma conta ngrok com um authtoken. A camada gratuita é suficiente para desenvolvedores solo. Domínios estáticos são opcionais, mas facilitam a vida se você reiniciar o proxy com frequência.
Se você nunca instalou `uv`, consulte a documentação oficial de instalação do uv. Para o ngrok, o guia de início rápido do ngrok o orienta na etapa do authtoken.
Passo 1: Instale o proxy
O caminho mais rápido é `uv`. De qualquer diretório:
uv tool install deepseek-cursor-proxy
Se você preferir pip, clone o repositório e instale-o como um pacote editável:
git clone https://github.com/yxlao/deepseek-cursor-proxy.git
cd deepseek-cursor-proxy
pip install -e .
Qualquer um dos caminhos coloca um comando `deepseek-cursor-proxy` em seu PATH. Verifique com `deepseek-cursor-proxy --help`.
Passo 2: Configure o ngrok
O proxy precisa de uma URL HTTPS pública porque o campo de modelo personalizado do Cursor não aceitará `http://localhost`. O ngrok fornece o túnel.
ngrok config add-authtoken SEU_AUTHTOKEN_NGROK
Obtenha seu authtoken no painel do ngrok após se registrar. A camada gratuita oferece um subdomínio aleatório a cada reinicialização. Se isso for um problema, reivindique um domínio reservado no painel e passe-o para o proxy com `--ngrok-url https://seu-reservado.ngrok-free.app`.
Passo 3: Inicie o proxy
As configurações padrão são boas para a maioria das configurações:
deepseek-cursor-proxy
Na primeira execução, o proxy cria `~/.deepseek-cursor-proxy/config.yaml`, abre um túnel e imprime a URL pública. A saída se parece com isto:
Starting deepseek-cursor-proxy
Tunnel: https://random-name.ngrok-free.app
Local: http://127.0.0.1:9000
Cache: /Users/you/.deepseek-cursor-proxy/reasoning_content.sqlite3
Sinalizadores úteis:
- `--port 9000`: altere a porta local se a 9000 estiver ocupada.
- `--verbose`: imprime corpos de solicitação e resposta. Use isso ao depurar a integração do Cursor.
- `--no-ngrok`: ignora o túnel. Útil ao testar a partir de uma ferramenta que aceita `http://localhost`.
- `--no-display-reasoning`: remove os blocos de pensamento recolhíveis da visualização do Cursor. O raciocínio ainda flui; apenas a renderização é suprimida.
Mantenha o proxy em execução em um terminal separado, ou envolva-o em um trabalho launchctl no macOS. O Cursor se comunica com ele em cada solicitação.
Passo 4: Configure o Cursor
Abra as configurações do Cursor, navegue até Modelos e adicione um modelo personalizado. Os campos que você precisa:
- Nome do modelo: `deepseek-v4-pro`. O proxy encaminha essa string diretamente para o DeepSeek, então ela deve corresponder a um identificador de modelo DeepSeek real. Use `deepseek-v4-flash` para a variante mais barata.
- URL Base: a URL do ngrok que o proxy imprimiu, mais `/v1`. Exemplo: `https://random-name.ngrok-free.app/v1`.
- Chave de API: sua chave de API do DeepSeek (começa com `sk-`). O proxy não tem uma camada de autenticação própria; ele encaminha a chave como está.
O Cursor executa uma verificação "Verificar modelo". A verificação envia uma única conclusão de chat. Um tick verde significa que você terminou. Um erro de conexão geralmente aponta para a URL do ngrok: copie-a novamente da saída do proxy e confirme se termina com `/v1`.
Passo 5: Escolha o modelo e experimente uma chamada de ferramenta
Abra o seletor de modelo no painel de chat e selecione seu novo modelo personalizado. O primeiro prompt a tentar é um que force o uso de ferramentas, porque as chamadas de ferramenta são onde os erros 400 originais residiam:
“Abra o README neste repositório, liste todos os blocos de código e diga-me quais deles estão faltando dicas de linguagem.”
O Cursor emitirá uma chamada de ferramenta `read_file`. Se o proxy estiver fazendo seu trabalho, a cadeia de resposta se parece com:
- O Cursor envia a mensagem do usuário para o proxy.
- O proxy encaminha para o DeepSeek sem `reasoning_content` (é a primeira vez).
- O DeepSeek retorna texto mais um bloco `reasoning_content` mais uma solicitação `tool_calls`.
- O proxy armazena em cache o `reasoning_content` indexado pelo hash do prefixo da conversa.
- O Cursor executa a ferramenta e, em seguida, envia um acompanhamento com o resultado da ferramenta. O acompanhamento não tem `reasoning_content` porque o Cursor o descartou.
- O proxy procura o `reasoning_content` em cache pelo hash do prefixo e o reinjeta antes de encaminhar.
- O DeepSeek aceita a solicitação, continua o raciocínio e retorna a resposta final.
Execute com `--verbose` e você verá a injeção acontecer nos logs.
Como o custo se parece na prática
O V4-Pro dentro do Cursor paga as taxas de API padrão do DeepSeek, não os preços de crédito agrupados do Cursor. Essas taxas são permanentes a partir de maio de 2026:
| Tipo de Token | Taxa por 1M de tokens |
|---|---|
| Entrada (cache miss) | $0.435 |
| Entrada (cache hit) | $0.003625 |
| Saída | $0.87 |
Um dia intenso de Cursor se parece aproximadamente com 50 turnos de chat mais 20 cadeias de chamadas de ferramenta. Cada turno tem em média talvez 8.000 tokens de prompt (contexto do arquivo mais prompt do sistema mais histórico) e 1.500 tokens de saída. Isso é:
- 50 turnos × 8.000 de entrada × $0.435 / 1.000.000 = $1.74 na pior das hipóteses
- Com hits de cache em um prefixo de sistema e contexto de 6.000 tokens a 60%: cerca de $0.85
- 50 × 1.500 × $0.87 / 1.000.000 = $0.065 de saída
Total: cerca de $1 por dia intenso. Comparado com a execução da mesma carga de trabalho através da cota GPT-5.5 incluída no Cursor Pro, isso é uma ordem de magnitude mais barato antes que o throttling da cota entre em ação. O cálculo completo do corte de preço está em DeepSeek V4-Pro 75% Price Cut Is Now Permanent.
Para contexto sobre o restante da linha DeepSeek, veja O que é DeepSeek V4 e Como usar a API DeepSeek V4.
Como o V4-Pro se sente dentro do Cursor
Três diferenças aparecem em comparação com o seu modelo Cursor padrão.
1. Tokens de pensamento são visíveis. Por padrão, o proxy renderiza o raciocínio do DeepSeek como um bloco markdown recolhível acima de cada resposta. O painel de chat do Cursor o exibe como um elemento `<details>`. Útil para depurar prompts; ruidoso para o trabalho rotineiro. Alterne com `--no-display-reasoning`.
2. A latência na primeira chamada de ferramenta é maior. O V4-Pro é um modelo de pensamento, e a cadeia é executada antes de qualquer chamada de ferramenta. Espere de 2 a 4 segundos antes que a primeira ferramenta seja acionada, depois o rendimento padrão nos acompanhamentos.
3. As sugestões de "Aplicar" do Cursor melhoram em refatorações complexas. Esta é a manchete. A cadeia de raciocínio do V4-Pro detecta dependências multi-arquivo que os modelos de conclusão "plana" perdem. Renomeações, alterações de assinatura e refatorações orientadas por configuração que antes precisavam de três rodadas com GPT-5.5 geralmente são realizadas em uma única passada com o V4-Pro.
Outros guias DeepSeek-com-Cursor existem para modelos predecessores. Veja Como usar o DeepSeek R1 localmente com o Cursor e DeepSeek V3 com Cursor: passo a passo para os padrões mais antigos. O proxy neste guia substitui os hacks manuais de injeção de raciocínio documentados nesses posts.
Testando sua configuração DeepSeek com Apidog
A integração do Cursor apenas prova o caminho de dentro do Cursor. Se você estiver enviando o V4-Pro para outras superfícies (um bot de CI, um agente de backend, um plugin de IDE personalizado), você vai querer um conjunto de testes determinístico contra o mesmo endpoint para o qual seu proxy está encaminhando.

É aí que o Apidog ganha seu lugar. Aponte um ambiente Apidog para `https://api.deepseek.com/v1`, insira sua chave de API e importe o esquema OpenAI Chat Completion. Você pode:
- Registrar respostas "golden" do V4-Pro e reproduzi-las a cada alteração de prompt para detectar desvios.
- Validar formatos de `tool_calls` com asserções de esquema JSON para que uma edição ruim do prompt do sistema não quebre seu agente de produção silenciosamente.
- Comparar V4-Pro e GPT-5.5 lado a lado no mesmo lote de entrada usando os cenários de teste do Apidog.
Baixe o Apidog, importe a especificação DeepSeek OpenAPI, e você terá um bancada de testes V4-Pro funcionando em cinco minutos. O mesmo fluxo de trabalho que descrevemos em Como usar a API DeepSeek V4.
Armadilhas comuns
Erros 400 após a primeira chamada de ferramenta. O modo de falha clássico que este proxy foi construído para corrigir. Se você ainda o vir após a configuração, o proxy não está em execução ou o Cursor está apontado para a URL base errada. Verifique novamente se a URL termina com `/v1` e se o log do proxy mostra as solicitações de entrada.
O túnel ngrok continua reconectando. Túneis de nível gratuito giram na reinicialização. Se a verificação do Cursor passar, mas falhar minutos depois, seu túnel ciclou. Mude para um domínio reservado (um clique no painel do ngrok) e passe-o com `--ngrok-url`.
O conteúdo de raciocínio aparece duplicado. Isso acontece quando duas instâncias de proxy são executadas com o mesmo caminho de cache SQLite. Pare as duas, exclua `~/.deepseek-cursor-proxy/reasoning_content.sqlite3` e inicie uma instância.
A taxa de acertos do cache parece baixa. O cache de prompt do DeepSeek requer prefixos idênticos byte a byte. O Cursor injeta carimbos de data/hora e IDs de sessão em alguns prompts do sistema, o que mata os acertos do cache. A correção não está dentro do proxy; ou aceite o custo ou use o modo "sem prompt do sistema" do Cursor para sessões V4-Pro.
O Cursor relata "modelo não encontrado". O nome do modelo nas configurações do Cursor deve corresponder a um modelo DeepSeek real. Os valores válidos hoje são `deepseek-v4-pro`, `deepseek-v4-flash`, `deepseek-v3-2-pro` e `deepseek-r1-1`. O proxy não traduz nomes; ele os encaminha.
Alternativas se o proxy não for adequado para você
O proxy é o caminho mais limpo hoje, mas existem duas alternativas:
- V4-Flash sem o proxy. O V4-Flash não é um modelo de pensamento e não retorna `reasoning_content`. O Cursor se comunica diretamente com ele sem solução alternativa. Você abre mão do aumento da cadeia de pensamento, mas mantém a integração simples. O preço é de US$ 0,14 / US$ 0,28 por milhão de tokens.
- Cline, Continue ou outros plugins de IDE de IA com suporte nativo a modelos de pensamento. Essas ferramentas lidam com `reasoning_content` em mensagens de chamada de ferramenta nativamente. Se você não está comprometido especificamente com o Cursor, mudar o editor às vezes é mais fácil do que executar o proxy. Veja Melhores assistentes de codificação de código aberto em 2026: alternativas gratuitas ao Cursor para o campo.
Outras integrações de modelo do Cursor cobertas em detalhes: Claude Opus 4.6 com Cursor, Kimi K2.5 com Cursor e Gemini 3.0 Pro com Cursor.
FAQ
Por que o Cursor não oferece suporte nativo ao DeepSeek V4-Pro? O cliente de chat do Cursor segue o esquema OpenAI Chat Completions. `reasoning_content` não faz parte desse esquema; é uma extensão específica do DeepSeek que surgiu com a família R1 e permaneceu no V4-Pro. O Cursor precisaria adicionar tratamento específico do provedor para passar o campo. Eles podem fazê-lo; até então, o proxy é a solução alternativa.
O proxy funciona com DeepSeek R1 ou V3.2? Sim. Qualquer modelo de pensamento DeepSeek que retorna `reasoning_content` e o exige em acompanhamentos de chamada de ferramenta é suportado. Defina o nome do modelo nas configurações do Cursor para o identificador de modelo DeepSeek real.
É seguro deixar o proxy em execução? Sim, com uma ressalva: o cache SQLite contém conteúdo de raciocínio bruto de suas sessões. Se você executar configurações multiusuário ou compartilhar máquinas, restrinja as permissões do diretório de cache ou execute com `--no-cache` (apenas em memória, o que significa que as chamadas de ferramenta falham após uma reinicialização do proxy).
Posso usar o proxy sem ngrok? Sim, com `--no-ngrok`. O proxy então expõe apenas `http://127.0.0.1:9000`. A interface de usuário de modelo personalizado do Cursor rejeita URLs `http://` em lançamentos padrão, mas algumas compilações carregadas lateralmente e configurações corrigidas aceitam localhost. A maioria dos usuários desejará ngrok ou um equivalente (Cloudflare Tunnel, Tailscale Funnel).
Isso funciona com o Cursor Composer 2.5? O Composer usa o mesmo pipeline de roteamento de modelo que o painel de chat, então sim. A primeira chamada de ferramenta dentro de um agente Composer acionará o mesmo requisito de `reasoning_content` e o proxy o corrige da mesma forma.
Qual é a sobrecarga de latência do proxy? Negligenciável. O proxy adiciona um salto de rede local, uma pesquisa SQLite e alguns KB de manipulação de JSON por solicitação. A sobrecarga medida é de 5 a 15 ms por chamada. O ngrok adiciona de 30 a 80 ms, dependendo do edge mais próximo. O proxy não é o gargalo.
Como o proxy decide o que armazenar em cache? Ele calcula o hash do prefixo da conversa (tudo antes da última mensagem do usuário ou da ferramenta), associa o SHA-256 desse hash ao `reasoning_content` da última resposta do DeepSeek e armazena ambos no SQLite. Na próxima solicitação, ele calcula o hash do novo prefixo e procura a entrada correspondente. Isso é conservador. Correspondências de prefixo parcial não acionam um acerto de cache, então duas conversas quase idênticas não se poluem mutuamente.
A Anthropic, OpenAI ou Cursor quebrarão isso? A Anthropic e a OpenAI não estão envolvidas. O Cursor poderia adicionar suporte nativo a modelos de pensamento (caso em que o proxy se tornaria desnecessário) ou mudar o formato da solicitação de forma que quebrasse o proxy. O repositório é mantido; observe seus problemas para atualizações de compatibilidade.
Onde isso te deixa
A capacidade de codificação do V4-Pro se situa a poucos pontos de referência do GPT-5.5 (comparação DataCamp) a aproximadamente 1/34 do preço de saída. O único obstáculo para os usuários do Cursor tem sido uma incompatibilidade de contrato de API em torno de `reasoning_content`. O repositório `deepseek-cursor-proxy` resolve isso em menos de cem linhas de código significativo e uma configuração de cinco minutos.
Três próximos passos concretos:
- Instale o proxy e execute um teste lado a lado contra o seu padrão atual do Cursor em cinco pull requests reais do seu repositório.
- Audite o prompt do sistema do seu Cursor em busca de conteúdo variável (carimbos de data/hora, IDs de sessão) que destrói os acertos do cache. Mova esse conteúdo para a mensagem do usuário.
- Configure uma suíte de regressão Apidog contra `api.deepseek.com` para que você possa detectar desvios de contrato sem retestar através do Cursor a cada vez.
O imposto de token de pensamento é pago. O preço não é.
