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
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.
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
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.instructionsoptionnel : 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.toolsoptionnel : Une liste d'outils que le modèle peut utiliser. Il existe actuellement différentstypesd'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_argsoptionnel : Arguments d'échantillonnage standard de chat completion. Tous les arguments de chat completion sont acceptés.
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
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.
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
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?"}]
)