API Qwen3 Coder Next sur Novita AI pour les agents de codage

API Qwen3 Coder Next sur Novita AI pour les agents de codage

Qwen3 Coder Next est disponible sur Novita AI en tant que modèle de texte serverless pour les workflows d’agents de codage nécessitant une compréhension de code en contexte long, des sorties structurées et une coordination d’outils de type appel de fonction via une API de complétion de chat. Utilisez l’ID de modèle vérifié qwen/qwen3-coder-next avec le point de terminaison compatible OpenAI POST https://api.novita.ai/openai/v1/chat/completions lorsque vous souhaitez un modèle axé sur le codage dans une boucle d’agent sans gérer l’hébergement du modèle.

Quand utiliser Qwen3 Coder Next pour les agents de codage

Utilisez Qwen3 Coder Next lorsque votre application a besoin d’un modèle de langage orienté codage dans un workflow de développement logiciel contrôlé : explication de code, planification de correctifs, localisation de bogues, rédaction de cas de test, révision de refactorisation ou inspection de dépôt assistée par outil.

La distinction importante est que ce guide n’est pas un aperçu générique du modèle. Il se concentre sur un modèle d’implémentation d’agent de codage :

  • envoyer le contexte du dépôt ou du fichier dans une demande de complétion de chat ;
  • demander au modèle une prochaine action limitée ;
  • demander éventuellement du JSON structuré pour que votre agent puisse décider d’inspecter un autre fichier, de proposer un correctif ou de s’arrêter ;
  • exécuter des outils dans votre propre couche applicative, pas à l’intérieur de l’appel modèle ;
  • renvoyer l’observation dans le prochain tour de chat.

Le catalogue de Novita AI décrit Qwen3 Coder Next comme un LLM texte entrée-sortie avec disponibilité serverless, prise en charge des appels de fonction, prise en charge des sorties structurées et contexte long. Ce sont les éléments qui importent pour les agents de codage : le modèle peut produire des instructions de type appel d’outil et des décisions structurées, tandis que votre application reste responsable de l’accès au système de fichiers, de l’exécution de commandes, des modifications du dépôt et des garde-fous.

Évitez de traiter le modèle comme s’il modifiait directement un dépôt par lui-même. Un agent de codage a besoin de code environnant qui prépare le contexte, valide les sorties, exécute les outils, applique les correctifs et enregistre les résultats. Qwen3 Coder Next fournit l’étape de modèle de langage dans cette boucle.

ID du modèle, point de terminaison, tarifs et limites

L’ID de modèle vérifié Novita AI est qwen/qwen3-coder-next.

ChampValeur vérifiée
Nom affichéQwen3 Coder Next
ID du modèleqwen/qwen3-coder-next
Modalité d’entréeTexte
Modalité de sortieTexte
Famille de points de terminaisonchat/completions, anthropic
Point de terminaison compatible OpenAIPOST https://api.novita.ai/openai/v1/chat/completions
Taille de contexte262 144 tokens
Max tokens de sortie65 536 tokens
Prix d’entrée indiqué0,20 $ par million de tokens
Prix de sortie indiqué1,50 $ par million de tokens
Fonctionnalités indiquéesAppel de fonction, sorties structurées, serverless
RPM indiqué au quota T130 RPM

Les prix, limites de débit et disponibilité peuvent changer. Vérifiez la bibliothèque de modèles Novita AI et votre quota console avant le déploiement en production.

Étape 1 : Obtenir une clé API Novita AI

Créez ou ouvrez votre compte Novita AI, puis générez une clé API depuis la console. Stockez-la comme variable d’environnement au lieu de la coder en dur dans votre application.

export NOVITA_API_KEY="your_api_key_here"

Pour le développement local, utilisez votre profil shell, un chargeur .env ou un gestionnaire de secrets. Pour la production, injectez la clé via le système de secrets de votre plateforme de déploiement et gardez-la hors des logs, du code côté client et de l’historique du dépôt.

Étape 2 : Envoyer une première demande de codage

Commencez par la plus petite demande utile : un message système qui contraint le rôle de l’assistant, plus un message utilisateur contenant un court extrait de code et une tâche de codage spécifique.

curl https://api.novita.ai/openai/v1/chat/completions \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen/qwen3-coder-next",
"messages": [
{
"role": "system",
"content": "Vous êtes un assistant de codage. Expliquez clairement les risques et évitez de modifier le comportement sauf si cela vous est demandé."
},
{
"role": "user",
"content": "Examinez cette fonction JavaScript pour les cas limites :\n\nfunction divide(a, b) {\n return a / b;\n}"
}
],
"temperature": 0.2,
"max_tokens": 600
}'

Une réponse non streamée réussie renvoie un objet de complétion de chat avec un tableau choices. Lisez choices[0].message.content pour la sortie du modèle et usage pour le comptage des tokens.

import os
import requests

api_key = os.environ["NOVITA_API_KEY"]

response = requests.post(
    "https://api.novita.ai/openai/v1/chat/completions",
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    json={
        "model": "qwen/qwen3-coder-next",
        "messages": [
            {
                "role": "system",
                "content": (
                    "Vous êtes un assistant de codage. Expliquez clairement les risques "
                    "et gardez les recommandations limitées au code fourni."
                ),
            },
            {
                "role": "user",
                "content": (
                    "Examinez cette fonction Python pour les bogues :\n\n"
                    "def normalize(items):\n"
                    "    return [x.strip().lower() for x in items]\n"
                ),
            },
        ],
        "temperature": 0.2,
        "max_tokens": 600,
    },
    timeout=60,
)

response.raise_for_status()
data = response.json()
print(data["choices"][0]["message"]["content"])

Cet exemple est volontairement simple. Ajoutez le streaming, les outils ou la sortie structurée seulement après que la demande de base fonctionne dans votre environnement.

Étape 3 : Utiliser Qwen3 Coder Next dans une boucle d’agent

Un agent de codage est une boucle autour du modèle. Le modèle propose l’action suivante ; votre application décide si elle doit l’exécuter, puis renvoie le résultat.

Pour une boucle d’agent de codage minimale, gardez l’espace d’actions restreint :

ActionCe que fait votre application
inspect_fileLit un chemin de fichier autorisé et retourne le contenu pertinent.
search_codeRecherche dans le dépôt avec une requête limitée.
propose_patchDemande au modèle de produire un plan de correctif ou un diff pour révision.
finishTermine la boucle avec un résumé et les risques restants.

Ne donnez pas au modèle un accès illimité au shell. Traitez chaque action suggérée comme une demande que votre application valide. Une bonne validation inclut des listes blanches de chemins, une taille de fichier maximale, des listes blanches de commandes si les commandes sont prises en charge, des limites de délai d’attente et une approbation humaine avant d’appliquer les modifications.

Une boucle simple peut ressembler à ceci :

import json
import os
import requests

API_URL = "https://api.novita.ai/openai/v1/chat/completions"
MODEL = "qwen/qwen3-coder-next"

def call_model(messages):
    response = requests.post(
        API_URL,
        headers={
            "Authorization": f"Bearer {os.environ['NOVITA_API_KEY']}",
            "Content-Type": "application/json",
        },
        json={
            "model": MODEL,
            "messages": messages,
            "temperature": 0.1,
            "max_tokens": 1200,
            "response_format": {"type": "json_object"},
        },
        timeout=60,
    )
    response.raise_for_status()
    return response.json()["choices"][0]["message"]["content"]

messages = [
    {
        "role": "system",
        "content": (
            "Vous êtes un planificateur d'agent de codage. Retournez uniquement du JSON avec les clés "
            "action, path, query, rationale et final_answer. Les actions autorisées "
            "sont inspect_file, search_code, propose_patch et finish."
        ),
    },
    {
        "role": "user",
        "content": (
            "Nous devons trouver pourquoi normalize_user plante lorsque l'email est manquant. "
            "Commencez par choisir la prochaine étape d'inspection sécurisée."
        ),
    },
]

raw = call_model(messages)
decision = json.loads(raw)
print(decision)

Cet exemple utilise le mode JSON pour garder le parseur d’application simple. En production, validez que la réponse contient une action autorisée et que les champs comme path et query correspondent à vos règles de sécurité avant d’exécuter quoi que ce soit.

Étape 4 : Ajouter une sortie structurée pour les décisions de l’agent

L’API de complétion de chat de Novita AI inclut response_format, avec les options json_object et json_schema. Qwen3 Coder Next est listé avec la prise en charge des sorties structurées dans la bibliothèque de modèles, donc les objets de décision structurés sont adaptés à l’orchestration des agents de codage.

Utilisez la sortie structurée pour les décisions que votre logiciel doit analyser de manière fiable :

  • classer si une modification est nécessaire ;
  • retourner un plan de correctif avec les chemins de fichiers et les notes de risque ;
  • décider si plus de contexte est requis ;
  • produire une liste de contrôle de test ;
  • émettre un résumé final qui sépare les changements de comportement, la validation et les risques.

Pour une validation plus stricte, utilisez json_schema et gardez le schéma petit. La sortie du modèle reste une entrée non fiable pour votre programme, alors validez-la après l’analyse.

schema = {
    "name": "coding_agent_decision",
    "schema": {
        "type": "object",
        "properties": {
            "action": {
                "type": "string",
                "enum": ["inspect_file", "search_code", "propose_patch", "finish"],
            },
            "path": {"type": "string"},
            "query": {"type": "string"},
            "rationale": {"type": "string"},
            "risk": {"type": "string"},
        },
        "required": ["action", "rationale", "risk"],
        "additionalProperties": False,
    },
    "strict": True,
}

payload = {
    "model": "qwen/qwen3-coder-next",
    "messages": [
        {
            "role": "system",
            "content": "Retournez la prochaine décision d'agent de codage au format JSON structuré.",
        },
        {
            "role": "user",
            "content": "Trouvez la première étape la plus sûre pour déboguer un test de connexion qui échoue.",
        },
    ],
    "response_format": {
        "type": "json_schema",
        "json_schema": schema,
    },
    "temperature": 0.1,
    "max_tokens": 800,
}

Utilisez l’appel de fonction lorsque votre application a déjà une couche de distribution d’outils. La documentation de l’API Novita AI documente un champ tools où les fonctions peuvent être fournies. Le modèle peut générer des entrées JSON pour ces fonctions, mais votre application exécute toujours la fonction et retourne les observations dans un tour ultérieur. Gardez les descriptions des outils précises et évitez d’exposer des opérations destructrices à moins qu’elles ne nécessitent une approbation explicite.

Étape 5 : Planifier le contexte, la sortie et le coût

Qwen3 Coder Next a une taille de contexte indiquée de 262 144 tokens et une taille de sortie maximale indiquée de 65 536 tokens sur Novita AI. Cela laisse de la place aux agents de codage pour un contexte multi-fichiers, mais des prompts plus volumineux augmentent le coût et peuvent diluer l’attention du modèle.

Utilisez une étape de récupération au lieu de déverser tout un dépôt dans chaque requête :

  1. Commencez par la demande de l’utilisateur, le message d’erreur pertinent et la carte du dépôt.
  2. Demandez au modèle de choisir les fichiers à inspecter.
  3. Ajoutez uniquement les extraits ou fichiers sélectionnés.
  4. Demandez un plan de correctif limité avant de demander un diff.
  5. Gardez un court résumé des échanges plutôt que de rejouer chaque observation précédente.

Le coût est basé sur les tokens d’entrée et de sortie. Avec les prix indiqués de 0,20 $ par million de tokens d’entrée et 1,50 $ par million de tokens de sortie, des diffs générés verbeux peuvent coûter plus cher qu’une analyse concise. Réglez max_tokens sur la plus petite valeur qui convient à l’étape. Par exemple, une étape de planification peut nécessiter des centaines de tokens, tandis qu’une explication finale de correctif peut en nécessiter davantage.

Les limites de débit comptent également dans une boucle d’agent. La bibliothèque de modèles liste le quota T1 à 30 RPM pour Qwen3 Coder Next, avec des paliers RPM supérieurs affichés dans le catalogue. Concevez votre agent pour réessayer les réponses 429 avec backoff, évitez les boucles parallèles qui inspectent à plusieurs reprises les mêmes fichiers et mettez en cache les résumés lorsque c’est approprié.

Dépannage

ProblèmeCause probableCorrectif
Erreur 401 ou d’authentificationClé API manquante, expirée ou mal forméeVérifiez l’en-tête Authorization: Bearer $NOVITA_API_KEY et régénérez la clé si nécessaire.
Modèle introuvableID de modèle incorrectUtilisez exactement qwen/qwen3-coder-next.
La sortie n’est pas du JSON validePrompt ou schéma trop laxisteUtilisez response_format, baissez temperature et validez l’objet parsé.
Contexte trop volumineuxTrop de fichiers ou de longs logs dans une seule requêteRécupérez des extraits plus petits et résumez les tours précédents.
Boucle d’agent sans progressionEspace d’actions trop large ou observations répétéesAjoutez une limite maximale d’itérations et exigez une nouvelle justification pour chaque étape.
Action d’outil inattendueLe modèle a suggéré une action que votre application ne devrait pas exécuterAppliquez des listes blanches et des garde-fous en dehors du modèle.
Erreurs de limite de débitTrop d’appels parallèles ou boucles de réessai serréesAjoutez un backoff exponentiel et mettez en file d’attente les étapes de l’agent.

FAQ

Qwen3 Coder Next est-il disponible via l’API Novita AI ?

Oui. La bibliothèque de modèles Novita AI liste Qwen3 Coder Next comme un LLM serverless avec l’ID de modèle qwen/qwen3-coder-next.

Quel point de terminaison dois-je utiliser pour Qwen3 Coder Next ?

Utilisez le point de terminaison de complétion de chat compatible OpenAI : POST https://api.novita.ai/openai/v1/chat/completions. Le catalogue de modèles liste également une famille de points de terminaison anthropic, mais les exemples exécutables de ce guide utilisent les complétions de chat.

Combien coûte Qwen3 Coder Next sur Novita AI ?

Le catalogue Novita AI vérifié liste Qwen3 Coder Next à 0,20 $ par million de tokens d’entrée et 1,50 $ par million de tokens de sortie. Revérifiez les prix dans la bibliothèque de modèles avant le lancement car les prix peuvent changer.

Quelles sont les limites de contexte et de sortie ?

Le catalogue Novita AI vérifié liste une taille de contexte de 262 144 tokens et un maximum de tokens de sortie de 65 536 pour Qwen3 Coder Next.

Qwen3 Coder Next prend-il en charge l’appel de fonction et les sorties structurées ?

Oui. La bibliothèque de modèles Novita AI liste Qwen3 Coder Next avec les fonctionnalités function-calling et structured-outputs. Votre application doit toujours valider et exécuter toute action d’outil.

Qwen3 Coder Next peut-il modifier directement mon dépôt ?

Non. L’API renvoie une sortie de modèle. La lecture du dépôt, l’exécution de commandes, l’application de correctifs, les tests et les approbations doivent être implémentés dans votre propre runtime d’agent.