ToolProvider
ToolProvider 介面定義 Editor 如何探索及解析外部平台的整合 Tool。Mastra 包含兩個內置實作:ComposioToolProvider 和 ArcadeToolProvider。
Provider 設定及 Studio 工作流程請參閱 Editor Tool。已儲存的選擇及解析行為請參閱 Tool 配置。
ToolProvider 介面ToolProvider 介面 的直接連結
Provider 會提供 metadata 及舊版探索和解析方法。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 的直接連結
連接 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!,
}),
},
})
Constructor 參數Constructor 參數 的直接連結
apiKey:
allowedToolkits?:
allowedTools?:
defaultScope?:
Tool slugTool slug 的直接連結
Composio Tool 使用大寫 slug 格式:GITHUB_CREATE_ISSUE、SLACK_SEND_MESSAGE。
驗證驗證 的直接連結
連線預設使用 per-author 範圍。設定 defaultScope: 'caller-supplied',可按 request context 中透過 MASTRA_RESOURCE_ID_KEY 解析的呼叫者身分劃分授權。請確保每個已驗證請求都提供穩定且唯一的 resource 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 | 透過呼叫者擁有的 session,在對話中建立授權連結。 |
COMPOSIO_WAIT_FOR_CONNECTIONS | 等待呼叫者完成授權,然後 Agent 才繼續。 |
COMPOSIO_WAIT_FOR_CONNECTIONS 是選用的。如不使用它,請完成授權後返回對話,再要求 Agent 繼續。已連接帳戶會維持與呼叫者 resource ID 的關聯,供之後的請求使用。
ArcadeToolProviderArcadeToolProvider 的直接連結
連接 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!,
}),
},
})
Constructor 參數Constructor 參數 的直接連結
apiKey:
baseURL?:
Tool slugTool slug 的直接連結
Arcade Tool 使用 Toolkit.ToolName 格式:Github.GetRepository、Slack.SendMessage。
驗證驗證 的直接連結
舊版 Arcade resolver 會在可用時使用 request context 的 resourceId,否則改用提供的 userId,再改用共用的 default 身分。只有刻意共用的整合才應使用 default。在 tenant 隔離的部署中,請提供可信且穩定的 resourceId 或明確的 userId。兩者都省略便無法隔離呼叫者。