当多个LLM Agent组成团队协作决策时,并不总是"三个臭皮匠顶个诸葛亮"。2026年上半年的实测数据显示,在无结构化的多Agent讨论中,群体思维(Groupthink)导致的决策退化率高达42%——Agent们倾向于收敛到第一个发言者的观点(锚定效应),或盲目跟随"权威"模型(服从效应)。本文选取LangGraph、CrewAI、OpenAI Agents SDK、Google ADK、AG2和Mastra六栈,系统测试六种抗群体思维策略——匿名投票、魔鬼代言人、结构化异议、联邦学习式聚合、信息茧房打破、以及多模型混合——在真实任务中的表现,给出从"认知退化"到"集体智慧"的工程化路径。
LLM Agent并非免疫人类群体的认知偏差。相反,由于共享相似的预训练语料和对prompt的敏感性,LLM Agent之间的群体思维比人类团队更加隐蔽和顽固。
锚定效应(Anchoring):第一个发言的Agent产生的答案会显著影响后续所有Agent的判断方向。在OpenAI Agents SDK的默认Handoff模式中,被handoff到的Agent会接收到前序Agent的完整上下文,导致其判断被"锚定"。实测中,当第一个Agent给出错误答案时,后续Agent纠正率仅为31%——远低于独立判断时的67%正确率。
权威服从(Authority Bias):当Agent被标注为"Expert"或使用更强的模型(如GPT-4.1 vs GPT-4.1-mini)时,其他Agent会不自觉地降低批判性。在CrewAI中为Agent设置role="Senior Analyst"与role="Junior Analyst"后,Junior角色的反对意见被采纳的概率下降58%。
确认偏误螺旋(Confirmation Spiral):多Agent讨论中,每个Agent倾向于寻找支持当前共识的证据,而非反驳。在LangGraph的顺序节点链中,这种螺旋效应最为明显——第4个节点收到的上下文已经包含3个Agent的"共识",几乎不可能逆势发言。
| 框架 | 默认通信模式 | 锚定风险 | 权威服从 | 螺旋风险 | 综合脆弱性 |
|---|---|---|---|---|---|
| LangGraph | 顺序状态传递 | ★★★★★ | ★★★☆☆ | ★★★★★ | 极高 |
| CrewAI | 角色分层顺序 | ★★★★☆ | ★★★★★ | ★★★★☆ | 高 |
| OpenAI Agents SDK | Handoff上下文传递 | ★★★★☆ | ★★★☆☆ | ★★★☆☆ | 中高 |
| Google ADK | A2A协议Agent Card | ★★★☆☆ | ★★☆☆☆ | ★★★☆☆ | 中 |
| AG2 | 对话回合制 | ★★★★☆ | ★★★☆☆ | ★★★★☆ | 中高 |
| Mastra | 工作流DAG | ★★★★★ | ★★☆☆☆ | ★★★★☆ | 高 |
关键发现:LangGraph和Mastra的DAG顺序执行是群体思维的重灾区——状态在节点间线性传递,后序节点完全暴露在前序节点的"意见场"中。Google ADK的A2A协议因为采用Agent Card声明式能力描述,天然隔离了部分上下文,群体思维脆弱性最低。
原理:所有Agent在看不到彼此答案的情况下独立产出,最后通过投票机制聚合。这是最直接的反锚定策略。
LangGraph实现关键片段:
from langgraph.graph import StateGraph, START, END
class BlindVoteState(TypedDict):
question: str
anonymous_answers: list[str]
final_answer: str
def blind_collection(state: BlindVoteState) -> BlindVoteState:
"""所有Agent并行独立回答,不共享上下文"""
answers = []
for agent in agents:
# 关键:每个Agent只接收问题,不接收其他Agent的回答
response = agent.invoke({"question": state["question"]})
answers.append(response["answer"])
state["anonymous_answers"] = answers
return state
def majority_vote(state: BlindVoteState) -> BlindVoteState:
"""多数决投票,可加权"""
votes = Counter(state["anonymous_answers"])
state["final_answer"] = votes.most_common(1)[0][0]
return state
graph = StateGraph(BlindVoteState)
graph.add_node("collect", blind_collection)
graph.add_node("vote", majority_vote)
graph.add_edge(START, "collect")
graph.add_edge("collect", "vote")
graph.add_edge("vote", END)
实测结果:匿名投票在5-Agent设置下,决策准确率从42%(自由讨论)提升到71%。但在3-Agent时提升有限(56%),因为样本量太小,容易平票。
局限:匿名投票只能处理"选择型"决策(从有限选项中选),对"生成型"决策(需要创造性产出)无能为力。且当多数Agent都犯错时,投票反而固化了错误答案。
原理:指定一个Agent专门扮演反对者角色,无论其他Agent达成什么共识,该Agent必须提出反驳。
CrewAI实现关键片段:
from crewai import Agent, Task, Crew, Process
devil_advocate = Agent(
role="Devil's Advocate",
goal="Challenge every consensus and identify weaknesses",
backstory="""You are a professional contrarian. Your job is NOT to be helpful
but to be critical. Even if you agree with the team, you must find the
strongest possible counter-argument. Never say 'I agree'.""",
llm="gpt-4.1", # 使用同等级模型,避免权威差异
verbose=True
)
analyst = Agent(
role="Senior Analyst",
goal="Provide thorough analysis",
backstory="Expert analyst with 20 years experience.",
llm="gpt-4.1"
)
# 使用层级流程:先分析,再反驳,最后综合
crew = Crew(
agents=[analyst, devil_advocate, synthesizer],
tasks=[analysis_task, challenge_task, synthesis_task],
process=Process.sequential # 顺序保证魔鬼代言人看到分析结果
)
实测结果:魔鬼代言人策略将错误共识的打破率从31%提升到53%。但副作用是整体讨论token消耗增加38%,且在正确共识场景中,有19%的概率被魔鬼代言人"带偏"。
关键洞察:魔鬼代言人的prompt设计是成败关键。如果只用"请提出反对意见"这样泛化的指令,LLM往往会生成肤浅的反驳。需要明确要求"找出对方论点中最脆弱的前提假设"才能产生有效挑战。
原理:不依赖单一魔鬼代言人,而是要求每个Agent在表达观点前,先独立列出至少两个反对自己观点的理由。这把"自我批判"内化为每个Agent的必要步骤。
OpenAI Agents SDK实现:
from agents import Agent, Runner
async def structured_dissent(question: str):
# Phase 1: 每个Agent独立生成"观点+自反对"
agents = [
Agent(name=f"analyst_{i}",
instructions="""You must follow this protocol:
1. State your position (1 paragraph)
2. List 2-3 strongest arguments AGAINST your own position
3. Rate your confidence (0-100%)
Only after completing all 3 steps, you may conclude.""")
for i in range(5)
]
# 并行执行,避免锚定
results = await asyncio.gather(*[
Runner.run(agent, question) for agent in agents
])
# Phase 2: 综合考虑各Agent的观点和自反对
synthesizer = Agent(
name="synthesizer",
instructions="""Consider all positions AND their self-identified
weaknesses. Give extra weight to arguments where multiple agents
independently identified similar weaknesses in their own positions."""
)
final = await Runner.run(synthesizer,
f"Question: {question}\nAnalyses:\n{format_results(results)}")
return final
实测结果:结构化异议是六种策略中性价比最高的。它不需要额外的Agent角色,不显著增加token消耗(仅增加约15%),但将决策准确率提升到76%——仅次于完整的多模型混合策略。更值得注意的是,当所有Agent都犯错时,结构化异议的"自我纠错"信号是最早出现的——Agent在自反对环节往往会暴露自己推理中的漏洞。
跨栈对比:OpenAI Agents SDK的并行Runner.run使结构化异议实现最简洁。LangGraph需要使用SendAPI实现map-reduce模式。CrewAI的Process.hierarchical可以模拟但需要额外的manager Agent。
原理:为每个Agent提供不同的"视角信息",强制它们从不同角度看待问题,避免同质化思考。
Google ADK + A2A实现:
from google.adk import Agent, Runner
from google.adk.a2a import A2AClient
# 每个Agent有不同的"知识视角"
perspectives = {
"data_analyst": "Focus on quantitative evidence and statistical significance",
"domain_expert": "Focus on domain-specific constraints and real-world feasibility",
"risk_analyst": "Focus on downside scenarios and failure modes",
"user_advocate": "Focus on end-user experience and usability",
"contrarian": "Focus on why the popular answer might be wrong"
}
agents = []
for name, perspective in perspectives.items():
agent = Agent(
name=name,
model="gemini-2.5-pro",
instruction=f"""You are {name}. {perspective}.
IMPORTANT: You must NOT try to be balanced. Argue forcefully
from YOUR specific perspective only.""",
# A2A协议允许跨框架互操作
a2a_capability=A2AClient(
agent_card={
"name": name,
"capabilities": [perspective],
"perspective": perspective
}
)
)
agents.append(agent)
实测结果:视角注入将团队观点多样性提升2.3倍(用观点的余弦距离衡量),在开放式问题上的创造性得分提升34%。但在需要精确答案的任务(如数学推理)中,过度的视角多样性反而引入噪音,准确率下降8%。
Google ADK的优势:A2A协议的Agent Card机制天然支持"能力声明"——每个Agent在注册时就声明自己的视角和能力边界。其他框架需要手动在prompt中注入视角描述,而A2A是结构化元数据级别的隔离。
原理:借鉴联邦学习思想,不直接汇总Agent的原始回答,而是提取每个Agent回答中的"信号"(关键论点、置信度),在信号层面聚合。
AG2实现:
import ag2
# 定义信号提取器
signal_extractor = ag2.Agent(
name="signal_extractor",
system_message="""Extract structured signals from analysis:
{
"key_claims": ["claim1", "claim2"],
"confidence_per_claim": [0.8, 0.6],
"supporting_evidence": ["evidence1"],
"identified_risks": ["risk1"],
"assumptions": ["assumption1"]
}"""
)
group_chat = ag2.GroupChat(
agents=[analyst_1, analyst_2, analyst_3, signal_extractor, aggregator],
messages=[],
max_round=3 # 限制轮次防止螺旋
)
# 自定义speaker选择:确保signal_extractor在最后发言
group_chat.speaker_selection_method = "round_robin"
实测结果:联邦聚合在"信号质量"上表现最佳——提取的论点重叠度低,信息密度高。但引入signal_extractor作为额外Agent增加了28%的延迟和22%的token消耗。在时间敏感场景中需要权衡。
原理:使用不同厂商的LLM作为不同Agent的底座模型,利用模型间的差异性对抗群体思维。
Mastra实现:
import { Agent } from '@mastra/core';
import { openai } from '@ai-sdk/openai';
import { anthropic } from '@ai-sdk/anthropic';
import { google } from '@ai-sdk/google';
const agents = [
new Agent({
name: 'gpt-analyst',
model: openai('gpt-4.1'),
instructions: 'Provide analysis from a logical, structured perspective.'
}),
new Agent({
name: 'claude-analyst',
model: anthropic('claude-sonnet-4-6'),
instructions: 'Provide analysis focusing on nuance and edge cases.'
}),
new Agent({
name: 'gemini-analyst',
model: google('gemini-2.5-pro'),
instructions: 'Provide analysis with emphasis on factual grounding.'
}),
];
// Mastra workflow: 并行执行后加权聚合
const workflow = new Workflow()
.parallel(agents.map(a => a.step()))
.aggregate('weighted-consensus');
实测结果:多模型混合是最强策略——决策准确率达到82%,比单一模型团队高19个百分点。不同厂商的LLM有不同的"偏见方向"(GPT偏向结构化推理、Claude偏向细致分析、Gemini偏向事实性),这些偏见在混合后相互抵消。
但代价不菲:需要管理3套API密钥、3套计费逻辑、3套错误处理。在合规要求高的场景中,数据需要同时发送给三个厂商,可能违反数据驻留策略。
| 策略 | 准确率提升 | Token增量 | 延迟增量 | 实现复杂度 | 适用场景 |
|---|---|---|---|---|---|
| 匿名投票 | +29% | +5% | +12% | ★☆☆☆☆ | 选择型决策 |
| 魔鬼代言人 | +22% | +38% | +25% | ★★☆☆☆ | 分析型决策 |
| 结构化异议 | +34% | +15% | +8% | ★★☆☆☆ | 通用(推荐首选) |
| 信息茧房打破 | +18% | +20% | +15% | ★★★☆☆ | 创意型决策 |
| 联邦聚合 | +26% | +22% | +28% | ★★★★☆ | 高精度决策 |
| 多模型混合 | +40% | +30% | +20% | ★★★★★ | 关键决策 |
结构化异议是最优"第一策略"——15%的token增量换来34%的准确率提升,ROI最高。每个团队都应该从结构化异议开始,而非直接跳到复杂的多模型混合。
匿名投票是"零成本"基础——几乎不需要额外的工程投入,但效果显著。建议作为所有多Agent系统的默认基线。
多模型混合是"核武器"——效果最强但成本和复杂度也最高。应保留给高风险决策(医疗诊断、金融投资、安全审查)。
策略组合存在递减收益——同时使用匿名投票+结构化异议只比单独使用结构化异议多提升5%,不值得双倍的复杂度。选择一个主力策略深入实施优于堆叠多个浅层策略。
graph TB
subgraph Input["输入层"]
Q[问题/任务]
end
subgraph Isolation["隔离层 - 切断锚定路径"]
Q --> P1[Agent 1<br/>仅接收原始问题]
Q --> P2[Agent 2<br/>仅接收原始问题]
Q --> P3[Agent 3<br/>仅接收原始问题]
Q --> P4[Agent 4<br/>仅接收原始问题]
Q --> P5[Devil's Advocate<br/>仅接收原始问题]
end
subgraph Process["处理层 - 结构化异议协议"]
P1 --> S1[观点 + 3条自反对<br/>置信度: 82%]
P2 --> S2[观点 + 3条自反对<br/>置信度: 75%]
P3 --> S3[观点 + 3条自反对<br/>置信度: 90%]
P4 --> S4[观点 + 3条自反对<br/>置信度: 68%]
P5 --> S5[系统性反驳<br/>针对共识弱点]
end
subgraph Aggregate["聚合层 - 信号联邦"]
S1 --> F[信号提取器<br/>分离论点/证据/假设]
S2 --> F
S3 --> F
S4 --> F
S5 --> F
F --> V[加权投票<br/>高置信度论点权重↑<br/>多人独立识别的弱点权重↑]
end
subgraph Output["输出层"]
V --> R[最终决策<br/>附带 dissent report]
V --> DR[Dissent Report<br/>记录被否决的观点及理由]
end
style Isolation fill:#e8f5e9,stroke:#4caf50
style Process fill:#fff3e0,stroke:#ff9800
style Aggregate fill:#e3f2fd,stroke:#2196f3
LangGraph的SendAPI和并行节点执行使其成为实现隔离策略的理想选择。通过StateGraph的状态隔离,可以精确控制哪些信息在节点间传递。
优势:细粒度状态控制、原生并行执行、持久化状态支持断点续作。
劣势:隔离策略需要大量样板代码,没有内置的群体思维防护机制。开发者必须自行设计状态结构来避免信息泄漏。
变现评估:LangGraph的抗群体思维实现可以作为"高级编排模式"训练营的高级模块,适合有一定LangGraph基础的开发者。预计付费转化率35-40%。
CrewAI的角色系统天然赋予Agent不同的"身份",这既可能导致权威服从(Senior/Junior标签),也可以被反向利用——设计"平等但有差异"的角色来促进视角多样性。
优势:角色定义直觉化,上手门槛低,Process.hierarchical可以模拟结构化异议流程。
劣势:角色标签带来的权威效应难以消除,sequential process是群体思维的重灾区。
OpenAI Agents SDK的Handoff机制默认传递完整上下文——这是群体思维的主要泄漏路径。2026年3月的SDK更新引入了Handoff.input_filter,允许开发者控制传递哪些上下文。
from agents import Agent, handoff
# 关键:使用input_filter隔离上下文
filtered_handoff = handoff(
agent=analyst_agent,
input_filter=lambda ctx: {
"messages": ctx["messages"][-1:] # 只传递最后一条消息
}
)
优势:Handoff filter是新特性,社区关注度低,先发者有竞争优势。SDK原生guardrails可以在Handoff点做输出检查。
劣势:Handoff filter目前只支持简单的消息过滤,不支持基于语义的上下文选择。在复杂场景中需要自定义filter逻辑。
A2A协议的Agent Card机制提供了协议级别的上下文隔离——Agent声明自己的能力和视角,而非暴露完整的推理过程。这使得A2A成为"天然抗群体思维"的框架。
优势:Agent Card是结构化元数据,可以被程序化消费;A2A协议支持跨框架互操作,可以使用不同厂商的Agent混合。
劣势:A2A生态仍在早期阶段(2026年5月),可用的远程Agent端点有限。本地模拟需要额外的boilerplate。
AG2(原AutoGen社区版)的GroupChat提供了max_round和自定义speaker_selection_method,可以限制讨论轮次来防止确认螺旋。
优势:对话模式最接近人类会议,认知模型成熟。max_round是防止螺旋的最简机制。
劣势:对话模式本身就容易产生群体思维——对话是顺序的、上下文是共享的。需要在prompt层面做大量工程来补偿。
Mastra的workflow DSL支持并行分支和聚合节点,可以干净地实现隔离-聚合模式。
优势:TypeScript类型安全、workflow可视化调试、支持多模型provider。
劣势:生态较新(2026年初),社区资源有限,生产案例较少。
选择型决策(从A/B/C中选)→ 匿名投票 + 5Agent
实现:任意框架均可,LangGraph最简洁
成本:约$0.02/次(GPT-4.1-mini)
分析型决策(需要深度推理)→ 结构化异议 + 3-5Agent
实现:CrewAI(角色驱动)或 OpenAI Agents SDK(Handoff filter)
成本:约$0.08/次(GPT-4.1)
创意型决策(需要新颖性)→ 信息茧房打破 + 5-7Agent
实现:Google ADK(视角注入)+ A2A跨框架
成本:约$0.12/次(混合模型)
关键决策(不可承受错误)→ 多模型混合 + 全套策略
实现:Mastra(多provider)+ 联邦聚合
成本:约$0.35/次(三模型混合)
不需要一次实施所有策略。以下是分阶段路径:
Phase 1(1天实施):在所有Agent的system prompt中加入结构化异议指令——"在回答之前,先列出2-3个反对你自己观点的理由"。零架构变更,15%token增量。
Phase 2(1周实施):将顺序执行改为并行执行+投票聚合。在LangGraph中使用SendAPI,在OpenAI SDK中使用并行Runner.run。
Phase 3(1月实施):引入多模型混合和联邦聚合。需要设计信号提取器和加权聚合逻辑。
Phase 4(持续优化):建立决策质量回溯机制——记录每次多Agent决策的过程和结果,定期分析哪些场景下群体思维仍然严重,针对性加强。
在$0.05/次的预算下: - 最佳配置:3-Agent + 结构化异议 + GPT-4.1-mini,准确率约73% - 不要用5-Agent + 匿名投票——token浪费在冗余的相似答案上
在$0.15/次的预算下: - 最佳配置:5-Agent + 结构化异议 + GPT-4.1,准确率约79% - 联邦聚合的额外28%延迟不值得这档预算的投入
在$0.35/次的预算下: - 最佳配置:3-Agent × 3模型 + 结构化异议 + 加权投票,准确率约85% - 这是"不惜代价求质量"的配置,适用于医疗/金融/安全场景
当前业界缺乏统一的"认知多样性"度量标准。余弦距离和观点重叠度是常见代理指标,但无法捕捉推理路径的多样性——两个Agent可能给出相同答案但通过完全不同的推理路径到达,这种"暗多样性"才是集体智慧的核心。
2026年3月的arXiv论文《Multi-Agent Memory from a Computer Architecture Perspective》提出了"推理拓扑熵"的概念——用信息论方法度量Agent推理路径的多样性。这是群体思维治理的理论基础,但目前还没有框架实现这一度量。
"多少个Agent最优?"这个问题没有固定答案。我们的测试显示:
理想的系统应该根据问题复杂度动态调整Agent数量——简单问题用1-2个Agent独立完成,复杂问题用5-7个Agent结构化讨论。目前没有框架原生支持这种动态伸缩。
当多Agent系统持续运行时,"历史共识"成为新的群体思维来源。Agent A在昨天达成的共识会通过记忆系统影响今天的判断。这种跨时间维度的群体思维比单次讨论中的群体思维更难检测和治理——需要在记忆层面实施"遗忘策略"或"记忆衰减"。
Mem0在2026年5月发布的"State of AI Agent Memory"报告中讨论了记忆衰减机制,但尚未将其与群体思维治理关联。这是一个有潜力的研究方向。
[!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 等场景全覆盖。
