Conecte o DeepSeek V4-Pro ao Cursor usando as configurações compatíveis com OpenAI e a primeira chamada de ferramenta pode retornar HTTP 400. A causa: o V4-Pro retorna reasoning_content, o Cursor remove esse campo nas mensagens seguintes, e a API do DeepSeek rejeita chamadas de ferramenta sem a cadeia de raciocínio anterior. A solução prática é usar o proxy open source yxlao/deepseek-cursor-proxy, que armazena o reasoning_content em cache e o reinjeta nas próximas solicitações.
Em resumo
- Cursor + DeepSeek V4-Pro retornam erro 400 por padrão porque o Cursor descarta
reasoning_content. - O
deepseek-cursor-proxyfica entre Cursor e DeepSeek, salva o raciocínio da conversa e o reinjeta antes das próximas chamadas. - Fluxo de setup:
- Instale o proxy com
uvoupip. - Configure o ngrok.
- Rode
deepseek-cursor-proxy. - Adicione o endpoint HTTPS no modelo personalizado do Cursor.
- Instale o proxy com
- O V4-Pro no Cursor usa os preços da API DeepSeek. Veja o contexto de preço em DeepSeek V4-Pro 75% Price Cut Is Now Permanent.
Por que você precisa de um proxy
O V4-Pro retorna dois campos principais em cada resposta:
{
"content": "resposta final",
"reasoning_content": "cadeia de raciocínio"
}
Em um chat simples, você poderia ignorar reasoning_content. O problema aparece quando há tool_calls.
Para modelos de pensamento, a API do DeepSeek exige que a próxima mensagem da conversa inclua o reasoning_content anterior junto com o resultado da ferramenta. Esse campo faz parte do estado da conversa.
O Cursor, porém, usa um cliente no estilo OpenAI Chat Completions. Como reasoning_content não faz parte do esquema OpenAI, ele é descartado. Na próxima chamada, o DeepSeek responde com erro 400 indicando que o reasoning_content está ausente.
Isso é uma incompatibilidade de contrato entre APIs parecidas, não exatamente um bug do Cursor. Até o Cursor oferecer suporte nativo ao V4-Pro, o proxy resolve o problema lembrando o que o Cursor remove.
O que o proxy faz
O proxy executa três tarefas:
- Escuta solicitações locais do Cursor, por padrão na porta
9000. - Armazena o
reasoning_contentretornado pelo DeepSeek em SQLite. - Reinjeta esse conteúdo nas próximas solicitações antes de encaminhá-las ao DeepSeek.
O cache fica em:
~/.deepseek-cursor-proxy/reasoning_content.sqlite3
O proxy indexa cada entrada usando SHA-256 do prefixo canônico da conversa. Isso evita colisões entre conversas paralelas.
Ele também expõe a porta local via ngrok, porque o Cursor exige uma URL HTTPS no campo de modelo personalizado e não aceita localhost em configurações padrão.
Pré-requisitos
Antes de começar, tenha:
- Cursor 2.0 ou mais recente.
- Chave de API DeepSeek. Crie uma em platform.deepseek.com.
- Python 3.11 ou mais recente.
- Conta ngrok com authtoken.
Se ainda não usa uv, siga a documentação oficial de instalação do uv.
Para ngrok, use o guia de início rápido do ngrok para configurar o authtoken.
Passo 1: Instale o proxy
Com uv:
uv tool install deepseek-cursor-proxy
Ou com pip:
git clone https://github.com/yxlao/deepseek-cursor-proxy.git
cd deepseek-cursor-proxy
pip install -e .
Verifique a instalação:
deepseek-cursor-proxy --help
Passo 2: Configure o ngrok
Adicione seu authtoken:
ngrok config add-authtoken SEU_AUTHTOKEN_NGROK
A camada gratuita do ngrok gera um subdomínio aleatório a cada reinicialização. Se você quiser uma URL estável, reserve um domínio no painel do ngrok e use:
deepseek-cursor-proxy --ngrok-url https://seu-reservado.ngrok-free.app
Passo 3: Inicie o proxy
Execute:
deepseek-cursor-proxy
Na primeira execução, o proxy cria:
~/.deepseek-cursor-proxy/config.yaml
A saída será parecida com:
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
Flags úteis:
deepseek-cursor-proxy --port 9001
Altera a porta local.
deepseek-cursor-proxy --verbose
Mostra corpos de request/response nos logs.
deepseek-cursor-proxy --no-ngrok
Desativa o túnel. Útil apenas para ferramentas que aceitam localhost.
deepseek-cursor-proxy --no-display-reasoning
Oculta os blocos de raciocínio no Cursor, mas mantém o fluxo técnico necessário para as chamadas de ferramenta.
Mantenha o proxy rodando em um terminal separado enquanto usa o Cursor.
Passo 4: Configure o Cursor
No Cursor:
- Abra Settings.
- Vá para Models.
- Adicione um modelo personalizado.
Use estes campos:
| Campo | Valor |
|---|---|
| Nome do modelo | deepseek-v4-pro |
| URL Base | https://random-name.ngrok-free.app/v1 |
| Chave de API | sua chave DeepSeek, começando com sk-
|
A URL precisa terminar com /v1.
Se quiser usar a variante mais barata, configure o nome do modelo como:
deepseek-v4-flash
O proxy encaminha o nome do modelo diretamente ao DeepSeek. Ele não traduz aliases.
Depois clique em Verify model. Um tick verde indica que a conexão está correta.
Se houver erro de conexão:
- confirme se o proxy está rodando;
- copie novamente a URL do ngrok;
- verifique se a URL termina com
/v1; - confirme se a chave DeepSeek está correta.
Passo 5: Teste uma chamada de ferramenta
Escolha o modelo personalizado no chat do Cursor e rode um prompt que force uso de ferramenta, por exemplo:
Abra o README neste repositório, liste todos os blocos de código e diga quais estão sem indicação de linguagem.
O fluxo esperado é:
- Cursor envia a mensagem ao proxy.
- Proxy encaminha ao DeepSeek.
- DeepSeek retorna
content,reasoning_contentetool_calls. - Proxy salva o
reasoning_contentno SQLite. - Cursor executa a ferramenta, como
read_file. - Cursor envia o resultado da ferramenta sem
reasoning_content. - Proxy encontra o raciocínio em cache e reinjeta o campo.
- DeepSeek aceita a continuação e retorna a resposta final.
Para confirmar a injeção, rode o proxy com:
deepseek-cursor-proxy --verbose
Como o custo fica na prática
O V4-Pro dentro do Cursor usa os preços da API DeepSeek, não os créditos agrupados do Cursor. As taxas permanentes a partir de maio de 2026 são:
| Tipo de token | Taxa por 1M de tokens |
|---|---|
| Entrada, cache miss | US$ 0,435 |
| Entrada, cache hit | US$ 0,003625 |
| Saída | US$ 0,87 |
Exemplo de dia intenso:
- 50 turnos de chat
- média de 8.000 tokens de entrada por turno
- média de 1.500 tokens de saída por turno
Cálculo aproximado:
50 × 8.000 × 0,435 / 1.000.000 = US$ 0,174
50 × 1.500 × 0,87 / 1.000.000 = US$ 0,065
Com cache hits em prefixos repetidos, o custo de entrada cai mais. O artigo completo sobre preços está em DeepSeek V4-Pro 75% Price Cut Is Now Permanent.
Para contexto adicional sobre a linha DeepSeek, veja:
Como o V4-Pro se comporta dentro do Cursor
1. Tokens de pensamento aparecem no chat
Por padrão, o proxy renderiza o raciocínio do DeepSeek como um bloco markdown recolhível usando <details>.
Para ocultar:
deepseek-cursor-proxy --no-display-reasoning
2. A primeira chamada de ferramenta tem mais latência
Como o V4-Pro é um modelo de pensamento, ele executa parte do raciocínio antes de chamar ferramentas. Espere alguns segundos extras antes da primeira ferramenta.
3. Refatorações complexas ficam mais consistentes
O V4-Pro tende a lidar melhor com dependências multi-arquivo, renomeações, mudanças de assinatura e refatorações orientadas por configuração. O ganho aparece principalmente em tarefas que exigem contexto entre vários arquivos.
Guias relacionados para modelos anteriores:
Testando sua configuração DeepSeek com Apidog
A integração com o Cursor valida apenas o caminho Cursor → proxy → DeepSeek. Se você usa o V4-Pro em outros contextos, como bot de CI, agente backend ou plugin de IDE, vale manter uma suíte de testes contra o endpoint DeepSeek.
Com o Apidog, você pode criar um ambiente apontando para:
https://api.deepseek.com/v1
Depois, importe o esquema OpenAI Chat Completion e configure sua chave de API.
Use esse setup para:
- registrar respostas “golden” do V4-Pro;
- reproduzir testes após alterações de prompt;
- validar o formato de
tool_callscom asserções JSON; - comparar V4-Pro e GPT-5.5 no mesmo lote de entrada.
Baixe o Apidog e use o mesmo fluxo descrito em Como usar a API DeepSeek V4.
Armadilhas comuns
Erro 400 após a primeira chamada de ferramenta
Esse é o problema que o proxy corrige. Se ainda acontecer:
- confirme se o proxy está rodando;
- verifique se o Cursor aponta para a URL do ngrok;
- confirme se a URL termina com
/v1; - rode com
--verbosee veja se as requisições chegam ao proxy.
O túnel ngrok reconecta ou muda de URL
Na camada gratuita, a URL muda em reinicializações. Se isso atrapalhar, use um domínio reservado no ngrok e passe-o ao proxy:
deepseek-cursor-proxy --ngrok-url https://seu-reservado.ngrok-free.app
O conteúdo de raciocínio aparece duplicado
Isso pode acontecer se duas instâncias do proxy usarem o mesmo SQLite.
Corrija assim:
pkill -f deepseek-cursor-proxy
rm ~/.deepseek-cursor-proxy/reasoning_content.sqlite3
deepseek-cursor-proxy
A taxa de cache hit parece baixa
O cache de prompt do DeepSeek exige prefixos idênticos byte a byte. Se o Cursor injeta timestamps ou IDs de sessão no prompt do sistema, os hits caem.
Mitigações:
- evite conteúdo variável no prompt do sistema;
- mova dados variáveis para a mensagem do usuário;
- use modo sem prompt do sistema para sessões V4-Pro, se aplicável.
O Cursor mostra “modelo não encontrado”
O nome do modelo precisa corresponder a um identificador real do DeepSeek.
Exemplos válidos:
deepseek-v4-pro
deepseek-v4-flash
deepseek-v3-2-pro
deepseek-r1-1
Alternativas ao proxy
Usar V4-Flash sem proxy
O V4-Flash não é um modelo de pensamento e não retorna reasoning_content. O Cursor consegue chamá-lo diretamente. Você perde o raciocínio explícito, mas simplifica a integração.
Preço citado:
US$ 0,14 / US$ 0,28 por milhão de tokens
Usar outro plugin de IDE com suporte nativo
Ferramentas como Cline, Continue e outros plugins podem lidar com modelos de pensamento diretamente. Se você não precisa ficar no Cursor, trocar a camada de IDE pode ser mais simples do que manter o proxy.
Veja também Melhores assistentes de codificação de código aberto em 2026: alternativas gratuitas ao Cursor.
Outras integrações relacionadas:
FAQ
Por que o Cursor não suporta DeepSeek V4-Pro nativamente?
Porque o cliente de chat do Cursor segue o esquema OpenAI Chat Completions. O campo reasoning_content é uma extensão específica do DeepSeek e não faz parte desse esquema.
O proxy funciona com DeepSeek R1 ou V3.2?
Sim. Ele funciona com modelos DeepSeek que retornam reasoning_content e exigem esse campo em continuações com chamadas de ferramenta.
É seguro deixar o proxy rodando?
Sim, mas o SQLite contém conteúdo bruto de raciocínio das sessões. Em máquinas compartilhadas, restrinja permissões do diretório de cache.
Se quiser evitar cache persistente, use:
deepseek-cursor-proxy --no-cache
Nesse modo, o cache fica apenas em memória.
Posso usar sem ngrok?
Sim:
deepseek-cursor-proxy --no-ngrok
Mas o Cursor normalmente rejeita URLs http://localhost. Para a maioria dos usuários, ngrok, Cloudflare Tunnel ou Tailscale Funnel são opções mais práticas.
Funciona com Cursor Composer 2.5?
Sim. O Composer usa o mesmo pipeline de roteamento de modelo do chat. A primeira chamada de ferramenta tem o mesmo requisito de reasoning_content, e o proxy corrige da mesma forma.
Qual é a sobrecarga de latência?
Baixa. O proxy adiciona:
- um salto local;
- uma consulta SQLite;
- manipulação JSON;
- o túnel ngrok.
A sobrecarga típica fica na casa de milissegundos. O gargalo continua sendo a inferência do modelo.
Como o proxy decide o que armazenar?
Ele calcula um hash SHA-256 do prefixo da conversa, associa esse hash ao reasoning_content retornado pelo DeepSeek e salva no SQLite. Na próxima solicitação, calcula o hash do novo prefixo e procura uma entrada correspondente.
Isso pode quebrar no futuro?
Sim, se o Cursor mudar o formato das solicitações ou adicionar suporte nativo a modelos de pensamento. Nesse caso, o proxy pode precisar de atualização ou deixar de ser necessário.
Próximos passos
A capacidade de codificação do V4-Pro fica próxima do GPT-5.5 em benchmarks citados pela comparação da DataCamp, com custo de saída aproximadamente 1/34. O bloqueio prático no Cursor é a incompatibilidade em torno de reasoning_content.
Para testar no seu projeto:
- Instale o proxy.
- Configure o modelo personalizado no Cursor.
- Rode cinco tarefas reais do seu repositório.
- Compare com seu modelo padrão atual.
- Configure testes de regressão no Apidog contra
api.deepseek.com.
O imposto dos tokens de pensamento existe. O custo, neste caso, continua baixo.

Top comments (0)