連線概覽
連線讓 Mastra 能夠配合遠端 Agent、編程 Agent、Provider 軟件開發套件(SDK)執行環境,以及外部 Tool 和資源運作。請根據 Agent 執行環境由哪個系統擁有,以及需要交換的內容來選擇連線類型。
- Agent-to-Agent (A2A):跨越服務、框架、供應商及編程語言的界限,公開或使用遠端 Agent。
- Agent Client Protocol (ACP):將兼容的編程 Agent 程序作為 Mastra Tool 或子 Agent 執行。
- SDK Agent:註冊由 Claude、Cursor 或 OpenAI SDK 支援的 Agent,同時讓 Provider SDK 繼續控制執行環境、Tool、權限及 Agent 迴圈。
- Model Context Protocol (MCP):將 Agent 連接至外部 Tool 和資源,或向兼容 MCP 的系統公開 Mastra Agent、Tool、Workflow、提示及資源。
何時使用連線何時使用連線 的直接連結
如有以下需要,請使用連線:
- 將工作委派給在另一項服務或執行環境中運行的 Agent。
- 讓編程 Agent 對項目 Workspace 執行工作。
- 在不取代 Provider SDK 執行環境或 Agent 迴圈的情況下,加入 Provider 原生 Agent。
- 將 Agent 連接至外部 Tool 和資源,或向其他系統發佈 Mastra 功能。
開始使用開始使用 的直接連結
首先確定需要跨越的界限。遠端 Agent 端點請使用 A2A,編程 Agent 程序請使用 ACP,Provider 擁有的執行環境請使用 SDK Agent,Tool 和資源則請使用 MCP。
- A2A
- ACP
- SDK Agent
- MCP
import { A2AAgent } from '@mastra/core/a2a'
const agent = new A2AAgent({
url: 'https://agent.example.com/.well-known/agent-card.json',
})
const result = await agent.generate('Summarize the latest report')
console.log(result.text)
import { AcpAgent } from '@mastra/acp'
const agent = new AcpAgent({
id: 'coding-agent',
description: 'Inspects and edits code',
command: 'claude',
args: ['--acp'],
persistSession: false,
})
const result = await agent.generate('Review this project')
console.log(result.text)
import { OpenAISDKAgent } from '@mastra/openai'
const agent = new OpenAISDKAgent({
id: 'openai-agent',
description: 'Answers project questions',
sdkOptions: {
name: 'Project assistant',
model: 'gpt-5',
},
})
const result = await agent.generate('Explain agent loops in one sentence')
console.log(result.text)
import { MCPClient } from '@mastra/mcp'
const client = new MCPClient({
id: 'wikipedia-client',
servers: {
wikipedia: {
command: 'npx',
args: ['-y', 'wikipedia-mcp'],
},
},
})
try {
const tools = await client.listTools()
console.log(Object.keys(tools))
} finally {
await client.disconnect()
}