外观
简介
@multi-agent/a2a 是 A2A(Agent-to-Agent)协议的 TypeScript 实现,为 AI 智能体之间的互操作性和协作提供标准化通信方式。
无论底层框架或模型供应商如何,智能体都能通过 A2A 协议安全地发现彼此、交换信息、协同完成复杂任务。
突破虚拟边界 — A2A 让智能体不止于对话,更能触达物理世界:操作文件、执行命令、控制设备,从思考走向行动。
核心能力
| 能力 | 说明 |
|---|---|
| 能力发现 | Agent 通过 AgentCard 声明自身技能,其他 Agent 可发现并调用最合适的智能体 |
| 双向流通信 | 基于 gRPC 的实时双向流,支持流式输出、进度反馈、中途取消 |
| Human in the Loop | 人类也可以作为一个特殊类型的 Agent 加入到智能体的协作当中,Agent 可主动向用户提问,支持人机协作的交互式任务 |
| 跨平台 | 提供跨运行时的统一编程接口,浏览器与 Node.js 开发体验一致 |
双向流通信
Agent 之间可以在同一连接上实时收发消息:
- 流式输出 - LLM 逐字生成,用户实时看到
- 双向交互 - Agent 可以主动提问,支持 Human in the Loop
- 进度反馈 - 长任务实时报告进度
跨平台统一 API
同一套代码,Node.js 和浏览器都能运行:
| 环境 | 底层协议 | 导入路径 |
|---|---|---|
| Node.js | gRPC | @multi-agent/a2a |
| 浏览器 | WebSocket | @multi-agent/a2a/browser |
typescript
const stream = await client.call('chat', { message: '你好,一句话介绍马云。' })
for await (const msg of stream) {
if (msg.type === 'progress') console.log(msg.text)
if (msg.type === 'done') console.log(msg.data)
}插件系统
通过插件扩展 Agent 能力,无需修改业务代码:
- Tracing Plugin - 全链路追踪,requestId 贯穿整个调用链
- IO Metrics Plugin - Token 计量,统计输入输出 token 数
- Parasite Plugin - 本地 Agent 寄生到云端,穿透内网
- MCP Plugin - 接入 MCP 生态,扩展 Agent 可用工具
A2A 与 MCP
MCP 和 A2A 解决不同层面的问题,可以配合使用:
| MCP | A2A | |
|---|---|---|
| 定位 | Agent 调用工具 | Agent 之间通信 |
| 通信模式 | 请求/响应 | 双向流 |
| 流式输出 | 不支持 | 支持 |
| 双向交互 | 不支持 | 支持 |
常见模式:
- 单个 Agent 通过 MCP 调用工具
- 多个 Agent 通过 A2A 协作