La plupart des migrations commencent par le changement du nom d'un modèle. DeepSeek V4.1 Flash 1017 a procédé à l'inverse : le 17 octobre 2026, DeepSeek a conservé le nom deepseek-flash et changé le modèle qui se cache derrière. Toute personne appelant deepseek-flash, deepseek-v4-flash ou deepseek-v4-flash-vision-exp sur l'API de DeepSeek a été basculée sans toucher à une seule ligne de code.
Sur AIHubMix, le nouveau checkpoint possède son propre identifiant, deepseek-v4.1-flash-1017, si bien que vous choisissez le moment de la migration. Dans les deux cas, voici les problèmes à vérifier :
| Problème | Échec | Où vous le remarquez |
|---|---|---|
| reasoning_content non renvoyé | Bruyamment | Erreur 400 après le premier appel d'outil |
| Modèle remplacé sous le même nom | Discrètement | Longueur des sorties, formats, scores d'évaluation |
| Tarification aux heures de pointe | Discrètement | La facture double aux heures de pointe en semaine |
| Effort réglé sur max par défaut | Discrètement | Les exécutions d'agents durent 1,6 à 1,8 fois plus longtemps |
| La réflexion compte dans max_tokens | Les deux | Réponses tronquées |
| Facturation de Search et Fetch | Discrètement | À partir du 31 octobre, 16 h UTC |
AIHubMix a exécuté une courte série de requêtes de test sur deepseek-v4.1-flash-1017 le 19 octobre 2026 (03 h 02 UTC). Les résultats de cette exécution sont signalés comme tels ci-dessous.
1. L'erreur 400 qui casse les boucles d'outils
Ce que vous verrez. La deuxième requête après un appel d'outil échoue avec une erreur HTTP 400 et ce message, tel que signalé dans un ticket GitHub sur opencodex pour V4.1 Flash le 15 octobre :
[invalid_request_error] The `reasoning_content` in the thinking mode must be passed back to the API.
Le même texte apparaît dans des signalements antérieurs concernant opencode, LangChain et claude-code-router pour V4 Pro et V4 Flash.
Pourquoi. Le guide du mode réflexion de DeepSeek indique que, lorsqu'une requête comprend tools, le reasoning_content de chaque tour précédent de l'assistant doit être renvoyé, « même pour les tours où le modèle n'a pas effectué d'appel d'outil ». Sinon, « l'API renverra une erreur 400 ». Sans outils, le renvoi est facultatif et ignoré. Les clients tombent généralement dans ce piège parce que leur sérialiseur de messages conserve content et tool_calls mais supprime le champ supplémentaire.
La requête qui le déclenche. Le deuxième tour d'une boucle d'outils, avec le message de l'assistant dépourvu de reasoning_content :
curl -s https://aihubmix.com/v1/chat/completions \
-H "Authorization: Bearer $AIHUBMIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash-1017",
"tools": [{"type": "function", "function": {"name": "get_weather",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]}}}],
"messages": [
{"role": "user", "content": "What is the temperature in Hangzhou? Use the tool."},
{"role": "assistant", "content": null, "tool_calls": [{"id": "call_00_example", "type": "function",
"function": {"name": "get_weather", "arguments": "{\"city\": \"Hangzhou\"}"}}]},
{"role": "tool", "tool_call_id": "call_00_example", "content": "{\"celsius\": 18}"}
]
}'
Sur l'API propre à DeepSeek, c'est cette forme qui renvoie l'erreur 400 dans les signalements publics. Via AIHubMix, la même forme a renvoyé HTTP 200 et une réponse normale lors de l'exécution de test du 19 octobre. Il ne s'agissait que d'une exécution, donc ne vous y fiez pas comme à une garantie.
Comment corriger. Conservez le champ, quelle que soit la voie empruntée :
msg = resp.choices[0].message
messages.append(msg) # carries content, reasoning_content, and tool_calls over
- Dans votre propre code, ajoutez le message complet de l'assistant, et non une copie reconstruite à la main.
- Dans les frameworks, mettez à jour : opencode a corrigé l'aller-retour dans les versions ultérieures, et opencodex a fusionné son correctif le 16 octobre.
- En dernier recours, réglez
{"thinking": {"type": "disabled"}}pour les boucles d'outils. Cela évite l'erreur, mais renonce au raisonnement qui rend le modèle performant pour les tâches d'agent.
2. Le même nom, un modèle différent
Le journal des modifications de DeepSeek du 17 octobre le dit clairement : « La méthode d'appel de l'API et la tarification restent inchangées — utilisez simplement deepseek-flash pour accéder au dernier modèle. » Aucun nom n'est épinglé pour le checkpoint de septembre, et les deux anciens noms Flash fonctionnent désormais aussi avec la version 1017.
Rien ne génère d'erreur, mais trois choses peuvent changer :
- Longueur des sorties. La version 1017 a été entraînée à produire des sorties plus courtes. Les analyseurs, les mises en page d'interface et les prompts qui attendaient les longues explications du modèle de septembre peuvent recevoir moins de texte qu'auparavant.
- Référentiels d'évaluation. Les scores et les coûts que vous avez enregistrés sur le checkpoint de septembre ne décrivent plus ce que renvoie
deepseek-flash. - Comportement. DeepSeek a réentraîné la version 1017 pour les travaux de projet de bout en bout. Les agents peuvent emprunter des chemins différents pour aboutir au même résultat.
Que faire. Notez le modèle et la date pour chaque exécution d'évaluation, et relancez dès maintenant votre jeu de tests de régression. La réponse indique quel checkpoint a répondu : lors du test du 19 octobre, chaque réponse passant par AIHubMix contenait "model": "deepseek-v4-1-flash-261017". Journalisez ce champ, et un changement non annoncé devient visible le jour même où il se produit.
3. Règles de facturation faciles à manquer
Heures de pointe et heures creuses. DeepSeek facture le plein tarif de 01 h à 04 h et de 06 h à 10 h UTC en semaine, et le demi-tarif à toutes les autres heures, tout le week-end et les jours fériés chinois. AIHubMix suit les mêmes plages et tarifie chaque requête à l'heure de sa soumission ; une longue requête en streaming démarrée en heures creuses reste donc en heures creuses.
| Élément | Pointe | Heures creuses |
|---|---|---|
| Entrée, cache manqué | $0.3098 | $0.155 |
| Entrée, cache utilisé | $0.0062 | $0.0031 |
| Sortie | $1.2392 | $0.62 |
Tarifs publics AIHubMix par million de jetons pour deepseek-v4.1-flash-1017. Une remise limitée de 30 % s'applique en plus.
Les accès au cache coûtent 50 fois moins cher que les échecs. Les agents renvoient le même prompt système, les mêmes définitions d'outils et le même historique à chaque appel. Conservez ce préfixe stable, placez tout ce qui change à chaque appel à la fin, et la plus grande partie de chaque requête sera facturée au tarif du cache.
La réflexion est facturée comme sortie. La réflexion est activée par défaut, et les jetons de raisonnement comptent à la fois dans la facture et dans max_tokens.
Search et Fetch. DeepSeek a ouvert ses nouvelles API Search et Fetch le 17 octobre, à 0,75 $ pour 1 000 appels réussis chacune. Les appels côté serveur effectués via DeepSeek Harness, Claude Code ou Codex sur l'API de DeepSeek sont gratuits jusqu'au 31 octobre 2026, 16 h UTC. Ensuite, un agent qui effectue une recherche à chaque tour ajoute un coût par appel à celui des jetons.
Ce que cela représente. Selon les hypothèses énoncées (40 appels, 1,2 M de jetons en entrée avec 90 % de hits de cache, 60 K de jetons en sortie), une session d'agent coûte 0,118 $ en heures de pointe et 0,059 $ en heures creuses, aux tarifs publics d'AIHubMix. Déplacer les traitements par lots en heures creuses est l'économie la plus importante.
4. Réglages qui coûtent plus qu'ils ne rapportent
Effort. L'API propose low, high (par défaut) et max. Le document de DeepSeek sur V4.1 Flash associe ces niveaux aux valeurs internes d'effort 50, 75 et 100, et indique que le passage à max « allonge les trajectoires des agents de 1,6 à 1,8 × pour des gains marginaux ». Le guide de configuration de Claude Code de DeepSeek définit toujours CLAUDE_CODE_EFFORT_LEVEL=max. Pour le travail courant avec des agents, high est le meilleur choix par défaut.
DeepSeek fait aussi correspondre d'autres noms d'effort à ses trois niveaux : minimal devient low, tandis que medium et xhigh deviennent tous deux high. Un outil qui propose cinq niveaux ne vous en offre en pratique que deux ou trois. Lors du test du 19 octobre, AIHubMix a accepté low, high et max sur Chat Completions.
max_tokens. La fiche du modèle recommande au moins 256 K pour les longues exécutions d'agents, car la réflexion partage le budget de sortie. Avec une limite faible, une étape difficile peut consommer tout le budget en réflexion. Vérifiez la présence de finish_reason: "length".
Paramètres d'échantillonnage. En mode réflexion, temperature, presence_penalty et frequency_penalty sont acceptés sans erreur mais n'ont aucun effet. top_p est ramené à l'intervalle 0,95–1,0. Si un pipeline s'appuyait sur une faible température pour obtenir une sortie déterministe, il ne l'obtient plus.
5. Agents disposant de vraies permissions
La version 1017 a été entraînée par apprentissage par renforcement sur des projets complets ; elle tend donc à continuer à construire jusqu'à ce que le travail paraisse terminé. Ses réponses sont aussi plus courtes, ce qui signifie moins de commentaires sur ce qu'elle a modifié. Deux habitudes aident :
- Relisez les diffs et les journaux de commandes, et non le résumé qu'en fait le modèle.
- Exécutez-le dans un bac à sable avec une liste blanche de commandes, et exigez une approbation pour toute action destructive (suppressions, force pushes, migrations, appels réseau sortants).
DeepSeek lui-même signale la force de la gamme Flash sur les tâches de sécurité ; le checkpoint de septembre a obtenu 88,1 sur CyberGym dans le propre tableau de DeepSeek. C'est utile pour le travail défensif, et une raison supplémentaire de restreindre strictement ses permissions.
6. Outils de développement
AIHubMix sert deepseek-v4.1-flash-1017 sur les trois protocoles dont ont besoin les outils de développement. Lors du test du 19 octobre, Chat Completions, Anthropic Messages (y compris un appel d'outil en deux tours) et l'API Responses ont tous renvoyé 200.
Claude Code (Anthropic Messages). Pointez-le vers AIHubMix comme indiqué dans le guide Claude Code, puis définissez le modèle :
export ANTHROPIC_BASE_URL="https://aihubmix.com"
export ANTHROPIC_AUTH_TOKEN="$AIHUBMIX_API_KEY"
export ANTHROPIC_MODEL="deepseek-v4.1-flash-1017"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4.1-flash-1017"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4.1-flash-1017"
export CLAUDE_CODE_EFFORT_LEVEL="high"
- Réflexion : lors du test, une requête Messages sans réglage d'effort est revenue sans bloc de réflexion, alors qu'une requête avec
output_config.efforta renvoyé de la réflexion. Définissez un niveau d'effort pour que 1017 raisonne, et vérifiez les journaux de requêtes. - Contexte : le guide de DeepSeek ajoute un suffixe
[1m]au nom du modèle pour son propre point d'accès ; ce suffixe n'a pas été testé via AIHubMix. - Problème connu : via certains routeurs, Claude Code a supprimé le contenu de réflexion et déclenché l'erreur 400 décrite plus haut (ticket claude-code-router 1378). Le test à deux tours via le point d'accès Messages d'AIHubMix n'a pas rencontré ce problème.
Codex (API Responses). Suivez le guide de Codex CLI : un fournisseur aihubmix avec base_url = "https://aihubmix.com/v1" et wire_api = "responses", ainsi que model = "deepseek-v4.1-flash-1017". Pour le sélectionner depuis /model, ajoutez-le à un fichier model_catalog_json avec context_window défini à 1 000 000.
- Effort : le script de catalogue du guide propose
low,mediumethigh. Selon la correspondance de DeepSeek,mediumethighaboutissent tous deux àhighde DeepSeek ; vous n'obtenez donc que deux niveaux réels. - Problème connu : les versions récentes de Codex rejettent tout le catalogue si un seul champ obligatoire manque. Le script du guide évite ce problème.
DeepSeek Harness (Chat Completions). DeepSeek indique que la version 1017 fonctionne au mieux avec Harness 0.2.1-rc.1 ou ultérieure. Ajoutez AIHubMix comme fournisseur compatible OpenAI en suivant le guide DeepSeek Harness, puis ajoutez deepseek-v4.1-flash-1017 comme modèle. Ce guide a été rédigé pour une version antérieure de Harness ; vérifiez donc les noms de champs si l'interface a changé.
Un test de fumée de 15 minutes. Créez un petit dépôt contenant un seul test en échec :
mkdir flash-smoke && cd flash-smoke && git init -q
printf 'def mean(xs):\n return sum(xs) / len(xs)\n' > stats.py
printf 'from stats import mean\n\ndef test_mean():\n assert mean([1, 2, 3]) == 2\n\ndef test_empty():\n assert mean([]) == 0\n' > test_stats.py
Lancez votre outil dans ce dossier et demandez : « Exécute pytest, corrige le test en échec en modifiant uniquement stats.py, puis relance pytest. » Le test est réussi si :
- l'agent effectue au moins deux appels d'outils (exécuter les tests, modifier le fichier) sans erreur 400 ;
- les deux tests passent à la fin ;
- le journal des requêtes d'AIHubMix affiche
deepseek-v4.1-flash-1017, et le coût de la session ne dépasse pas quelques centimes.
Liste de contrôle de migration
- Choisissez l'identifiant du modèle : deepseek-v4.1-flash-1017 sur AIHubMix.
- Ajoutez les messages assistant complets dans les boucles d'appels d'outils afin que reasoning_content soit renvoyé à chaque tour.
- Relancez votre jeu de tests de régression et d'évaluation ; notez le modèle, la date et le champ du modèle de réponse.
- Vérifiez les analyseurs et les interfaces pour des sorties plus courtes.
- Réglez effort sur high par défaut ; réservez max aux tâches les plus difficiles.
- Augmentez max_tokens pour les tours d'agents et configurez une alerte sur finish_reason length.
- Abandonnez les hypothèses de déterminisme liées à temperature en mode réflexion.
- Planifiez les exécutions par lots et les agents de nuit en dehors des heures de pointe.
- Gardez des préfixes de prompt stables pour profiter des hits de cache.
- Prévoyez un budget pour les appels Search et Fetch à partir du 31 octobre si vous utilisez les outils côté serveur de DeepSeek.
- Isolez les agents dans un bac à sable avec de vraies permissions et examinez les diffs, pas les résumés.
- Lancez le test de fumée de 15 minutes dans chaque outil de codage que vous utilisez.
FAQ
Faut-il modifier le code pour utiliser DeepSeek V4.1 Flash 1017 ?
Sur l'API de DeepSeek, non : deepseek-flash pointe déjà vers 1017. Sur AIHubMix, remplacez le nom du modèle par deepseek-v4.1-flash-1017.
Pourquoi obtiens-je une erreur 400 concernant reasoning_content ?
DeepSeek exige que le reasoning_content de chaque tour assistant précédent soit renvoyé lorsqu'une requête inclut des outils. Les clients qui suppriment ce champ échouent à l'appel suivant le premier appel d'outil.
L'erreur 400 reasoning_content se produit-elle via AIHubMix ?
Non, lors du test réalisé par AIHubMix le 19 octobre 2026, un tour sans reasoning_content a renvoyé un 200. Continuez tout de même à envoyer ce champ, car c'est la règle documentée par DeepSeek.
Puis-je encore utiliser le V4.1 Flash de septembre sur l'API de DeepSeek ?
Non. DeepSeek a fait basculer deepseek-flash et les anciens noms Flash vers 1017 et ne propose pas de nom fixe pour le point de contrôle de septembre.
Quand DeepSeek V4.1 Flash est-il moins cher ?
En dehors de 01:00 à 04:00 et de 06:00 à 10:00 UTC en semaine. Toutes les autres heures, les week-ends et les jours fériés chinois coûtent moitié moins.
Quel niveau d'effort les agents de codage doivent-ils utiliser ?
High, la valeur par défaut. Selon l'article de DeepSeek lui-même, max allonge les exécutions d'agents de 1,6 à 1,8 fois pour de faibles gains.
1017 fonctionne-t-il dans Claude Code et Codex via AIHubMix ?
Oui. AIHubMix le sert sur les protocoles Anthropic Messages et Responses qu'utilisent ces outils, et les deux ont réussi un test de base le 19 octobre 2026.
À lire ensuite : la série DeepSeek V4.1 Flash 1017
- Vous n'êtes pas encore sûr que la migration en vaille la peine ? L'article sur la mise à niveau montre ce que 1017 apporte par rapport au point de contrôle de septembre et ce que coûte une session : DeepSeek V4.1 Flash 1017 : même prix, sorties plus courtes. Faut-il passer à la nouvelle version ?
- Vous configurez Claude Code malgré tout ? Découvrez comment 1017 se compare au modèle que Claude Code utilise pour ses propres sous-agents : DeepSeek V4.1 Flash 1017 vs Claude Haiku 5.5 : quel modèle économique pour les agents de codage en terminal ?
- Vous migrez depuis V4 Pro plutôt que depuis l'ancien Flash ? Cet article vérifie si vous avez encore besoin de Pro : DeepSeek V4.1 Flash 1017 vs V4 Pro : Flash suffit-il désormais ?
Sources
- Thinking Mode (DeepSeek)
- Change Log (DeepSeek)
- Integrate with AI Tools (DeepSeek)
- DeepSeek V4.1 Flash 1017 sur AIHubMix (AIHubMix)
- DeepSeek V4.1 Flash renvoie une erreur 400 reasoning_content après les appels d'outils, issue 7118 (GitHub)



