Agents & Conversations

Agents est une fonctionnalité qui permet aux développeurs de créer des modèles prédéfinis avec leurs propres prompts système et outils. Conversations est quant à elle une fonctionnalité qui permet aux développeurs de créer un historique d'interactions avec un assistant utilisant des Agents ou nos modèles directement.

Objets

Objets

Nous introduisons trois nouveaux objets principaux utilisés par notre API :

  • Agents : Un ensemble de valeurs présélectionnées pour augmenter les capacités du modèle, telles que les outils, les instructions et les paramètres de complétion.
  • Conversation : Un historique d'interactions, d'événements passés et d'entrées avec un assistant, tels que des messages et des exécutions d'outils. Les Conversations peuvent être initiées par un Agent ou un modèle.
  • Entry : Une action qui peut être créée par l'utilisateur ou un assistant. Elle apporte une représentation plus flexible et expressive des interactions entre un utilisateur et un ou plusieurs assistants. Cela permet un meilleur contrôle de la description des événements.
Astuce

Vous pouvez créer des Conversations sans créer d'Agents. Ces deux API sont indépendantes.

Pour tous les détails, consultez nos spécifications API Agents et Conversations.

Agents

Agents

Création et gestion des Agents

Les Agents sont un ensemble de valeurs présélectionnées, telles que les outils, les instructions et les paramètres de complétion, qui définiront le comportement du modèle.

Lors de la création d'un Agent, plusieurs paramètres et valeurs doivent être définis au préalable. Il s'agit de :

  • model : Le modèle que votre agent utilisera parmi nos modèles disponibles pour la chat completion.
  • description : La description de l'agent, liée à la tâche qu'il doit accomplir ou au cas d'usage concerné.
  • name : Le nom de votre agent.
  • instructions optionnel : Les instructions principales de l'agent, également appelées prompt système. Elles doivent décrire précisément la tâche principale de votre agent.
  • tools optionnel : Une liste d'outils que le modèle peut utiliser. Il existe actuellement différents types d'outils :
    • function : Outils définis par l'utilisateur, avec un usage similaire à l'appel de fonction standard utilisé avec la chat completion.
    • web_search/web_search_premium : Notre outil intégré pour la recherche web.
    • code_interpreter : Notre outil intégré pour l'exécution de code.
    • image_generation : Notre outil intégré pour la génération d'images.
    • document_library : Notre outil RAG intégré pour l'ancrage de connaissances et la recherche sur des données personnalisées.
  • completion_args optionnel : Arguments d'échantillonnage standard de chat completion. Tous les arguments de chat completion sont acceptés.
Créer un Agent

Créer un Agent

import os
from mistralai.client import Mistral

api_key = os.environ["MISTRAL_API_KEY"]
client = Mistral(api_key)

simple_agent = client.beta.agents.create(
    model="mistral-medium-latest",
    description="A simple Agent with persistent state.",
    name="Simple Agent"
)

Lors de la création d'un agent, vous recevez un objet Agent avec un ID d'agent. Vous pouvez ensuite utiliser cet ID pour avoir des conversations.

Voici un exemple d'Agent de Recherche Web utilisant notre outil intégré :

websearch_agent = client.beta.agents.create(
    model="mistral-medium-latest",
    description="Agent able to search information over the web, such as news, weather, sport results...",
    name="Websearch Agent",
    instructions="You have the ability to perform web searches with `web_search` to find up-to-date information.",
    tools=[{"type": "web_search"}],
    completion_args={
        "temperature": 0.3,
        "top_p": 0.95,
    }
)

Vous trouverez plus d'informations ici.

Conversations

Conversations

Conversations

Les Conversations sont quant à elles un historique d'interactions avec un assistant. Elles sont plus flexibles et expressives que l'API Chat Completion, permettant un meilleur contrôle de la description des événements.

Une fois votre agent créé, vous pouvez démarrer des conversations à tout moment tout en gardant la même conversation persistante. Vous démarrez d'abord une conversation en fournissant :

  • agent_id : L'ID de l'agent, créé lors de la création de l'Agent.
  • inputs : Le message pour démarrer la conversation. Il peut s'agir d'une chaîne de caractères avec le premier message ou question de l'utilisateur, ou de l'historique des messages.
Astuce

Vous pouvez démarrer et continuer des conversations sans créer d'Agents. Ces deux API sont indépendantes, dans ce cas vous pouvez utiliser le paramètre model au lieu de agent_id.

La création d'une Conversation renverra un ID de conversation.

Pour continuer la conversation et ajouter les échanges au fur et à mesure, vous fournissez deux valeurs :

  • conversation_id : L'ID créé lors du démarrage ou de l'ajout de la conversation qui correspond à l'historique de conversation stocké en interne.
  • inputs : Le message ou la réponse suivant(e). Il peut s'agir d'une chaîne de caractères ou d'une liste de messages.

Un nouvel ID de Conversation est fourni à chaque ajout.

Vous pouvez également désactiver le stockage automatique avec store=False ; cela empêchera le nouvel historique d'être stocké sur notre cloud.

Si l'agent a des guardrails configurés, ils sont automatiquement appliqués à toutes les conversations. Vous pouvez les remplacer en passant un champ guardrails directement sur les requêtes POST /v1/conversations avec un modèle. Voir Guardrails personnalisés pour plus de détails.

Nous fournissons également le paramètre handoff_execution, qui dispose actuellement de deux modes : server ou client.

  • server : Exécute le handoff comme prévu en interne sur nos serveurs cloud ; c'est le paramètre par défaut.
  • client : Lorsqu'un handoff est déclenché, une réponse est fournie directement à l'utilisateur, lui permettant de gérer le handoff avec contrôle.

Pour plus d'informations concernant les handoffs, consultez cette section.

Comment gérer les conversations

Comment gérer les conversations

Vous trouverez ci-dessous des exemples de création et de gestion de conversations.

Comme mentionné précédemment, vous pouvez démarrer une conversation à tout moment avec votre Agent personnalisé ou avec un modèle spécifique de votre choix.

Pour démarrer une conversation avec un Agent, vous devez fournir l'ID de l'Agent et les inputs.

response = client.beta.conversations.start(
    agent_id=simple_agent.id,
    inputs="Who is Albert Einstein?",
    # inputs=[{"role": "user", "content": "Who is Albert Einstein?"}] is also valid
    # store=False
)

Sans Agent, l'interrogation de Conversations ressemblerait à ceci :

response = client.beta.conversations.start(
    model="mistral-medium-latest",
    inputs=[{"role": "user", "content": "Who is Albert Einstein?"}]
)