ToolProvider
ToolProvider 接口定义 Editor 如何发现和解析外部平台提供的集成 Tool。Mastra 包含两个内置实现:ComposioToolProvider 和 ArcadeToolProvider。
有关 Provider 设置和 Studio 工作流,请参阅 Editor Tool。有关已存储选择和解析行为,请参阅 Tool 配置。
ToolProvider 接口ToolProvider 接口的直接链接
Provider 公开元数据以及旧版发现和解析方法。Agent Builder 集成还可以实现可选的 VNext catalog、连接、授权和健康状态方法。
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!,
}),
},
})
构造函数参数构造函数参数的直接链接
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 catalog 和内置身份验证。
使用示例使用示例的直接链接
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 resolver 会优先使用 request context 中的 resourceId。如果不可用,则依次回退到提供的 userId 和共享的 default 身份。仅对有意共享的集成使用 default。在租户隔离的部署中,请提供可信且稳定的 resourceId 或显式 userId。两者均省略时,调用者之间不会隔离。