当多个AI Agent组成团队协同工作,一个核心难题浮现:Agent们意见不一致怎么办?2026年,多Agent系统的决策机制从简单的"多数投票"进化到完整的分布式共识协议栈。ACL 2025发表的研究系统比较了7种决策协议,发现投票类协议在推理任务上提升13.2%,而共识类协议在创意任务上更优。与此同时,拜占庭容错(BFT)从区块链领域跨界进入多Agent系统——AgentShield框架证明,在3个Agent中有1个恶意行为时,传统多数投票的失败率高达24%。本文深度拆解7种Agent共识引擎:从经典投票到拜占庭容错、从去中心化集体智能到人在环中的意图修正,覆盖架构原理、代码实现与生产落地评估。
ACL 2025 Findings收录的论文"Voting or Consensus? Decision-Making in Multi-Agent Debate"首次对多Agent辩论中的7种决策协议进行了严格对照实验。研究控制了唯一变量——决策机制,在相同LLM、相同提示模板、相同Agent数量下,比较三类投票协议和四类共识协议:
投票类(Voting):每位Agent独立给出最终答案,取多数票(Majority Voting)、 plurality(相对多数)或 unanimous voting(一票否决)。
共识类(Consensus):Agent通过多轮讨论协商,达成统一意见——包括共识提案(Proposer proposes, others accept/reject)、共识轮转(轮值主持人制)、共识融合(逐步合并分歧方案)。
# 七种协议的核心伪代码对比
protocols = {
# 投票类 - 独立表态后统计
"majority_vote": lambda agents: mode([a.decide() for a in agents]),
"plurality_vote": lambda agents: max(set([a.decide() for a in agents]),
key=[a.decide() for a in agents].count),
"unanimous_vote": lambda agents: a[0].decide() if len(
set([a.decide() for a in agents])) == 1 else "NO_CONSENSUS",
# 共识类 - 多轮协商
"consensus_proposal": lambda agents: deliberation_rounds(
agents, rounds=3, mode="proposal"),
"consensus_rotating": lambda agents: deliberation_rounds(
agents, rounds=3, mode="rotating_chair"),
"consensus_merge": lambda agents: deliberation_rounds(
agents, rounds=3, mode="incremental_merge"),
"consensus_debate": lambda agents: deliberation_rounds(
agents, rounds=3, mode="structured_debate"),
}
| 维度 | 投票协议最优 | 共识协议最优 | 差异幅度 |
|---|---|---|---|
| 推理任务准确率 | 73.2% (+13.2%) | 66.1% (+6.1%) | 投票领先7.1pp |
| 创意任务质量 | 62.4% (+4.2%) | 68.7% (+10.5%) | 共识领先6.3pp |
| Token消耗 | 基准1x | 2.3-3.8x | 共识更贵 |
| 失败率(5个Agent) | 8.2% | 3.1% | 共识更稳定 |
核心结论:投票协议快而省,适合有明确对错答案的推理任务;共识协议贵而稳,适合开放性创意和需要多方协调的决策。实战中,混合使用——先投票筛选明显方向,再共识深化方案——效果最佳。
2026年AAAI发表的"Rethinking the Reliability of Multi-agent System"论文揭示了一个令人不安的事实:在P2P网络中运行的多Agent系统,当某些Agent出现幻觉、中毒或被恶意注入时,传统多数投票机制失败率接近24%。这意味着每4次有争议的决策中,就有1次会被"叛徒Agent"带偏。
AgentShield框架提出了三层防御架构:
┌─────────────────────────────────────┐
│ AgentShield 架构 │
├─────────────────────────────────────┤
│ Layer 3: 共识验证层 │
│ ├─ 加权拜占庭容错 (WBFT) │
│ ├─ 可信度评分 < 0.6 的Agent降权 │
│ └─ 最终共识需 2f+1/f 确认 │
├─────────────────────────────────────┤
│ Layer 2: 异常检测层 │
│ ├─ 输出一致性校验 │
│ ├─ 语义偏差检测 (embedding距离) │
│ └─ 时序行为异常检测 │
├─────────────────────────────────────┤
│ Layer 1: 输入净化层 │
│ ├─ Prompt注入检测 │
│ ├─ 上下文完整性验证 │
│ └─ 工具调用参数校验 │
└─────────────────────────────────────┘
AgentShield的创新在于引入了可信度权重——不是简单的"一人一票",而是根据历史行为动态调整每个Agent的话语权:
class WBFTConsensus:
"""加权拜占庭容错共识引擎"""
def __init__(self, agents, fault_tolerance=1):
self.agents = agents
self.f = fault_tolerance # 可容忍的叛徒数
self.credibility = {a.id: 1.0 for a in agents}
def reach_consensus(self, question):
responses = {}
for agent in self.agents:
responses[agent.id] = agent.query(question)
# Step 1: 语义聚类,找出主流意见
clusters = semantic_cluster(responses)
# Step 2: 按可信度加权投票
weighted_votes = {}
for cluster_id, members in clusters.items():
weight = sum(self.credibility[a.id] for a in members)
weighted_votes[cluster_id] = weight
# Step 3: 需要 2f+1 总权重的确认
total_weight = sum(self.credibility.values())
winner = max(weighted_votes, key=weighted_votes.get)
if weighted_votes[winner] >= (2 * self.f + 1) / (len(self.agents) + self.f) * total_weight:
# 更新可信度:与共识一致的Agent加分
for agent in self.agents:
if agent.id in clusters[winner]:
self.credibility[agent.id] = min(1.0,
self.credibility[agent.id] + 0.05)
else:
self.credibility[agent.id] = max(0.1,
self.credibility[agent.id] - 0.15)
return clusters[winner][0].response
return "NO_CONSENSUS" # 无法达成共识
在3-Agent场景中(1个叛徒),AgentShield将决策准确率从76%提升至94.3%,代价是每轮多消耗约15%的Token用于可信度计算和语义聚类。在5-Agent场景中(2个叛徒),WBFT的准确率仍维持在89%以上,远超多数投票的68%。
变现评估:高。金融交易、医疗诊断等高风险场景对决策可靠性要求极高,WBFT可包装为"多Agent容错决策中间件",按调用量计费。
RoMa(Robust Multi-Agent)在CSCWD 2026上发表,提出了一个比AgentShield更全面的四层容错体系。核心创新是动态可信度图谱——用知识图谱建模Agent之间的信任关系,信任值不仅基于历史表现,还考虑Agent的专业领域匹配度。
class RoMaCredibilityGraph:
"""RoMa可信度图谱"""
def __init__(self):
self.trust_graph = nx.DiGraph()
self.domain_expertise = {} # {agent_id: {domain: score}}
def evaluate_response(self, agent_id, response, domain):
"""综合评估Agent响应的可信度"""
scores = []
# 维度1: 领域专业度
domain_score = self.domain_expertise.get(agent_id, {}).get(domain, 0.5)
scores.append(domain_score * 0.3)
# 维度2: 历史准确率(滑动窗口)
history = self.get_recent_accuracy(agent_id, window=20)
scores.append(history * 0.3)
# 维度3: 群体一致性(与其他Agent的语义相似度)
consistency = self.compute_peer_consistency(agent_id, response)
scores.append(consistency * 0.2)
# 维度4: 自评置信度的校准度
calibration = self.compute_calibration(agent_id)
scores.append(calibration * 0.2)
return sum(scores) # 0-1的综合可信度
RoMa的关键差异化在于领域感知:一个在医学问答中表现优秀的Agent,在金融领域的可信度会被自动降低。这避免了"权威溢出"——即Agent在擅长领域的声誉被错误地延伸到不擅长的领域。
上手难度:中等。需要为每个Agent维护可信度图谱和领域专业度评分,初始配置约需2-3小时。提供Docker一键部署,含Neo4j图数据库。
2025年arXiv发表的"Achieving Unanimous Consensus Through Multi-Agent Deliberation"将区块链的经典共识机制改造为Agent友好的审议流程。不同于简单投票,全员共识(Unanimous Consensus)要求所有参与Agent在有限轮次内达成一致。
该协议借鉴了区块链中的分级共识(Graded Consensus)概念,设计了三阶段审议流程:
flowchart TD
A[提出议题] --> B[第一轮: 自由发言]
B --> C{所有Agent意见一致?}
C -->|是| D[全员共识达成]
C -->|否| E[第二轮: 分级审议]
E --> F[每个Agent对其他方案评级<br/>grade: 0/1/2]
F --> G{存在grade≥2的方案?}
G -->|是| H[选择最高评级方案]
G -->|否| I[第三轮: 主持人裁决]
I --> J[轮值主持人提出折中方案]
J --> K{全员接受?}
K -->|是| D
K -->|否| L[标记为无法共识<br/>触发人工介入]
H --> M[进入确定性验证]
M --> D
三阶段的关键设计:
第一阶段:所有Agent独立分析并给出方案,记录为初始立场。
第二阶段:每个Agent对其他Agent的方案进行分级(Grade 0 = 完全不同意,Grade 1 = 部分同意,Grade 2 = 完全同意)。这比简单的投票更细致——它捕捉了"部分同意"这个中间状态。
第三阶段:如果没有方案获得Grade 2(完全同意),进入主持人裁决模式。主持人按轮值制担任,提出折中方案并征求全员同意。
该论文在区块链治理、法律合同审查和医疗会诊三个场景进行了测试。在法律合同审查中,全员共识协议的条款遗漏率比多数投票降低了41%,代价是Token消耗增加了2.7倍。
适用场景:需要零遗漏的高风险决策——合同审查、合规检查、手术方案制定。
2026年AAMAS收录的Symphony框架代表了多Agent系统架构的一个重要转折点:彻底去除中心编排器。当前主流的LangGraph、CrewAI、AutoGen都依赖某种形式的中心编排器(Supervisor/Orchestrator),而Symphony证明,轻量级LLM在边缘设备上通过去中心化协议也能实现集体智能。
class SymphonyBeacon:
"""Symphony信标机制 - 去中心化任务发现"""
def __init__(self, agent_id, capabilities):
self.agent_id = agent_id
self.capabilities = capabilities
self.beacon_interval = 5 # 秒
def broadcast_beacon(self):
"""广播能力信标"""
beacon = {
"agent_id": self.agent_id,
"capabilities": self.capabilities,
"current_load": self.get_current_load(),
"timestamp": time.time(),
"ttl": 30 # 信标存活时间
}
# 基于Gossip协议扩散
self.gossip_broadcast(beacon)
def on_task_announced(self, task):
"""任务发布时的自组织响应"""
my_score = self.compute_fitness(task)
if my_score > self.score_threshold:
self.bid_for_task(task, my_score)
def compute_fitness(self, task):
"""计算自身对任务的适配度"""
cap_match = len(set(self.capabilities) & set(task.required_caps))
load_factor = 1.0 - (self.current_load / self.max_load)
return cap_match * load_factor
Symphony的核心创新是信标机制(Beacon Mechanism):每个Agent定期广播自己的能力和当前负载,当任务出现时,所有Agent自行评估适配度并竞价,不需要中心调度器分配。
在实测中,Symphony在100个Agent规模的场景下,任务分配延迟仅为中心化方案的23%,且在30% Agent离线时仍能维持85%的任务完成率(中心化方案在同等故障下完成率降至52%)。
变现潜力:极高。边缘计算、IoT设备集群、无人机编队等场景天然需要去中心化协调。可包装为"去中心化Agent调度SDK",按设备数授权。
共识决策的前提是所有Agent能访问共同的上下文信息。然而在实际系统中,每个Agent的记忆是独立的——它们"看到"的世界不同,自然难以达成一致。MAGMA(Multi-Graph based Agentic Memory Architecture)来自UT Dallas和University of Florida的联合研究,提出用多图结构统一多Agent的共享记忆。
class MAGMAMemory:
"""MAGMA多图记忆系统"""
def __init__(self, neo4j_uri):
self.driver = GraphDatabase.driver(neo4j_uri)
# 四层图结构
self.graphs = {
"episodic": EpisodicGraph(), # 事件经历图
"semantic": SemanticGraph(), # 语义知识图
"procedural": ProceduralGraph(), # 过程技能图
"social": SocialGraph() # 社交关系图
}
def write_memory(self, agent_id, memory_type, content):
"""Agent写入记忆"""
graph = self.graphs[memory_type]
# 跨图链接:自动建立 episodic <-> semantic <-> procedural 映射
graph.add_node(agent_id=agent_id, content=content)
self.cross_link_memories(agent_id, content)
def read_for_consensus(self, topic):
"""为共识准备共享上下文"""
shared_context = {}
for gtype, graph in self.graphs.items():
shared_context[gtype] = graph.query(topic)
return shared_context
def cross_link_memories(self, agent_id, content):
"""跨图链接 - MAGMA的核心创新"""
# 将新事件与已有语义知识关联
related_semantics = self.graphs["semantic"].find_related(content)
for sem in related_semantics:
self.create_edge("episodic", content, "sem", sem)
# 更新社交图谱 - 记录Agent之间的知识交互
collaborating_agents = self.find_collaborators(content)
for other_agent in collaborating_agents:
self.graphs["social"].strengthen_tie(agent_id, other_agent)
MAGMA的四层图结构对应人类记忆的四种类型:情景记忆(发生了什么)、语义记忆(知道了什么)、程序记忆(怎么做)、社交记忆(谁擅长什么)。这种设计使得多Agent系统的共识过程更加高效——Agent不仅知道"答案是什么",还知道"为什么是这个答案"和"谁在这个领域更可靠"。
在多Agent协作编程的实验中,使用MAGMA共享记忆的Agent团队在复杂Bug修复任务上的首次通过率比无共享记忆基线高出34%,平均讨论轮次减少40%。
当多个Agent无法自动达成共识,或者决策涉及道德、法律等高风险领域时,需要人类介入。但传统的"人在环中"(HITL)模式通常只在最终决策前加一个审批步骤——这远远不够。mahilo框架(开源,PyPI可安装)提出了Human-in-Multi-Agent-Loop模式:人类不是在系统之外审批,而是作为一个平等的参与者存在于Agent网络中。
from mahilo import MultiAgentFramework, Agent, HumanAgent
# 创建多Agent系统
framework = MultiAgentFramework()
# 创建专业Agent
research_agent = Agent(
name="Researcher",
description="数据研究和分析专家",
tools=[web_search, data_analyzer]
)
legal_agent = Agent(
name="LegalAdvisor",
description="法律合规审查专家",
tools=[contract_reviewer, regulation_search]
)
finance_agent = Agent(
name="FinancialAnalyst",
description="财务风险评估专家",
tools=[risk_calculator, market_analyzer]
)
# 创建人类Agent - 与AI Agent平等参与
human = HumanAgent(
name="DecisionMaker",
role="最终决策者",
can_override=True, # 可以推翻Agent共识
notification_channel="slack" # 实时接收Agent讨论
)
# 注册所有Agent
framework.register([research_agent, legal_agent, finance_agent, human])
# 设置共识规则:高风险决策必须人类确认
framework.set_consensus_rule(
rule="HIGH_RISK",
mechanism="consensus_with_human_veto",
threshold=0.8, # Agent共识度需达80%
human_veto_power="absolute" # 人类拥有一票否决权
)
# 执行任务
result = framework.execute(
task="评估收购公司X的风险和收益",
consensus_rule="HIGH_RISK"
)
mahilo的设计哲学是:每个Agent(包括人类)可以独立与其他Agent通信,但所有通信对人类可见。人类可以随时介入任何两个Agent之间的讨论,或者在Agent达成共识后行使否决权。
同时,IEEE在2025年发表的HIMAL(Human-in-Multi-Agent-Loop)论文从学术角度证明了:在移动边缘计算场景中,包含人类意图修正的多Agent系统,任务卸载准确率比纯自动多Agent系统高出28%,响应延迟降低19%。
2026年最值得关注的多Agent基础设施变化是Google A2A(Agent-to-Agent)协议的正式落地。截至2026年4月,已有超过150家组织加入A2A协议联盟,包括Adobe、Salesforce、SAP等企业软件巨头。A2A解决了多Agent系统的一个根本问题:不同框架构建的Agent如何互相发现和通信?
A2A协议定义了四个核心原语:
| 原语 | 功能 | 类比 |
|---|---|---|
AgentCard |
描述Agent的能力、端点、认证方式 | DNS记录 |
Task |
标准化的任务请求/响应格式 | HTTP Request/Response |
Message |
Agent间的结构化通信消息 | WebSocket Message |
Artifact |
任务产物的标准化封装 | File Attachment |
{
"agent_card": {
"name": "FinancialRiskAnalyzer",
"description": "评估投资组合风险暴露",
"capabilities": ["risk_analysis", "portfolio_optimization"],
"endpoint": "https://api.example.com/a2a/financial-risk",
"authentication": {"type": "oauth2", "scope": "risk:read"},
"protocols": ["a2a/v1.0"],
"input_schema": {
"type": "object",
"properties": {
"portfolio": {"type": "array"},
"timeframe": {"type": "string"}
}
},
"output_schema": {
"type": "object",
"properties": {
"risk_score": {"type": "number"},
"recommendations": {"type": "array"}
}
}
}
}
A2A的重要性在于它使得跨框架的多Agent共识成为可能——一个用LangGraph构建的研究Agent可以与一个用CrewAI构建的审查Agent通过A2A协议直接通信,无需通过中心编排器翻译。
| 方案 | 类型 | 拜占庭容错 | Token开销 | 适用规模 | 上手难度 | 生产就绪 |
|---|---|---|---|---|---|---|
| 7种决策协议 | 学术基准 | 无 | 1x-3.8x | 3-7 Agent | 低 | 论文级 |
| AgentShield | 安全护栏 | 有(WBFT) | +15% | 3-9 Agent | 中 | 实验室级 |
| RoMa | 容错框架 | 有(图增强) | +25% | 5-20 Agent | 中高 | 实验室级 |
| 全员共识 | 审议协议 | 无 | 2.7x | 3-5 Agent | 低 | 可落地 |
| Symphony | 去中心化 | Gossip容错 | 0.3x | 10-100 Agent | 高 | 可落地 |
| MAGMA | 共享记忆 | 无 | +20% | 5-50 Agent | 中 | 可落地 |
| mahilo | 人在环中 | 人类裁决 | +40% | 3-10 Agent | 低 | 生产级 |
推荐AgentShield + 全员共识组合。先用WBFT过滤叛徒Agent,再用全员共识协议确保零遗漏。Token消耗虽高(约3x),但安全边际远超成本。
推荐Symphony。去中心化架构在大规模场景下延迟更低、容错更强。信标机制天然支持Agent动态加入和退出。
推荐MAGMA + 7种决策协议。共享的多图记忆让所有Agent站在同一知识基础上讨论,再根据任务性质选择投票或共识协议。
推荐mahilo + A2A协议。人类作为平等参与者介入多Agent讨论,A2A确保跨部门Agent能标准化通信。
直接使用7种决策协议的投票类方案。最低的Token开销、最快的实现速度,适合MVP阶段快速验证多Agent决策的可行性。
flowchart TD
A[多Agent决策需求] --> B{Agent数量?}
B -->|3-7个| C{需要容错吗?}
B -->|10+个| D{有中心编排器吗?}
B -->|3-5个高风险| E{需要人类介入吗?}
C -->|是| F[AgentShield WBFT]
C -->|否| G{任务类型?}
G -->|推理型| H[多数投票协议]
G -->|创意型| I[共识融合协议]
D -->|是| J[传统编排+共识]
D -->|否| K[Symphony去中心化]
E -->|是| L[mahilo人在环中]
E -->|否| M[全员共识协议]
F --> N{需要共享记忆吗?}
H --> N
I --> N
N -->|是| O[+ MAGMA多图记忆]
N -->|否| P[独立记忆基线]
K --> Q{需要跨框架互操作?}
Q -->|是| R[+ A2A协议]
Q -->|否| S[封闭系统]
2026年多Agent共识领域的最新趋势是混合协议栈——不再使用单一决策协议,而是根据任务特征动态切换。一个典型的生产级混合协议栈包含:
L1 - 输入验证层:所有Agent的输出先经过AgentShield的异常检测,过滤幻觉和注入攻击。
L2 - 可信度评估层:RoMa或AgentShield的动态可信度评分,为后续加权决策提供依据。
L3 - 协议选择层:根据任务类型自动选择投票或共识——推理任务走投票,创意任务走共识,高风险任务走全员共识。
L4 - 记忆同步层:MAGMA的多图共享记忆确保所有Agent在共识前拥有相同的上下文。
L5 - 人类裁决层:当自动共识失败(协议超时或可信度过低),通过mahilo框架将决策权交给人类。
这种分层架构的代价是系统复杂度显著增加——从单协议的几行代码变成一个完整中间件。但回报是决策可靠性的量级提升:在7个Agent、2个叛徒的极端场景下,混合协议栈的决策准确率达到96.8%,而单一多数投票仅为68%。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
