Aller au contenu principal

Agents vs Chatbots : quand un agent est-il nécessaire ?

Un chatbot ne suffit pas toujours

Vous avez probablement déjà utilisé l’API Chat Completions de Mistral pour créer des assistants conversationnels. Pour beaucoup de cas d’usage, c’est amplement suffisant. Mais certaines tâches nécessitent davantage qu’une simple réponse textuelle.

Dans cette leçon, vous apprendrez à distinguer les situations où un simple appel à chat.complete() suffit de celles qui justifient le passage à l’API Agents.

Chat Completions vs Agents API

Chat Completions — le modèle classique

Avec chat.complete(), vous envoyez une liste de messages et recevez une réponse. C’est stateless : le modèle n’a aucune mémoire entre les appels. C’est à vous de gérer l’historique.

from mistralai import Mistral

client = Mistral(api_key="votre-cle")

response = client.chat.complete(
    model="mistral-large-latest",
    messages=[
        {"role": "user", "content": "Quelle est la capitale de la France ?"}
    ]
)
print(response.choices[0].message.content)

Ce pattern est parfait pour :

  • Des questions-réponses simples
  • De la génération de texte (résumés, traductions, rédaction)
  • De la classification ou de l’extraction d’informations
  • Du function calling ponctuel

Agents API — le modèle autonome

Avec l’API Agents, vous créez un agent persistant avec des instructions, des outils, et un comportement défini. L’agent maintient son état à travers les conversations et peut agir de manière autonome.

agent = client.beta.agents.create(
    model="mistral-large-latest",
    name="Assistant Recherche",
    instructions="Vous êtes un assistant de recherche. Utilisez la recherche web pour répondre avec des sources.",
    tools=[{"type": "web_search"}]
)

Quand passer aux agents ?

Vous avez besoin d’un agent si :

  • La tâche nécessite des outils — Votre assistant doit chercher sur le web, exécuter du code, ou interroger des documents
  • L’état doit persister — Vous voulez que le modèle se souvienne des échanges précédents sans tout renvoyer à chaque requête
  • Plusieurs étapes sont nécessaires — La réponse requiert une chaîne de raisonnement avec des actions intermédiaires
  • Plusieurs spécialités sont requises — Un agent financier doit déléguer à un agent de recherche web, puis à un agent calculateur
  • Vous voulez une exécution côté serveur — Les outils s’exécutent dans le cloud Mistral, pas sur votre infrastructure

Un chatbot suffit si :

  • La tâche est une simple transformation texte → texte
  • Vous gérez déjà l’historique côté client
  • Vous n’avez pas besoin d’outils intégrés
  • La réponse ne nécessite qu’un seul tour de raisonnement

Le spectre de complexité

Pensez à la complexité comme un spectre croissant :

  1. Chat simple — Question → Réponse (Chat Completions)
  2. Chat avec outils — Question → Appel de fonction → Réponse (Chat Completions + function calling)
  3. Agent unique — Requête → Planification → Multiples actions → Réponse (Agents API)
  4. Multi-agents — Requête → Agent routeur → Agents spécialisés → Synthèse → Réponse (Agents API + Handoffs)

La règle est simple : utilisez le niveau le plus simple qui satisfait votre besoin. Ne déployez pas un système multi-agents pour répondre à des FAQ.

Exemple comparatif

Avec Chat Completions

# Vous gérez tout manuellement
messages = [{"role": "user", "content": "Quel temps fait-il à Paris ?"}]
response = client.chat.complete(model="mistral-large-latest", messages=messages)
# Le modèle ne peut PAS chercher sur le web — il invente ou dit qu'il ne sait pas

Avec un Agent

# L'agent a accès à la recherche web
agent = client.beta.agents.create(
    model="mistral-large-latest",
    name="Météo Agent",
    instructions="Répondez aux questions météo en utilisant la recherche web.",
    tools=[{"type": "web_search"}]
)

response = client.beta.conversations.start(
    agent_id=agent.id,
    inputs="Quel temps fait-il à Paris ?"
)
# L'agent cherche automatiquement sur le web et cite ses sources

Coût et latence

L’API Agents introduit une surcharge par rapport à Chat Completions :

  • Latence — L’agent peut effectuer plusieurs tours internes (recherche + raisonnement + réponse)
  • Tokens — Les instructions système et le contexte de conversation sont envoyés à chaque tour
  • Stockage — Les conversations persistent côté Mistral (configurable avec store=False)

Cette surcharge est justifiée quand la tâche le requiert. Pour un simple chatbot FAQ, restez sur Chat Completions.

Points clés à retenir

  • Chat Completions est stateless et suffisant pour les tâches simples
  • L’API Agents ajoute la persistance, les outils intégrés et l’orchestration multi-agents
  • Utilisez toujours le niveau de complexité le plus bas qui satisfait votre besoin
  • Le passage aux agents se justifie quand vous avez besoin d’outils, de persistance ou de multi-agents