ToolProvider
L'interface ToolProvider définit la manière dont l'éditeur découvre et résout les tools d'intégration provenant de plateformes externes. Mastra comprend deux implémentations intégrées : ComposioToolProvider et ArcadeToolProvider.
Consultez les tools de l'Editor pour configurer le Provider et découvrir le workflow de Studio. Consultez la configuration des tools pour en savoir plus sur les sélections enregistrées et le comportement de résolution.
Interface ToolProviderLien direct vers Interface ToolProvider
Les Providers exposent des métadonnées ainsi que les anciennes méthodes de découverte et de résolution. Les intégrations Agent Builder peuvent également implémenter les méthodes VNext facultatives de catalogue, de connexion, d'autorisation et d'état de santé.
info:
displayName?:
capabilities?:
defaultScope?:
listToolkits()?:
listTools(params?):
getToolSchema(slug)?:
resolveTools(slugs, configs?, options?):
listToolkitsVNext()?:
listToolsVNext(options?)?:
resolveToolsVNext(options)?:
listConnectionFields(options)?:
getAuthStatus(authId)?:
getConnectionStatus(options)?:
listConnections(options)?:
getHealth()?:
revokeConnection(connectionId)?:
ComposioToolProviderLien direct vers ComposioToolProvider
Se connecte à Composio pour accéder à des centaines de tools d'intégration.
Exemple d'utilisationLien direct vers Exemple d'utilisation
import { MastraEditor } from '@mastra/editor'
import { ComposioToolProvider } from '@mastra/editor/composio'
const editor = new MastraEditor({
toolProviders: {
composio: new ComposioToolProvider({
apiKey: process.env.COMPOSIO_API_KEY!,
}),
},
})
Paramètres du constructeurLien direct vers Paramètres du constructeur
apiKey:
allowedToolkits?:
allowedTools?:
defaultScope?:
Slugs des toolsLien direct vers Slugs des tools
Les tools Composio utilisent des slugs en majuscules : GITHUB_CREATE_ISSUE, SLACK_SEND_MESSAGE.
AuthentificationLien direct vers Authentification
Par défaut, les connexions utilisent la portée par auteur. Définissez defaultScope: 'caller-supplied' pour regrouper les autorisations selon l'identité de l'appelant déterminée à partir de MASTRA_RESOURCE_ID_KEY dans le contexte de la requête. Veillez à ce que chaque requête authentifiée fournisse un identifiant de ressource stable et unique. Lorsque vous utilisez MastraAuthWorkos, configurez mapUserToResourceId afin de définir cette valeur à partir de l'utilisateur authentifié.
Tools de gestion des connexionsLien direct vers Tools de gestion des connexions
Composio fournit des tools permettant de démarrer et de surveiller l'autorisation depuis une conversation avec un agent. Lorsque allowedToolkits est défini, incluez composio pour rendre ces tools disponibles :
const editor = new MastraEditor({
toolProviders: {
composio: new ComposioToolProvider({
apiKey: process.env.COMPOSIO_API_KEY!,
allowedToolkits: ['composio', 'gmail'],
defaultScope: 'caller-supplied',
}),
},
})
Ajoutez uniquement les tools de gestion des connexions dont l'agent a besoin :
| Tool | Comportement |
|---|---|
COMPOSIO_MANAGE_CONNECTIONS | Crée un lien d'autorisation dans la conversation par l'intermédiaire d'une session appartenant à l'appelant. |
COMPOSIO_WAIT_FOR_CONNECTIONS | Attend que l'appelant termine l'autorisation avant que l'agent poursuive. |
COMPOSIO_WAIT_FOR_CONNECTIONS est facultatif. Sans ce tool, terminez l'autorisation et revenez à la conversation. Demandez ensuite à l'agent de poursuivre. Le compte connecté reste associé à l'identifiant de ressource de l'appelant pour les requêtes ultérieures.
ArcadeToolProviderLien direct vers ArcadeToolProvider
Se connecte à Arcade pour accéder à un catalogue de tools sélectionnés avec authentification intégrée.
Exemple d'utilisationLien direct vers Exemple d'utilisation
import { MastraEditor } from '@mastra/editor'
import { ArcadeToolProvider } from '@mastra/editor/arcade'
const editor = new MastraEditor({
toolProviders: {
arcade: new ArcadeToolProvider({
apiKey: process.env.ARCADE_API_KEY!,
}),
},
})
Paramètres du constructeurLien direct vers Paramètres du constructeur
apiKey:
baseURL?:
Slugs des toolsLien direct vers Slugs des tools
Les tools Arcade utilisent le format Toolkit.ToolName : Github.GetRepository, Slack.SendMessage.
AuthentificationLien direct vers Authentification
L'ancien résolveur Arcade utilise resourceId depuis le contexte de la requête lorsqu'il est disponible. Sinon, il se rabat sur le userId fourni, puis sur une identité default partagée. N'utilisez default que pour les intégrations volontairement partagées. Dans les déploiements où les locataires sont isolés, fournissez un resourceId fiable et stable ou un userId explicite. Omettre les deux n'isole pas les appelants.