채널 제공자
ChannelProviderAgent를 메시징 플랫폼에 연결하기 위해 플랫폼 통합이 구현하는 인터페이스입니다. 공급자는 앱 프로비저닝 및 OAuth, 웹훅 라우팅 및 이벤트 처리, 어댑터 생성 및 Agent 연결, 자격 증명 관리 등 통합의 전체 수명주기를 소유합니다.
공급자를 등록하세요.Mastra constructor under channels, 선택한 ID로 입력됩니다. 각 공급자의 경로는 서버의 API 경로에 자동으로 병합됩니다.initialize()Mastra 시작 중에 실행됩니다.
import { Mastra } from '@mastra/core/mastra'
import { SlackProvider } from '@mastra/slack'
export const mastra = new Mastra({
channels: {
slack: new SlackProvider({
refreshToken: process.env.SLACK_REFRESH_TOKEN!,
baseUrl: process.env.MASTRA_BASE_URL,
}),
},
})
Provider의 baseUrl은 플랫폼이 웹훅과 이벤트를 전송하는 공개 URL입니다. 프로덕션에서는 배포된 Mastra 서버 URL을 사용합니다. 로컬 개발 환경에서는 플랫폼이 http://localhost:4111에 접근할 수 없으므로 터널(cloudflared 또는 ngrok 등)을 실행하고 이벤트가 로컬 개발 프로세스에 도달하도록 baseUrl을 터널 URL(예: https://abc123.trycloudflare.com)로 지정하세요.
SlackProvider최초의 내장 구현입니다. 이 인터페이스를 구현하여 사용자 정의 공급자를 구축합니다.
속성속성에 대한 직접 링크
id:
행동 양식행동 양식에 대한 직접 링크
getRoutes:
initialize?:
configure?:
getInfo?:
connect?:
disconnect?:
listInstallations?:
공급자에 액세스공급자에 액세스에 대한 직접 링크
등록할 때 사용한 ID를 키로 하는 channels getter를 통해 등록된 Provider에 접근하세요. getter의 타입은 생성자 구성에서 추론되므로 mastra.channels.slack은 모든 메서드를 갖춘 구체적인 Provider입니다.
await mastra.channels.slack.configure({ refreshToken })
키를 런타임에만 알 수 있다면 대신 문자열 ID로 Provider를 조회하세요. getChannelProvider는 구체적인 타입을 제네릭으로 받으며, getChannelProviders는 등록된 모든 Provider를 ID를 키로 하여 반환합니다.
import type { SlackProvider } from '@mastra/slack'
const slack = mastra.getChannelProvider<SlackProvider>('slack')
const all = mastra.getChannelProviders()