DEV Community

Cover image for Comment utiliser DeepSeek V4-Pro avec Cursor : Guide de configuration du Proxy de Raisonnement (2026)
Antoine Laurent
Antoine Laurent

Posted on • Originally published at apidog.com

Comment utiliser DeepSeek V4-Pro avec Cursor : Guide de configuration du Proxy de Raisonnement (2026)

Connectez DeepSeek V4-Pro à Cursor avec les paramètres OpenAI par défaut, lancez un premier appel d’outil, et vous pouvez obtenir une erreur 400. La cause : V4-Pro renvoie un champ reasoning_content, Cursor le supprime dans les requêtes suivantes, puis l’API DeepSeek rejette les messages d’appel d’outil incomplets. Le proxy open-source yxlao/deepseek-cursor-proxy met ce raisonnement en cache et le réinjecte automatiquement avant d’appeler DeepSeek.

Essayez Apidog aujourd’hui

TL;DR

  • Cursor + DeepSeek V4-Pro peut échouer avec des erreurs 400 après un appel d’outil.
  • La raison est le champ DeepSeek reasoning_content, requis dans les suivis d’appels d’outils mais supprimé par Cursor.
  • deepseek-cursor-proxy s’intercale entre Cursor et DeepSeek, met en cache le raisonnement et le réinjecte.
  • Installation : uv tool install deepseek-cursor-proxy, démarrage du proxy, puis configuration d’un modèle personnalisé dans Cursor.
  • V4-Pro coûte environ 0,87 $ par million de tokens de sortie. Voir DeepSeek V4-Pro : une réduction de prix de 75 % désormais permanente.

Pourquoi Cursor échoue avec DeepSeek V4-Pro

DeepSeek V4-Pro renvoie deux blocs dans ses réponses :

  • content : la réponse visible classique.
  • reasoning_content : le raisonnement du modèle.

Pour une conversation simple, ignorer reasoning_content peut fonctionner. Le problème apparaît avec les appels d’outils.

Le contrat d’API de DeepSeek impose que, lorsqu’une réponse précédente contenait reasoning_content, la requête suivante conserve ce champ avec les résultats de tool_calls.

Cursor suit plutôt un schéma OpenAI Chat Completions. Comme reasoning_content n’appartient pas au schéma OpenAI standard, Cursor le retire. Résultat : DeepSeek reçoit un suivi incomplet et renvoie une erreur HTTP 400.

Ce n’est pas vraiment un bug Cursor. C’est une incompatibilité entre deux surfaces d’API proches, mais pas identiques.

Ce que fait le proxy

deepseek-cursor-proxy agit comme adaptateur entre Cursor et DeepSeek :

  1. Il écoute les requêtes Cursor sur un port local, par défaut 9000.
  2. Il transmet les requêtes à DeepSeek.
  3. Il met en cache le reasoning_content renvoyé par DeepSeek.
  4. Lors des requêtes suivantes, il retrouve le raisonnement correspondant et le réinjecte avant de transmettre à DeepSeek.

Le cache est stocké ici :

~/.deepseek-cursor-proxy/reasoning_content.sqlite3
Enter fullscreen mode Exit fullscreen mode

Le proxy indexe les entrées avec un SHA-256 du préfixe canonique de conversation. Deux conversations parallèles ne se mélangent donc pas.

Il expose aussi le service local via ngrok, car Cursor attend une URL HTTPS pour les modèles personnalisés et n’accepte généralement pas localhost.

Prérequis

Avant de commencer, installez ou préparez :

Étape 1 : installer le proxy

Avec uv, l’installation est directe :

uv tool install deepseek-cursor-proxy
Enter fullscreen mode Exit fullscreen mode

Vérifiez que la commande est disponible :

deepseek-cursor-proxy --help
Enter fullscreen mode Exit fullscreen mode

Alternative avec pip :

git clone https://github.com/yxlao/deepseek-cursor-proxy.git
cd deepseek-cursor-proxy
pip install -e .
Enter fullscreen mode Exit fullscreen mode

Étape 2 : configurer ngrok

Cursor a besoin d’une URL HTTPS publique. Ajoutez votre authtoken ngrok :

ngrok config add-authtoken YOUR_NGROK_AUTHTOKEN
Enter fullscreen mode Exit fullscreen mode

Avec le niveau gratuit, ngrok génère souvent une URL différente à chaque redémarrage.

Si vous avez réservé un domaine ngrok, vous pourrez le passer au proxy :

deepseek-cursor-proxy --ngrok-url https://your-reserved.ngrok-free.app
Enter fullscreen mode Exit fullscreen mode

Étape 3 : démarrer le proxy

Lancez simplement :

deepseek-cursor-proxy
Enter fullscreen mode Exit fullscreen mode

Au premier démarrage, le proxy crée sa configuration et affiche une sortie similaire :

Démarrage de deepseek-cursor-proxy
Tunnel : https://random-name.ngrok-free.app
Local :  http://127.0.0.1:9000
Cache :  /Users/vous/.deepseek-cursor-proxy/reasoning_content.sqlite3
Enter fullscreen mode Exit fullscreen mode

Gardez ce terminal ouvert pendant que vous utilisez Cursor.

Options utiles :

# Changer le port local
deepseek-cursor-proxy --port 9001

# Voir les requêtes/réponses pour déboguer
deepseek-cursor-proxy --verbose

# Désactiver ngrok pour tester avec localhost
deepseek-cursor-proxy --no-ngrok

# Ne pas afficher le raisonnement dans Cursor
deepseek-cursor-proxy --no-display-reasoning
Enter fullscreen mode Exit fullscreen mode

Étape 4 : ajouter DeepSeek V4-Pro dans Cursor

Dans Cursor :

  1. Ouvrez les paramètres.
  2. Allez dans Models.
  3. Ajoutez un modèle personnalisé.
  4. Configurez les champs.

Utilisez :

Champ Valeur
Nom du modèle deepseek-v4-pro
URL de base https://random-name.ngrok-free.app/v1
Clé API Votre clé API DeepSeek

Important : l’URL doit se terminer par /v1.

Pour la variante moins chère, utilisez :

deepseek-v4-flash
Enter fullscreen mode Exit fullscreen mode

Le proxy ne traduit pas les noms de modèles. Il les transmet tels quels à DeepSeek.

Étape 5 : tester un appel d’outil

Dans Cursor, sélectionnez le modèle personnalisé, puis envoyez une instruction qui force l’utilisation d’un outil :

Ouvrez le fichier README de ce dépôt, listez chaque bloc de code et dites-moi lesquels n’ont pas d’indications de langage.

Le flux attendu :

  1. Cursor envoie la requête utilisateur au proxy.
  2. Le proxy transmet à DeepSeek.
  3. DeepSeek renvoie content, reasoning_content et un tool_call.
  4. Le proxy met en cache reasoning_content.
  5. Cursor exécute l’outil, puis envoie le résultat.
  6. Cursor ne renvoie pas reasoning_content.
  7. Le proxy retrouve le raisonnement en cache et le réinjecte.
  8. DeepSeek accepte la requête et renvoie la réponse finale.

Pour voir l’injection dans les logs :

deepseek-cursor-proxy --verbose
Enter fullscreen mode Exit fullscreen mode

Coût estimé avec Cursor

V4-Pro utilise les tarifs API DeepSeek, pas les crédits Cursor. À partir de mai 2026 :

Type de jeton Taux par 1M de jetons
Entrée, échec de cache $0.435
Entrée, succès de cache $0.003625
Sortie $0.87

Exemple pour une journée intensive :

  • 50 tours de chat.
  • 8 000 tokens d’entrée par tour.
  • 1 500 tokens de sortie par tour.

Calcul au pire cas :

50 × 8 000 × 0,435 $ / 1 000 000 = 0,174 $
50 × 1 500 × 0,87 $ / 1 000 000 = 0,065 $
Enter fullscreen mode Exit fullscreen mode

Avec contexte, historique et chaînes d’outils, le total peut monter autour de 1 $ pour une journée intensive selon votre usage et le taux de cache.

Pour le détail de la réduction de prix, consultez DeepSeek V4-Pro : une réduction de prix de 75 % désormais permanente.

Pour les autres modèles DeepSeek :

Comportement de V4-Pro dans Cursor

1. Les tokens de réflexion sont visibles

Par défaut, le proxy rend le raisonnement dans un bloc markdown escamotable via <details>.

Pour masquer cet affichage :

deepseek-cursor-proxy --no-display-reasoning
Enter fullscreen mode Exit fullscreen mode

Le raisonnement continue de transiter vers DeepSeek. Seul l’affichage dans Cursor est supprimé.

2. Le premier appel d’outil est plus lent

V4-Pro raisonne avant de demander un outil. Attendez-vous à quelques secondes de latence avant le premier tool_call.

3. Les refactorisations multi-fichiers sont le cas d’usage principal

V4-Pro peut être utile pour :

  • renommages multi-fichiers ;
  • changements de signatures ;
  • refactorisations guidées par configuration ;
  • corrections nécessitant une lecture de plusieurs fichiers.

Pour d’anciens workflows DeepSeek avec Cursor :

Tester votre configuration DeepSeek avec Apidog

L’intégration Cursor teste seulement le chemin Cursor → proxy → DeepSeek. Si vous utilisez V4-Pro dans un bot CI, un agent backend ou un plugin IDE personnalisé, ajoutez un banc de test API reproductible.

Avec Apidog, créez un environnement pointant vers :

https://api.deepseek.com/v1
Enter fullscreen mode Exit fullscreen mode

Ajoutez votre clé API DeepSeek, puis importez le schéma OpenAI Chat Completions.

Vous pouvez ensuite :

  • enregistrer des réponses de référence de V4-Pro ;
  • rejouer les mêmes scénarios après chaque changement de prompt ;
  • valider la forme des tool_calls avec des assertions JSON Schema ;
  • comparer V4-Pro et GPT-5.5 sur les mêmes entrées.

Téléchargez Apidog, importez la spécification OpenAPI de DeepSeek, puis suivez le même flux que dans Comment utiliser l’API DeepSeek V4.

Dépannage

Erreur 400 après le premier appel d’outil

Vérifiez :

  • le proxy est bien lancé ;
  • Cursor pointe vers l’URL ngrok actuelle ;
  • l’URL de base se termine par /v1 ;
  • les logs du proxy montrent les requêtes entrantes.

Le tunnel ngrok change

Avec le niveau gratuit, l’URL peut changer au redémarrage.

Solution : réservez un domaine ngrok et lancez :

deepseek-cursor-proxy --ngrok-url https://your-reserved.ngrok-free.app
Enter fullscreen mode Exit fullscreen mode

Le raisonnement apparaît en double

Cela peut arriver si deux instances du proxy partagent le même cache SQLite.

Corrigez avec :

pkill -f deepseek-cursor-proxy
rm ~/.deepseek-cursor-proxy/reasoning_content.sqlite3
deepseek-cursor-proxy
Enter fullscreen mode Exit fullscreen mode

Le taux de cache est faible

Le cache de prompts DeepSeek exige des préfixes identiques au byte près. Si Cursor injecte des timestamps ou des identifiants de session, les hits de cache diminuent.

Déplacez les contenus variables dans le message utilisateur quand c’est possible.

Cursor indique « modèle introuvable »

Le nom du modèle doit être un identifiant DeepSeek valide, par exemple :

deepseek-v4-pro
deepseek-v4-flash
deepseek-v3-2-pro
deepseek-r1-1
Enter fullscreen mode Exit fullscreen mode

Alternatives

Utiliser V4-Flash sans proxy

deepseek-v4-flash ne renvoie pas reasoning_content. Cursor peut donc l’appeler directement sans contournement.

Vous perdez le raisonnement V4-Pro, mais l’intégration est plus simple. La tarification mentionnée est de 0,14 $ / 0,28 $ par million de tokens.

Utiliser un autre assistant IDE

Certains outils gèrent nativement les modèles avec raisonnement, comme Cline ou Continue. Si vous n’êtes pas attaché à Cursor, cela peut être plus simple que d’exécuter un proxy.

Voir Meilleurs assistants de codage open source en 2026 : alternatives gratuites à Cursor.

Autres intégrations Cursor :

FAQ

Pourquoi Cursor ne prend-il pas DeepSeek V4-Pro en charge nativement ?

Cursor suit le schéma OpenAI Chat Completions. reasoning_content est une extension DeepSeek. Cursor devrait ajouter une logique spécifique fournisseur pour conserver ce champ.

Le proxy fonctionne-t-il avec DeepSeek R1 ou V3.2 ?

Oui, si le modèle DeepSeek renvoie reasoning_content et l’exige dans les suivis d’appels d’outils.

Peut-on laisser le proxy tourner en permanence ?

Oui, mais le cache SQLite contient le raisonnement brut des sessions. Sur une machine partagée, restreignez les permissions du répertoire :

chmod 700 ~/.deepseek-cursor-proxy
Enter fullscreen mode Exit fullscreen mode

Peut-on utiliser le proxy sans ngrok ?

Oui :

deepseek-cursor-proxy --no-ngrok
Enter fullscreen mode Exit fullscreen mode

Il expose alors :

http://127.0.0.1:9000
Enter fullscreen mode Exit fullscreen mode

Mais les versions standard de Cursor rejettent généralement les URLs http:// dans l’interface de modèle personnalisé. Utilisez ngrok, Cloudflare Tunnel ou Tailscale Funnel si nécessaire.

Est-ce compatible avec Cursor Composer 2.5 ?

Oui. Composer utilise le même routage de modèles que le panneau de chat. Les appels d’outils bénéficient donc de la même réinjection de reasoning_content.

Quel est le surcoût de latence ?

Le proxy ajoute surtout :

  • un saut local ;
  • une lecture SQLite ;
  • une manipulation JSON.

Le surcoût annoncé est faible par rapport au temps de génération du modèle. ngrok ajoute aussi une latence réseau selon le point d’entrée utilisé.

Comment le cache est-il sélectionné ?

Le proxy hache le préfixe de conversation avec SHA-256, associe ce hash au dernier reasoning_content, puis recherche ce hash lors de la requête suivante.

Les correspondances partielles ne sont pas utilisées, ce qui évite de polluer deux conversations proches mais différentes.

Prochaines étapes

V4-Pro se rapproche de GPT-5.5 sur certains benchmarks de codage, comme cette comparaison DataCamp, tout en affichant un prix de sortie bien plus bas.

Pour l’utiliser concrètement dans Cursor :

  1. Installez deepseek-cursor-proxy.
  2. Configurez ngrok.
  3. Ajoutez deepseek-v4-pro comme modèle personnalisé dans Cursor.
  4. Testez sur cinq vraies pull requests de votre dépôt.
  5. Surveillez les erreurs 400 et les hits de cache.
  6. Ajoutez une suite de régression Apidog contre api.deepseek.com pour tester vos prompts et contrats d’outils hors Cursor.

La taxe sur les tokens de réflexion est payée. Le prix ne l’est pas.

Top comments (0)