Utiliser les Connecteurs dans les conversations

Après avoir enregistré un Connecteur et l'avoir connecté, vous pouvez l'attacher à une conversation. Le modèle découvre les outils du Connecteur et appelle ceux qui correspondent à la requête.

Cette page explique comment attacher un Connecteur, filtrer ses outils, le combiner avec des outils intégrés et l'ajouter à un agent pour que chaque conversation avec cet agent puisse l'utiliser.

i
Information
Attacher un Connecteur à une conversation

Attacher un Connecteur à une conversation

Pour attacher un Connecteur, ajoutez une entrée au tableau tools avec type: "connector" et le nom ou l'ID du Connecteur dans connector_id.

Le modèle peut appeler tous les outils exposés par le Connecteur. Pour restreindre la liste, consultez Filtrer les outils.

import asyncio
from mistralai.client import Mistral

client = Mistral(api_key="your-api-key")


async def main() -> None:
    response = await client.beta.conversations.start_async(
        model="mistral-small-latest",
        inputs=[
            {
                "role": "user",
                "content": "Using deepwiki, tell me about the structure of the sqlite/sqlite repository.",
            }
        ],
        tools=[
            {
                "type": "connector",
                "connector_id": "my_deepwiki",  # name or UUID
            },
        ],
    )
    for output in response.outputs:
        if output.type == "message.output":
            print(output.content)


asyncio.run(main())
Filtrer les outils

Filtrer les outils

Pour choisir les outils d'un Connecteur que le modèle peut appeler, ajoutez un objet tool_configuration. Définissez include pour lister les outils à autoriser, ou exclude pour lister les outils à bloquer. Utilisez l'un ou l'autre, pas les deux.

import asyncio
from mistralai.client import Mistral

client = Mistral(api_key="your-api-key")


async def main() -> None:
    # Exclude specific tools
    response = await client.beta.conversations.start_async(
        model="mistral-small-latest",
        inputs=[{"role": "user", "content": "What tools do you have access to?"}],
        tools=[
            {
                "type": "connector",
                "connector_id": "my_deepwiki",
                "tool_configuration": {
                    "exclude": ["read_wiki_structure"],
                },
            },
        ],
    )

    # Include only specific tools
    response = await client.beta.conversations.start_async(
        model="mistral-small-latest",
        inputs=[{"role": "user", "content": "What tools do you have access to?"}],
        tools=[
            {
                "type": "connector",
                "connector_id": "my_deepwiki",
                "tool_configuration": {
                    "include": ["ask_wiki_question"],
                },
            },
        ],
    )


asyncio.run(main())
Astuce

Pour exiger une approbation avant l'exécution d'un outil, par exemple un outil qui envoie un e-mail ou modifie des données, listez-le dans requires_confirmation de l'objet tool_configuration. Pour le processus complet, consultez Human-in-the-loop.

Combiner des Connecteurs avec des outils intégrés

Combiner des Connecteurs avec des outils intégrés

Vous pouvez passer des outils intégrés, comme web_search, code_interpreter, image_generation et document_library, dans le même tableau tools que les Connecteurs. Le modèle choisit l'outil à appeler en fonction de la requête.

Avertissement

web_search, web_search_premium et code_interpreter fonctionnent avec l'API de conversations (/v1/conversations) et l'API d'agents. Ils ne sont pas pris en charge dans l'API Chat Completions (/v1/chat/completions). Les outils intégrés comme image_generation sont également pris en charge dans l'API Chat Completions.

import asyncio
from mistralai.client import Mistral

client = Mistral(api_key="your-api-key")


async def main() -> None:
    response = await client.beta.conversations.start_async(
        model="mistral-small-latest",
        inputs=[
            {
                "role": "user",
                "content": "Search the web for the latest SQLite release, then use deepwiki to find where the version is defined in the sqlite/sqlite repo.",
            }
        ],
        tools=[
            {"type": "web_search"},
            {"type": "connector", "connector_id": "my_deepwiki"},
        ],
    )
    for output in response.outputs:
        if output.type == "message.output":
            print(output.content)


asyncio.run(main())
Ajouter un Connecteur à un agent

Ajouter un Connecteur à un agent

Lorsqu'un agent a toujours besoin des mêmes outils, par exemple un agent d'assistance qui interroge un CRM, ajoutez le Connecteur lors de la création de l'agent. Chaque conversation que vous démarrez avec cet agent peut alors appeler les outils du Connecteur, sans tableau tools.

import asyncio
from mistralai.client import Mistral

client = Mistral(api_key="your-api-key")


async def main() -> None:
    # Create the agent with a connector
    agent = await client.beta.agents.create_async(
        name="deepwiki_agent",
        description="Agent with DeepWiki access for code repository exploration",
        model="mistral-small-latest",
        instructions="You are a helpful assistant that can explore code repositories using DeepWiki. Be concise.",
        tools=[
            {
                "type": "connector",
                "connector_id": "my_deepwiki",
            },
        ],
    )

    # Start a conversation using the agent. No tools needed here
    response = await client.beta.conversations.start_async(
        agent_id=agent.id,
        inputs=[
            {"role": "user", "content": "What is the main purpose of the sqlite repository?"}
        ],
    )
    for output in response.outputs:
        if output.type == "message.output":
            print(output.content)


asyncio.run(main())
Avertissement

Pour démarrer une conversation avec un agent, passez agent_id au lieu de model. Vous ne pouvez pas passer les deux.