Devstral en Pratique
Trois façons d’utiliser Devstral
Devstral est accessible via plusieurs interfaces, chacune adaptée à un contexte différent. Dans cette leçon, vous découvrirez comment utiliser Devstral via l’API Python, via Mistral Vibe CLI, et via Le Chat.
Via l’API Mistral
L’API est l’interface la plus flexible. Elle vous permet de construire vos propres workflows agentiques :
Appel simple (chat)
from mistralai import Mistral
import os
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
response = client.chat.complete(
model="devstral-small-latest",
messages=[
{
"role": "system",
"content": "Vous êtes un agent de développement expert. Analysez le code fourni et proposez des améliorations."
},
{
"role": "user",
"content": """Voici un fichier Python qui gère l'authentification.
Identifiez les problèmes de sécurité et proposez des corrections :
def login(username, password):
query = f"SELECT * FROM users WHERE username='{username}' AND password='{password}'"
user = db.execute(query).fetchone()
if user:
session['user_id'] = user['id']
return True
return False
"""
}
],
temperature=0,
max_tokens=2000,
)
print(response.choices[0].message.content)
Appel agentique avec outils
tools = [
{
"type": "function",
"function": {
"name": "lire_fichier",
"description": "Lire le contenu d'un fichier source",
"parameters": {
"type": "object",
"properties": {
"chemin": {
"type": "string",
"description": "Chemin relatif du fichier"
}
},
"required": ["chemin"]
}
}
},
{
"type": "function",
"function": {
"name": "ecrire_fichier",
"description": "Écrire du contenu dans un fichier",
"parameters": {
"type": "object",
"properties": {
"chemin": {"type": "string"},
"contenu": {"type": "string"}
},
"required": ["chemin", "contenu"]
}
}
},
{
"type": "function",
"function": {
"name": "executer_commande",
"description": "Exécuter une commande shell",
"parameters": {
"type": "object",
"properties": {
"commande": {"type": "string"}
},
"required": ["commande"]
}
}
}
]
response = client.chat.complete(
model="devstral-small-latest",
messages=[
{
"role": "user",
"content": "Explore le projet et ajoute des type hints Python à tous les fichiers du dossier src/utils/"
}
],
tools=tools,
tool_choice="auto",
)
# Traiter les tool_calls retournées par Devstral
for tool_call in response.choices[0].message.tool_calls:
print(f"Outil : {tool_call.function.name}")
print(f"Arguments : {tool_call.function.arguments}")
Via Mistral Vibe CLI
Vibe est l’assistant de code en ligne de commande de Mistral AI. C’est la manière la plus simple d’utiliser Devstral en mode agentique :
Installation
# Installer Vibe via npm
npm install -g @mistralai/vibe
# Ou via pip
pip install mistral-vibe
Utilisation
# Lancer Vibe dans votre projet
cd mon-projet
vibe
# Vibe ouvre une session interactive
> Explique-moi l'architecture de ce projet
> Ajoute une route API /health qui retourne le statut du serveur
> Corrige le bug #42 décrit dans les issues GitHub
Vibe utilise Devstral comme modèle par défaut et lui fournit automatiquement les outils nécessaires (lecture/écriture de fichiers, exécution de commandes). Vous n’avez pas à gérer la boucle agentique vous-même.
Configuration
Tapez /config dans Vibe pour choisir le modèle et les paramètres :
Modèle : devstral-small-latest (par défaut)
API Key : configurée via MISTRAL_API_KEY
Mode : agentique (tool use activé)
Via Le Chat
Le Chat (chat.mistral.ai) est l’interface web de Mistral AI. Devstral y est disponible comme option de modèle pour les conversations de code :
Quand utiliser Le Chat ?
- Pour des questions rapides sur du code
- Pour du prototypage sans configuration
- Pour partager des conversations avec des collègues
- Pour comparer les réponses entre Devstral et d’autres modèles Mistral
Limites de Le Chat
- Pas d’accès direct au filesystem — vous devez copier-coller le code
- Pas de tool use natif — Le Chat n’exécute pas de commandes
- Pas de boucle agentique — chaque réponse est indépendante
Pour un usage agentique complet, l’API ou Vibe sont préférables.
Comparaison des trois interfaces
| Critère | API Python | Vibe CLI | Le Chat |
|---|---|---|---|
| Tool use | Oui (vous gérez) | Oui (automatique) | Non |
| Accès filesystem | Via vos outils | Natif | Non |
| Boucle agentique | Vous implémentez | Intégrée | Non |
| Configuration | Totale | Modérée | Minimale |
| Cas d’usage | Pipelines, CI/CD | Développement quotidien | Exploration rapide |
Bonnes pratiques
- Soyez précis dans vos instructions — “Ajoute la validation d’email dans src/auth/validators.py en utilisant le pattern existant” est meilleur que “Ajoute de la validation”
- Fournissez le contexte — mentionnez les fichiers pertinents, les conventions, les contraintes
- Vérifiez les modifications — même un bon agent peut introduire des régressions
- Utilisez le bon outil — Vibe pour le développement quotidien, l’API pour l’automatisation, Le Chat pour l’exploration
Points clés à retenir
- L’API Python offre un contrôle total sur le workflow agentique avec les outils
- Vibe CLI est la manière la plus simple d’utiliser Devstral en mode agent
- Le Chat est adapté aux questions rapides mais ne supporte pas le mode agentique
- Chaque interface a ses forces : API pour l’automatisation, Vibe pour le quotidien, Le Chat pour l’exploration
- La précision des instructions et la vérification des résultats restent essentielles