Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
DeepSeek Harness avec une API compatible OpenAI
2026/08/23

DeepSeek Harness avec une API compatible OpenAI

Connecter DeepSeek Harness à une API compatible OpenAI, choisir entre Flash et Pro, vérifier les appels d'outils et estimer les coûts de boucle agent en cache.

DeepSeek Harness peut utiliser un point de terminaison de modèle compatible OpenAI lorsque son plugin fournisseur reçoit quatre valeurs : une URL de base, une clé API, un identifiant de modèle et un chemin Chat Completions. Pour reAPI, l'URL de base est https://api.reapi.ai/v1, et les identifiants de modèle actuels sont deepseek-v4-flash et deepseek-v4-pro.[1][2]

Le projet Harness porte encore le label de préversion pour développeurs, de sorte que ses noms de commande et son fichier de configuration peuvent changer. La partie stable est le contrat du fournisseur. Configurez celui-ci d'abord, puis vérifiez un message simple et un appel d'outil avant d'installer des plugins supplémentaires.

Les quatre valeurs à mapper

Paramètre du fournisseur HarnessValeur reAPI
Type de fournisseurOpenAI-compatible
URL de basehttps://api.reapi.ai/v1
Clé APIUne clé API reAPI stockée dans une variable d'environnement
Modèledeepseek-v4-flash ou deepseek-v4-pro

Ne collez pas la clé dans un fichier du dépôt. Le plugin fournisseur doit la lire à partir d'une variable d'environnement ou du magasin de secrets pris en charge par la version actuelle de Harness.

Au niveau HTTP, la demande doit se résoudre en :

POST https://api.reapi.ai/v1/chat/completions
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Ce corps minimal suffit pour tester l'accès au modèle en dehors de Harness avant de déboguer le comportement de l'agent :

{
  "model": "deepseek-v4-flash",
  "messages": [
    { "role": "user", "content": "Reply with exactly: provider ok" }
  ],
  "stream": false,
  "max_tokens": 64
}

Si cette demande directe échoue, le problème n'est pas Harness. Commencez par corriger l'URL, la clé, l'identifiant du modèle, le solde ou l'accès réseau.

Commencez par Flash, promouvoir les étapes difficiles à Pro

Les deux variantes actuelles de DeepSeek V4 exposent une fenêtre de contexte de 1 million de jetons, jusqu'à 384 000 jetons de sortie, l'utilisation d'outils, le mode réflexion, l'entrée visuelle et la mise en cache du contexte sur la route reAPI.[2] Leurs prix et charges de travail prévues diffèrent considérablement.

ModèleEntrée cache-miss / 1MEntrée cache-hit / 1MSortie / 1MPremier travail Harness
DeepSeek V4 Flash$0.14$0.0028$0.28recherche de fichiers, résumés, modifications courantes
DeepSeek V4 Pro$1.74$0.0145$3.48architecture, débogage difficile, plans longs

Une boucle d'agent répète les instructions, le contexte du dépôt et les schémas d'outils. Cela rend le comportement du cache particulièrement important. L'entrée cache-hit de Flash est 50 fois moins chère que son entrée cache-miss ; l'entrée cache-hit de Pro est 120 fois moins chère que son taux de non-atteinte.

Utilisez Flash comme valeur par défaut lors du câblage de l'agent. Acheminez une étape vers Pro uniquement lorsque son exigence de raisonnement justifie environ 12,4 fois le taux d'entrée et de sortie cache-miss.

Maintenez le préfixe stable stable

La mise en cache du contexte est plus utile lorsque le début des demandes consécutives reste identique. Dans un agent de codage, ce préfixe contient souvent :

  • les instructions du système ;
  • la politique du dépôt ;
  • les définitions d'outils et les schémas JSON ;
  • un document d'architecture inchangé ;
  • la conversation antérieure avant le dernier résultat de l'outil.

La réorganisation des outils, l'ajout d'horodatages près du haut ou la régénération des mêmes instructions avec de légères modifications de formulation peuvent empêcher la réutilisation du préfixe. Placez l'état volatil après le bloc stable.

Par exemple, une boucle Pro avec 200 000 jetons d'entrée stables, 10 000 jetons d'entrée nouveaux et 8 000 jetons de sortie coûte approximativement :

200,000 cached input × $0.0145 / 1,000,000 = $0.0029
 10,000 new input    × $1.74   / 1,000,000 = $0.0174
  8,000 output       × $3.48   / 1,000,000 = $0.02784
                                                -------
                                                $0.04814

Sans accès en cache, les mêmes 210 000 jetons d'entrée coûteraient 0,3654 $ avant la sortie. La disposition du contexte de l'agent peut être plus importante que de réduire quelques centaines de jetons du message le plus récent.

Vérifier les appels d'outils avant d'ajouter des plugins

Une réponse de chat réussie ne prouve pas qu'un agent peut agir. Exécutez ensuite un test d'appel d'outil sans danger :

{
  "model": "deepseek-v4-flash",
  "messages": [
    { "role": "user", "content": "What files are in the current directory?" }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "list_files",
        "description": "List files in the current working directory",
        "parameters": { "type": "object", "properties": {} }
      }
    }
  ],
  "tool_choice": "auto"
}

Le modèle doit retourner un appel d'outil structuré. Harness exécute la fonction locale et fournit le résultat au tour suivant. Si le modèle imprime "je listerais les fichiers" en prose, inspectez si le plugin fournisseur a transféré tools et renvoyé les champs d'appel d'outil assistant intacts.

Cinq points de défaillance qui ressemblent à des problèmes de modèle

SymptômeVérifier d'abord
Réponse 401La clé est absente ou Harness n'a pas hérité de la variable d'environnement
Réponse 404L'URL de base ou le chemin /v1/chat/completions a été dupliqué/omis
Modèle introuvableUtilisez l'identifiant exact deepseek-v4-flash ou deepseek-v4-pro
L'agent parle mais n'agit jamaisL'adaptateur fournisseur a supprimé les définitions d'outils ou la sortie d'appel d'outil
La réponse s'arrête avant la finLa réflexion a utilisé le budget de sortie ; augmentez max_tokens

La réflexion est activée par défaut sur la route DeepSeek V4 actuelle. Les jetons de raisonnement comptent vers l'utilisation de la sortie, donc un petit plafond de sortie peut terminer un plan d'outil avant sa réponse visible par l'utilisateur.[2]

Testez la boucle d'agent complète avec un dépôt jetable

Une fois les sondes de message et d'appel d'outil réussies, fournissez à Harness un petit dépôt créé pour les tests d'intégration. Il doit contenir un fichier lisible, un test qui échoue, un chemin protégé et une commande inoffensive. Demandez à l'agent de diagnostiquer le test, de proposer un correctif, d'exécuter la vérification étroite et de s'arrêter avant toute validation ou action externe.

Cela révèle quatre défaillances d'intégration qu'un test d'appel d'outil JSON ne peut pas :

  • les chemins relatifs se résolvent en dehors du répertoire de travail prévu ;
  • la sortie de la commande est tronquée avant que le modèle voie l'erreur ;
  • un outil de correctif change les terminaisons de ligne ou l'encodage du fichier ;
  • la limite d'approbation est appliquée dans l'interface utilisateur mais pas dans le plugin.

Répétez la même tâche après le redémarrage de Harness. La récupération de session est importante dans un agent de codage car les longues exécutions échouent aux limites ordinaires : veille de l'ordinateur portable, redémarrage du processus, délai d'expiration du fournisseur ou sortie d'outil mal formée. Un premier tour qui fonctionne n'est pas suffisant.

Enregistrez assez pour séparer les défaillances du runtime et du modèle

Au minimum, conservez un identifiant de demande, un modèle sélectionné, une utilisation des jetons, des jetons cache-hit, un motif de fin, un nom d'outil, une durée d'outil et une erreur révisée. N'enregistrez pas les clés API ou le contenu des fichiers sans restriction.

Lorsqu'un agent s'arrête, ces champs répondent à des questions différentes :

ObservationCouche probable
HTTP 401/404 avant toute sortie de modèleConfiguration du fournisseur
finish_reason: lengthBudget de sortie
Appel d'outil valide mais pas d'exécutionRuntime Harness/plugin
Outil exécuté, le résultat n'arrive jamais au modèleSérialisation de boucle
Entrée complète répétée avec zéro accès en cacheConstruction du contexte
Le modèle choisit une commande risquée malgré un schéma correctPolitique modèle/invite/approbation

Sans cette séparation, les équipes changent souvent de modèle pour corriger une variable d'environnement manquante ou réécrivent les invites pour corriger un résultat d'outil supprimé.

Ne pas transférer le raisonnement caché en tant qu'historique de conversation

La réponse DeepSeek V4 peut contenir le contenu du raisonnement séparément de la réponse finale. La documentation de l'API conseille de supprimer le contenu de raisonnement antérieur avant le tour suivant.[2] Stockez ce qui est nécessaire pour la facturation et le débogage selon la politique du produit, mais ne joignez pas le raisonnement caché à l'historique utilisateur/assistant suivant comme s'il s'agissait de contenu ordinaire.

La conversation doit préserver la réponse d'assistant visible, les appels d'outil structurés et les résultats d'outil requis par le protocole. Cela maintient la demande suivante valide et empêche le contexte de croître avec du matériel que le point de terminaison ne s'attend pas à recevoir en retour.

La sécurité du plugin appartient à la configuration, pas après

L'aperçu Harness prend en charge les plugins, ce qui signifie également que le code tiers peut recevoir des invites, des fichiers, la sortie d'outils ou l'accès au réseau. Avant d'en activer un :

  1. lisez la source et la surface des autorisations du plugin ;
  2. exécutez Harness dans un dépôt ou un bac à sable jetable ;
  3. commencez par les outils du système de fichiers en lecture seule ;
  4. bloquez les fichiers secrets et les répertoires parents ;
  5. exigez une confirmation pour le shell, l'installation de packages, les poussées git et les messages externes.

Le point de terminaison du modèle ne peut pas corriger un plugin local sur-autorisé. Cette limite appartient au runtime de l'agent.

Le contrat de modèle actuel et les exemples du SDK se trouvent dans la documentation de l'API DeepSeek V4, avec les prix actuels sur la page du modèle DeepSeek V4.

Références

  1. DeepSeek, "deepseek-harness" official repository, developer preview, accessed August 23, 2026.
  2. reAPI DeepSeek V4 API documentation, accessed August 23, 2026.
  3. DeepSeek Harness official product page, accessed August 23, 2026.