Attention MoA

(arxiv 2026)

美团 LongCat Interaction 出品

传统的 MoA (Mixture-of-Agents)框架通常只是简单地将不同模型的输出拼接在一起,缺乏深度的语义交流 。这种方式无法促使代理主动纠正彼此的逻辑错误 。同时,随着协作网络层数的加深,还会导致信息退化和计算资源的巨大浪费 。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
def Attention_MoA(query_x, max_layers_L, agents_col, agent_sum, agent_res):
"""
Attention-MoA 核心执行流程
query_x: 用户的初始提问
max_layers_L: 系统允许的最大推理层数 (深度)
agents_col: 用于生成和互相纠错的异构代理集合 (例如各种开源大模型)
agent_sum: 负责将层内大家的意见总结起来的代理 (例如 Claude-4.5)
agent_res: 负责结合历史记录进行最终拍板并决定是否早停的残差代理
"""

# 初始化历史上下文堆栈,用于保存每一层的结果,防止模型“健忘”
history_H = []

for l in range(1, max_layers_L + 1):

# ==========================================
# 模块一:层内交互 (Intra-layer) -> 跨代理语义注意力
# ==========================================

# 1. 确定本层的输入 u_l
if l == 1:
u_l = query_x # 第一层只看原始问题
else:
u_l = (query_x, final_output) # 后续层需要参考上一层得出的结论

# 2. 异构代理响应采样:每个代理独立思考,给出第一版答案
initial_responses = []
for agent_i in agents_col:
r_i = generate_response(u_l, agent_i)
initial_responses.append(r_i)

# 3. 计算语义注意力:大家互相“挑错”和“提建议” (同行评审阶段)
refined_responses = []
for agent_j, r_j in zip(agents_col, initial_responses):
attention_instructions_for_j = []

# agent_j 收集来自所有 agent_i(包括自己)的具体修改意见
for agent_i, r_i in zip(agents_col, initial_responses):
# agent_i 根据自己的答案 r_i,对 agent_j 的答案 r_j 提出自然语言修改建议
suggestion = F_generate_suggestion(query_x, r_i, r_j, agent_i)
attention_instructions_for_j.append(suggestion)

# 4. 语义注意力聚合:agent_j 听取了大家的建议后,修改并完善自己的答案
r_j_prime = G_update_response(query_x, r_j, attention_instructions_for_j, agent_j)
refined_responses.append(r_j_prime)

# 5. 层内总结:总结代理出马,把大家修改后的高质量答案融合成一个共识版本
y_tilde_l = H_summarize(query_x, refined_responses, agent_sum)


# ==========================================
# 模块二:层间传递 (Inter-layer) -> 残差模块与自适应早停
# ==========================================

if l == 1:
# 第一层没有历史包袱,直接把层内总结作为输出
final_output = y_tilde_l
history_H.append(final_output)
else:
# 1. 历史响应积累:把本层的新鲜共识加入历史记忆库
history_H.append(y_tilde_l)

# 2. 残差合成与评估:残差代理结合所有的历史信息,生成本层最终答案
# 同时,它会评估这个答案是不是已经足够完美了,给出停止信号 (stop_signal)
final_output, stop_signal_s_l = R_synthesize_and_evaluate(query_x, history_H, agent_res)

# 3. 自适应早停机制控制流
if stop_signal_s_l == 1:
# 代理认为答案已经很棒了,没必要继续浪费算力,直接跳出循环 (Terminate)
break
else:
# 代理认为逻辑还不稳固,进入下一层循环继续打磨 (Continue)
continue

return final_output

实验

  • 大规模配置:该设置采用先进的大型语言模型作为协作智能体:Claude-4.5-Sonnet Anthropic (2025),
    Gemini-2.5-Pro Comanici et al. (2025),GPT-4.1 OpenAI (2025),Qwen-Max Team (2025),以及
    DeepSeek-V3.1 Liu et al. (2024)。对于层内摘要智能体和残差合成智能体,我们采用 Claude-4.5-
    Sonnet。
  • 小规模配置:该设置在较小且高效的模型上测试框架:Mistral-Small-3.2-24B-Instruct-2506 Rastogi
    et al. (2025),Qwen3-32B Yang et al. (2025a),gemma-3-12b-it Team et al. (2025),Llama-4-Scout-
    17B-16E-Instruct Meta (2025),以及 gpt-oss-20b Agarwal et al. (2025)。其中,gpt-oss-20b 作为聚
    合智能体。

对于简洁性(conciseness)和效率(efficiency)落后于claude-4.5-sonnet和标准MoA。

是注意力-MoA 架构的预期结果:通过整合多种视角以最大化信息密度,模型倾向于生成更全面、更详细的回应,这自然会影响基于简洁性的得分。