Plugins

Les plugins Mistral Workflows sont des packages Python standards qui exposent des workflows, activités et dépendances réutilisables sous l’espace de noms mistralai.workflows.plugins. Installez-les avec pip et importez-les dans votre code comme n’importe quel autre package.

from mistralai.workflows.plugins.mistralai import mistralai_chat_complete
from mistralai.workflows.plugins.mistralai import Agent, Runner
Plugins officiels

Plugins officiels

Plugin Mistral AI

Plugin Mistral AI

Package : mistralai-workflows-plugins-mistralai

Fournit une intégration native de Mistral AI pour les opérations LLM, l’exécution d’agents, la gestion de session et la prise en charge MCP au sein des workflows.

Activités principales :

ActivitéDescription
mistralai_chat_completeChat completion à tour unique
mistralai_chat_streamChat completion en flux
mistralai_chat_parseGénération de chat avec analyse structurée du résultat
mistralai_embeddingsGénérer des embeddings de texte
mistralai_ocrExtraire du texte d’images et de documents
mistralai_create_agentCréer un agent distant
mistralai_update_agentMettre à jour un agent distant
mistralai_start_conversationDémarrer une conversation avec l’agent
mistralai_start_conversation_streamDémarrer une conversation en flux avec l’agent
mistralai_append_conversationAjouter des messages à une conversation existante
mistralai_append_conversation_streamAjouter des messages à une conversation existante en flux

Composants principaux :

ComposantDescription
AgentDéfinition d’agent incluant modèle, outils et configuration
RunnerOrchestration de l’exécution de l’agent (conversation et boucles outils)
LocalSessionSession d’agent en local (processus actuel)
RemoteSessionSession d’agent distante et avec état
MCPStdioConfigConfiguration pour serveurs MCP locaux (stdio)
MCPSSEConfigConfiguration pour serveurs MCP distants (SSE)
MCPConfigAlias de type union pour MCPStdioConfig | MCPSSEConfig
collect_mcp_toolsActivité : collecte de définitions d’outils depuis un ou plusieurs serveurs MCP
execute_mcp_toolActivité : exécuter un outil nommé sur son serveur MCP
get_mistral_clientDépendance : retourne un client mistralai.Mistral configuré

Exemple — chat completion :

import mistralai.workflows as workflows
from mistralai.workflows import workflow
from mistralai.workflows.plugins.mistralai import (
    ChatCompletionRequest,
    UserMessage,
    mistralai_chat_complete,
)
from pydantic import BaseModel


class Input(BaseModel):
    text: str


@workflow.define(name="summarize")
class SummarizeWorkflow:
    @workflow.entrypoint
    async def run(self, params: Input) -> str:
        request = ChatCompletionRequest(
            model="mistral-large-latest",
            messages=[UserMessage(content=f"Summarize this text:\n\n{params.text}")],
        )
        result = await mistralai_chat_complete(request)
        return result.choices[0].message.content

Pour la documentation complète sur Agent, Runner, les sessions, MCP, et la gestion multi-agents, consultez le guide Agents durables.

Plugin Webhook

Plugin Webhook

Package : mistralai-workflows-plugins-webhook

Fournit le routage HTTP/webhook et le fan-out pour construire des workflows événementiels. Utilisez-le pour recevoir des webhooks de services externes (GitHub, Slack, Linear, etc.) et les router vers des instances de workflow en cours.

Composants principaux :

ComposantDescription
HTTPRouterWorkflowClasse de base pour les workflows de routage de webhook
RouteDispatcherDistribue les requêtes HTTP reçues vers les méthodes de gestion
SearchableWorkflowMixin pour exposer les attributs de recherche pour le ciblage des workflows
postDécorateur pour enregistrer une méthode comme gestionnaire POST HTTP
SearchAttributePaire clé/valeur servant à cibler des instances de workflows en cours
search_workflow_execution_idsTrouver les IDs des instances de workflows correspondant aux critères de recherche
send_signalDiffuse un signal à plusieurs instances de workflow
WebhookFanOutResultRésultat de send_signal (liste d’IDs cibles et nombre dispatché)
HTTPRequest / HTTPResponseTypes de requête et de réponse

Des helpers spécifiques à des fournisseurs (expérimental) sont disponibles sous webhook.github, webhook.slack et webhook.linear.

Exemple :

from mistralai.workflows import workflow
from mistralai.workflows.plugins.webhook import (
    HTTPRouterWorkflow,
    HTTPRequest,
    HTTPResponse,
    post,
)

@workflow.define(name="my-webhook-router")
class MyWebhookRouter(HTTPRouterWorkflow):
    @post("/")
    async def handle(self, request: HTTPRequest) -> HTTPResponse:
        return HTTPResponse(status_code=200, body={"ok": True})
Installation

Installation

Installez les plugins dont vous avez besoin avec le SDK principal :

pip install mistralai-workflows
pip install mistralai-workflows-plugins-mistralai
pip install mistralai-workflows-plugins-webhook
Créer vos propres bibliothèques réutilisables

Créer vos propres bibliothèques réutilisables

Vous pouvez créer des packages personnalisés pour partager des workflows, activités et dépendances réutilisables au sein de votre organisation.

Note

L’espace de noms mistralai.workflows.plugins est réservé aux plugins maintenus par Mistral. Pour votre propre code réutilisable, utilisez votre propre nom de package de premier niveau.

Organisation des fichiers :

acme-workflows/
├── pyproject.toml
├── acme_workflows/
│   ├── __init__.py
│   ├── activities.py
│   └── workflows.py
└── tests/

pyproject.toml :

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "acme-workflows"
version = "0.1.0"
dependencies = [
    "mistralai-workflows>=2.0.0",
]

Après avoir installé votre package, importez-le directement :

from acme_workflows.activities import my_custom_activity
from acme_workflows.workflows import my_rag_pipeline