ToolProvider
ToolProvider インターフェースは、Editor が外部プラットフォームの統合 Tool を検出して解決する方法を定義します。Mastra には、ComposioToolProvider と ArcadeToolProvider という2つの組み込み実装があります。
Provider の設定と Studio のワークフローについては、Editor の Tool を参照してください。保存される選択内容と解決時の動作については、Tool 設定を参照してください。
ToolProvider インターフェースToolProvider インターフェースへの直接リンク
Provider は、メタデータと従来の検出・解決メソッドを公開します。Agent Builder の統合では、任意の VNext カタログ、接続、認可、ヘルスチェックの各メソッドも実装できます。
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)?:
ComposioToolProviderComposioToolProviderへの直接リンク
数百の統合 Tool にアクセスできるように、Composio に接続します。
使用例使用例への直接リンク
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!,
}),
},
})
コンストラクターのパラメーターコンストラクターのパラメーターへの直接リンク
apiKey:
allowedToolkits?:
allowedTools?:
defaultScope?:
Tool slugTool slugへの直接リンク
Composio の Tool は大文字の slug 形式を使用します:GITHUB_CREATE_ISSUE、SLACK_SEND_MESSAGE。
認証認証への直接リンク
接続では、デフォルトで作成者ごとのスコープを使用します。defaultScope: 'caller-supplied' を設定すると、リクエストコンテキストの MASTRA_RESOURCE_ID_KEY から解決された呼び出し元 ID ごとに認可を分類できます。認証済みの各リクエストに、安定した一意のリソース ID が含まれていることを確認してください。MastraAuthWorkos を使用する場合は、認証済みユーザーからこの値を設定するように mapUserToResourceId を構成します。
接続管理 Tool接続管理 Toolへの直接リンク
Composio は、Agent のチャットから認可を開始して監視するための Tool を提供します。allowedToolkits を設定する場合は、これらの Tool を利用できるように composio を含めます。
const editor = new MastraEditor({
toolProviders: {
composio: new ComposioToolProvider({
apiKey: process.env.COMPOSIO_API_KEY!,
allowedToolkits: ['composio', 'gmail'],
defaultScope: 'caller-supplied',
}),
},
})
Agent が必要とする接続管理 Tool だけを追加してください。
| Tool | 動作 |
|---|---|
COMPOSIO_MANAGE_CONNECTIONS | 呼び出し元が所有するセッションを通じて、チャット内に認可リンクを作成します。 |
COMPOSIO_WAIT_FOR_CONNECTIONS | Agent が続行する前に、呼び出し元が認可を完了するまで待機します。 |
COMPOSIO_WAIT_FOR_CONNECTIONS は任意です。使用しない場合は、認可を完了してチャットに戻り、Agent に続行するよう依頼します。接続されたアカウントは、以降のリクエストでも呼び出し元のリソース ID に関連付けられたままになります。
ArcadeToolProviderArcadeToolProviderへの直接リンク
認証機能を組み込んだ厳選された Tool カタログを利用できるように、Arcade に接続します。
使用例使用例への直接リンク
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!,
}),
},
})
コンストラクターのパラメーターコンストラクターのパラメーターへの直接リンク
apiKey:
baseURL?:
Tool slugTool slugへの直接リンク
Arcade の Tool は Toolkit.ToolName 形式を使用します:Github.GetRepository、Slack.SendMessage。
認証認証への直接リンク
従来の Arcade リゾルバーは、利用可能な場合、リクエストコンテキストの resourceId を使用します。利用できない場合は、指定された userId、共有の default ID の順にフォールバックします。default は、意図的に共有する統合にのみ使用してください。テナントを分離したデプロイでは、信頼できる安定した resourceId または明示的な userId を指定します。両方を省略すると、呼び出し元は分離されません。