ToolProvider
ToolProvider 介面定義 Editor 如何探索並解析外部平台提供的整合 Tool。Mastra 包含兩個內建實作:ComposioToolProvider 與 ArcadeToolProvider。
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)?:
ComposioToolProvider「ComposioToolProvider」的直接連結
連線至 Composio,以存取數百個整合 Tool。
使用範例「使用範例」的直接連結
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 slug「Tool slug」的直接連結
Composio Tool 使用大寫 slug 格式:GITHUB_CREATE_ISSUE、SLACK_SEND_MESSAGE。
驗證「驗證」的直接連結
連線預設使用 per-author 範圍。設定 defaultScope: 'caller-supplied',可依 request context 中 MASTRA_RESOURCE_ID_KEY 解析出的呼叫者身分分組授權。請確保每個已驗證的請求都提供穩定且唯一的資源 ID。使用 MastraAuthWorkos 時,請設定 mapUserToResourceId,以便從已驗證的使用者設定此值。
連線管理 Tool「連線管理 Tool」的直接連結
Composio 提供可從 Agent 對話啟動及監控授權的 Tool。設定 allowedToolkits 時,請加入 composio 以提供這些 Tool:
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 建立關聯,以供後續請求使用。
ArcadeToolProvider「ArcadeToolProvider」的直接連結
連線至 Arcade,以使用內建驗證功能的精選 Tool 目錄。
使用範例「使用範例」的直接連結
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 slug「Tool slug」的直接連結
Arcade Tool 使用 Toolkit.ToolName 格式:Github.GetRepository、Slack.SendMessage。
驗證「驗證」的直接連結
舊版 Arcade 解析器會在 request context 提供 resourceId 時使用該值,否則會依序改用提供的 userId 與共用的 default 身分。只有刻意共用的整合才應使用 default。在租戶隔離的部署環境中,請提供受信任且穩定的 resourceId 或明確的 userId。兩者皆省略時,無法隔離呼叫者。