凌晨4点17分,你的AI系统需要同时处理:搜索信息、分析数据、生成报告、发送通知。单个Agent做不到?那就让多个Agent协作——但它们需要一个统一的「语言」来交流。
Multi-Agent Communication解决的核心问题:
特点:Google主导,标准化的Agent间通信协议
特点:Anthropic主导,工具和上下文共享
特点:原生多Agent通信机制
特点:CopilotKit主导,前端Agent通信
// A2A标准消息格式
{
"version": "1.0",
"messageId": "msg_abc123",
"sender": {
"agentId": "agent_search",
"capabilities": ["web_search", "content_fetch"]
},
"receiver": {
"agentId": "agent_writer",
"capabilities": ["content_generation"]
},
"messageType": "task_request",
"payload": {
"task": "search_and_summarize",
"parameters": {
"query": "OpenClaw最新特性",
"format": "bullet_points",
"maxLength": 500
}
},
"context": {
"conversationId": "conv_xyz",
"priority": "normal",
"deadline": "2026-05-14T10:00:00Z"
},
"metadata": {
"timestamp": "2026-05-14T01:00:00Z",
"traceId": "trace_123"
}
}
// Agent能力声明
{
"agentId": "agent_data_analyzer",
"capabilities": [
{
"name": "statistical_analysis",
"description": "执行统计分析",
"inputs": ["data", "method"],
"outputs": ["results", "charts"]
},
{
"name": "visualization",
"description": "生成数据可视化",
"inputs": ["data", "chart_type"],
"outputs": ["image"]
}
],
"constraints": {
"maxDataSize": "10MB",
"supportedFormats": ["csv", "json", "xlsx"]
}
}
// OpenClaw Session通信
// 发送消息到另一个Session
await sessions_send({
sessionKey: "agent_writer_session",
message: "请根据以下搜索结果生成文章",
attachments: [
{ name: "search_results.json", content: searchResults }
]
});
// 接收另一个Session的结果
const result = await sessions_send({
sessionKey: "agent_analyzer_session",
message: "分析这份数据并返回报告",
timeoutSeconds: 300
});
// 启动子Agent执行任务
const subAgent = await sessions_spawn({
runtime: "subagent",
agentId: "data-processor",
task: "处理CSV文件并生成统计报告",
attachments: [
{ name: "data.csv", content: csvContent }
],
mode: "run", // 单次执行
timeoutSeconds: 600
});
// 获取子Agent结果
const report = subAgent.result;
# OpenClaw并行Agent工作流
name: parallel_agent_workflow
description: 多Agent并行处理任务
agents:
- id: search_agent
task: "搜索AI新闻"
- id: analyze_agent
task: "分析市场数据"
- id: report_agent
task: "生成综合报告"
depends_on: [search_agent, analyze_agent]
execution:
mode: parallel
parallel_agents: [search_agent, analyze_agent]
aggregation:
agent: report_agent
inputs:
- source: search_agent
field: results
- source: analyze_agent
field: analysis
timeout: 30m
┌───────────────┐
│ Orchestrator │
│ (主控Agent) │
└───────┬───────┘
│
┌───────────┼───────────┐
│ │ │
┌───▼───┐ ┌───▼───┐ ┌───▼───┐
│Agent A│ │Agent B│ │Agent C│
│(搜索) │ │(分析) │ │(写作) │
└───┬───┘ └───┬───┘ └───┬───┘
│ │ │
└───────────┴───────────┘
│
┌───────▼───────┐
│ 结果聚合 │
└───────────────┘
Agent A ─────► Agent B
│ │
│ │
▼ ▼
Agent C ◄────── Agent D
│ │
└──────────────┘
// Agent状态追踪
const agentStates = {
search_agent: {
status: "completed",
result: {...},
timestamp: "2026-05-14T01:05:00Z"
},
analyze_agent: {
status: "running",
progress: 60,
estimated_completion: "2026-05-14T01:10:00Z"
},
report_agent: {
status: "waiting",
depends_on: ["search_agent", "analyze_agent"]
}
};
// 当一个Agent失败时
if (agentA.status === "failed") {
// 通知依赖的Agents
notifyDependents(agentA, {
type: "dependency_failed",
error: agentA.error,
action: "cancel_or_retry"
});
}