"三个臭皮匠,顶个诸葛亮。但三个没协作好的Agent,顶个Bug工厂。" —— 某次Agent编排事故后的清晨
让多个AI Agent像黑帮片一样各司其职又默契配合:通信协议、任务分配、冲突解决,全都有
一个Agent能做的事,两个Agent能做更多。但三个Agent在一起,如果不协作,就是三个在吵架的哲学家。
「一个人走得快,一群人走得远。但如果这群人没有共识协议,他们连门口都出不去。最好的多Agent系统,不是每个Agent都最聪明,而是每个Agent都知道自己该什么时候闭嘴。」
多Agent协作的核心理由只有一个:单个Agent的上下文窗口有上限,但人类的野心没有上限。
数学Agent + 代码Agent + 写作Agent = 全能团队,没有短板
10个Agent同时干活,比1个Agent串行执行快10倍(理想情况)
一个Agent炸了,其他Agent接着干,系统不死机
专门写SQL的Agent不会去碰前端,各司其职效率高
选对架构,比你选什么模型更重要。就像选火锅底料——鸳鸯锅适合团队协作,九宫格适合各吃各的。
| 模式 | 比喻 | 适用场景 | OpenClaw实现 |
|---|---|---|---|
| 🎯 中心化指挥 | 将军指挥士兵 | 任务清晰可分解 | Orchestrator Skill |
| 🤝 点对点协商 | 两个商人讨价还价 | 双边任务分配 | Negotiation Skill |
| 📢 发布订阅 | 广播电台+听众 | 一对多信息分发 | EventBus + Skills |
| 🔄 迭代审查 | 编辑改稿子 | 需要质量保证 | Review Loop Skill |
「你看那些黑帮片,老大发号施令,小弟各司其职,最后任务完成。但如果小弟A跟小弟B说『我觉得老大的计划有问题』,那这部片就叫《无间道》。多Agent协作也一样,有层级才好管。」
Agent之间不说话,就像火锅没汤底——吃不了。OpenClaw 提供了三种通信方式:
最基础的通信方式:一个Skill的输出是另一个Skill的输入。
# orchestrator skill - 任务分配器
async function orchestrate(task) {
// 1. 让research agent收集资料
const research = await callSkill('web-research', {
query: task.topic,
depth: 'deep'
});
// 2. 把资料传给writer agent
const draft = await callSkill('content-writer', {
context: research.result,
format: 'markdown'
});
// 3. 让reviewer agent审稿
return await callSkill('quality-reviewer', {
content: draft.article
});
}
Agent们读写同一个状态对象,像一群人围着一块白板写字。
# 共享状态示例(YAML格式)
state:
task_id: "seo-audit-20260628"
progress:
research: done
writer: in_progress
reviewer: pending
data:
keywords: ["OpenClaw", "Agent Skills"]
sources: []
artifacts:
draft_url: ""
final_url: ""
一个Agent干完活发个事件,其他Agent听到就自动开始干活。
选协议的原则:任务流程固定用消息传递,需要灵活调度用共享状态,触发式任务用事件驱动。最怕的是三种混着用——那是当代Agent版《蝴蝶效应》。
任务分配比分配家务还难——至少家务不会跟你吵「这个任务不在我的能力范围内」。
| 算法 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| Round Robin | 轮流分配 | 简单公平 | 不看Agent能力 |
| Capability Match | 能力匹配 | 最优化分配 | 需要能力画像 |
| Load Balanced | 负载均衡 | 防止过载 | 需要实时监控 |
# 能力匹配分配示例
const agents = [
{ name: 'ResearchBot', skills: ['web-search', 'summarize'] },
{ name: 'CodeBot', skills: ['python', 'debug'] },
{ name: 'WriteBot', skills: ['markdown', 'seo'] }
];
function assignTask(task) {
const best = agents
.map(a => ({
agent: a,
score: a.skills.filter(s =>
task.requiredSkills.includes(s)
).length
}))
.sort((a, b) => b.score - a.score)[0];
return best.agent;
}
「最好的任务分配,不是把任务分给最能干的人,而是分给最合适的人。就像最好的火锅蘸料,不是最贵的麻酱,而是最适合你那口锅底的搭配。人和人的匹配,Agent和Agent的匹配,说到底,都是缘分。」
多Agent系统最大的风险不是Agent不够聪明,而是Agent们对「正确答案」有不同意见。
| 冲突类型 | 例子 | 解决方法 |
|---|---|---|
| 结果不一致 | Research说有12个数据源,Writer说只有8个 | Orchestrator仲裁 + 强制校验 |
| 资源竞争 | 两个Agent同时写同一个文件 | 乐观锁 + 冲突重试 |
| 死锁等待 | A等B的结果,B等A的结果 | 超时机制 + 任务取消 |
| 目标漂移 | 任务进行中Agent自己改了目标 | 目标不可变 + 快照回滚 |
# 冲突解决:投票机制
async function resolveConflict(proposals) {
// 三个以上Agent,少数服从多数
if (proposals.length >= 3) {
const votes = {};
proposals.forEach(p => {
votes[p.result] = (votes[p.result] || 0) + 1;
});
const winner = Object.entries(votes)
.sort((a, b) => b[1] - a[1])[0][0];
return winner;
}
// 两个Agent,让Orchestrator拍板
return await callSkill('orchestrator', {
action: 'arbitrate',
proposals
});
}
「你有没有遇到过这种情况:火锅店说『你要微辣还是中辣?』你说『微辣』,同桌的人说『中辣』,然后你们就吵了十五分钟。Agent冲突解决也是一样,最后总得有人拍板。Orchestrator就是这个拍板的人,虽然它可能是个没有味觉的AI。」
理论讲完了,来点实际的。下面是用 OpenClaw Skills 搭建一个「研究→写作→审核」三人Agent团队的完整配置。
# .openclaw/agents/writing-team/agent.yaml
name: writing-team
version: 1.0.0
description: "多Agent写作协作团队"
agents:
- name: researcher
model: gpt-4o
skills: [web-research, summarize, fact-check]
system_prompt: |
你是研究专家。收到主题后,收集最新资料,
输出结构化摘要(包含数据源、关键事实、引用)。
不要写结论,只给事实。
- name: writer
model: claude-sonnet-4
skills: [markdown-writer, seo-optimizer, citation-formatter]
system_prompt: |
你是写作专家。基于researcher提供的事实,
撰写结构清晰、SEO友好的文章。
保持客观,引用来源。
- name: reviewer
model: gpt-4o
skills: [grammar-check, fact-verifier, readability-scorer]
system_prompt: |
你是审核专家。检查文章内容的事实准确性、
语法错误、可读性。只输出需要修改的问题列表。
workflow:
- step: 1
agent: researcher
output: research_data
- step: 2
agent: writer
input: [research_data]
output: draft
- step: 3
agent: reviewer
input: [draft, research_data]
output: review_report
- step: 4
agent: writer
input: [draft, review_report]
action: revise
output: final_article
团队配置黄金法则:每个Agent的system_prompt要精确定义它的角色边界。researcher不能写结论,writer不能自己查资料,reviewer不能重写文章。各司其职,减少冲突。
| 指南 | 适合谁 |
|---|---|
| 🎯 Skill Workshop 精通指南 | 想用Workshop管理多Agent Skills的你 |
| 📖 Agent Skills 开发完整指南 | 想从头学Skill开发的你 |
| 🌐 MCP生态系统完全指南 | 想理解Agent如何连接外部世界的你 |
| 🎭 Agent编排指南 | 想深入编排模式的你 |
| 🔄 Agent工作流构建器 | 想可视化设计Agent流程的你 |
这些文章可能对你有帮助