
1. 项目概述当AI谈判桌上有了“情绪”“Deal Me Maybe: The Role of Emotions in Multi-Agent Negotiation”这个标题直译过来是“也许成交吧情绪在多智能体谈判中的作用”。乍一看它像是一个学术论文的标题充满了距离感。但如果你把它拆开会发现它指向了一个非常前沿且接地气的领域让一群AI在谈判时学会“带点情绪”。想象一下这个场景你正在玩一个策略游戏需要和几个由AI控制的角色谈判结盟或者交易资源。如果这些AI都像冰冷的计算器只根据预设的规则和利益最大化公式来出牌整个过程会变得极其可预测甚至枯燥。反过来如果AI能模拟出人类在谈判中的情绪波动——比如因被压价而感到“不满”因获得意外让步而“愉悦”甚至因为谈判僵局而“焦虑”——那么整个交互过程会瞬间变得生动、复杂也更贴近真实的人类社会互动。这就是“多智能体情绪谈判”的核心在纯粹理性博弈的框架上引入情绪作为一个动态变量从而影响决策、策略乃至最终的合作结果。这个项目绝不仅仅是给AI加上几个表情符号那么简单。它涉及到如何量化“情绪”如何定义情绪对决策函数的影响权重以及如何在多个AI的交互中让情绪像涟漪一样扩散和相互影响。对于开发者、游戏设计师、社交机器人研究者甚至是自动化商务谈判系统的构建者来说理解并实现这套机制意味着能创造出更具沉浸感、更智能、也更难以预测的交互体验。简单说它让AI从“会算”变得“会演”再从“会演”无限逼近“真有那么回事”。接下来我将以一个实践者的角度拆解构建这样一个多智能体情绪谈判系统的核心思路、技术选型、实操细节以及那些容易踩坑的地方。无论你是想在自己的游戏中加入更聪明的NPC还是研究下一代人机交互这些内容都能提供一个扎实的起点。2. 核心设计思路情绪不是装饰是驱动引擎在传统多智能体系统中谈判通常被建模为博弈论问题比如讨价还价模型。每个智能体Agent都有一个效用函数代表其对不同谈判结果的偏好然后通过一系列提案和反提案寻求纳什均衡或帕累托最优解。这个过程是纯粹理性的。而引入情绪意味着我们要修改这个基础模型。情绪在这里扮演几个关键角色内部状态调节器情绪会动态改变智能体自身的效用函数或风险偏好。例如一个“愤怒”的智能体可能更看重“惩罚”不合作的对手即使这会牺牲部分自身利益一个“快乐”的智能体可能更愿意做出小幅让步以促成合作。策略选择触发器不同的情绪状态会触发不同的谈判策略库。冷静时可能采用整合式谈判寻求共赢焦虑时可能转向分配式谈判零和博弈。社会信号发射器情绪通过表情、语气或文本在模拟中传达给其他智能体成为影响对方决策的重要信号。一个表达出“极度失望”的智能体可能会让对手重新评估自己的要价是否合理。记忆与关系塑造者情绪体验会被记忆并影响智能体之间长期的关系模型。一次愉快的合作经历能积累“好感度”让未来的谈判更顺畅反之冲突则会滋生“不信任”。因此我们的系统设计必须包含以下几个核心模块情绪模型如何定义和量化情绪情绪产生器情绪因何而起事件评估情绪影响机制情绪如何改变决策逻辑情绪表达与感知情绪如何被表达并被其他智能体解读多智能体交互框架如何在一个共同的环境中进行带情绪的谈判2.1 情绪模型选型从离散分类到连续空间情绪建模主要有两大流派离散分类模型和维度空间模型。离散分类模型如Ekman的六种基本情绪快乐、悲伤、愤怒、恐惧、厌恶、惊讶。这种模型直观易于实现。我们可以为每种情绪定义一组行为倾向如愤怒→提高要价、降低妥协概率。在游戏或简单模拟中这通常够用。维度空间模型更受计算学界青睐。最常见的是PAD三维情绪模型愉悦度从痛苦到愉悦。激活度从沉睡到兴奋。优势度从受支配到支配。PAD模型将情绪表示为一个三维空间中的点或向量任何情绪状态都可以由这三个维度的连续值组合而成。例如“愤怒”可能是不愉悦高激活高优势而“恐惧”可能是不愉悦高激活低优势。这种模型的优势在于可计算性和平滑过渡。情绪的变化可以表示为空间中的向量移动更容易集成到基于数值的效用函数中。实操心得对于研究或复杂模拟强烈建议从PAD模型入手。它提供了更大的灵活性和解释空间。你可以很容易地将谈判事件如“对方拒绝我的核心条款”映射为对PAD三个维度的增量影响ΔP, ΔA, ΔD然后让情绪状态自然演化。2.2 情绪如何产生基于事件的评估理论情绪不会凭空产生。在心理学上评估理论认为情绪是对个人相关事件进行一系列评估的结果。我们可以为每个智能体设计一个“事件评估器”。当一个谈判事件发生时如“收到提案”、“提案被接受/拒绝”、“谈判超时”评估器会从以下几个维度分析该事件目标一致性这事对我达成目标有利还是有害影响愉悦度P紧迫性/突然性这事是预期的还是突发的影响激活度A控制感/公平性我对这事有控制力吗过程公平吗影响优势度D归因这事是谁造成的是对手、环境还是我自己例如一个对智能体A非常不利的提案被提出评估目标一致性→极有害ΔP 大幅下降评估突然性→预期内ΔA 小幅上升评估公平性→对方在恶意压价ΔD 下降归因对手综合这些评估可能生成一个指向低P中高A低D的情绪向量即“沮丧”或“受挫的愤怒”。2.3 情绪如何影响决策修改效用函数与策略这是情绪模型与谈判引擎对接的关键。情绪不能直接替代理性计算而是作为调制器。方法一情绪偏置效用函数智能体的最终效用 理性效用 情绪偏置。 例如在“愤怒”状态下低P高A高D智能体可能产生“惩罚性偏置”U_final(deal) U_rational(deal) - λ * (对手从交易中获益)其中λ 是随愤怒强度增加的权重系数。这样即使一个交易在理性上略有收益但如果对手获益更多愤怒的智能体也可能拒绝它。方法二情绪切换策略为每种基础情绪或PAD象限预定义一套谈判策略参数。高愉悦度高优势度满足、骄傲可能采用更宽容的策略让步幅度稍大愿意探索共赢选项。低愉悦度高激活度愤怒、焦虑可能采用更激进、更不妥协的策略甚至以退出谈判相威胁。低激活度厌倦、沮丧可能快速做出决定无论是接受还是拒绝以结束当前令人不适的进程。智能体的当前情绪状态决定了激活哪一套策略参数库。方法三情绪影响风险态度大量研究表明情绪影响风险偏好。我们可以让情绪维度如激活度A直接影响智能体在谈判中的风险参数。高激活度兴奋或焦虑可能导致更冒险的行为要么豪赌一把争取最大利益要么为避免损失而仓促接受低激活度则可能导致风险厌恶选择最稳妥的方案。注意事项情绪对决策的影响必须是有界和可衰减的。不能让一次“暴怒”导致智能体永久性地采取非理性行为。通常需要设计一个情绪衰减函数让情绪状态随时间或经过正面事件后逐渐回归中性原点。例如每个谈判回合后情绪向量以一定系数向原点收缩。3. 系统架构与核心模块实现基于以上思路我们可以构建一个模块化的多智能体情绪谈判系统。这里以一个基于离散事件模拟的框架为例。3.1 整体架构设计系统主要包含以下组件环境定义谈判议题如价格、数量、交付时间、可选协议空间、以及回合制或实时制的谈判流程。智能体每个智能体是一个独立对象包含内部状态目标、底线、信念关于对手的模型。情绪模型当前PAD值。评估模块将外部事件转化为情绪增量。决策模块结合理性效用和当前情绪生成提案或对提案做出响应。表达模块将内部情绪状态转化为可被观察的信号如文本语气强度。交互通道智能体之间交换提案和情绪信号的接口。模拟引擎控制谈判轮次记录日志判断终止条件达成协议、超时、破裂。3.2 情绪模型模块实现我们采用PAD三维模型。每个智能体初始化时有一个中性情绪向量[P0, A0, D0]取值范围通常为[-1, 1]。class EmotionalAgent: def __init__(self, agent_id): self.id agent_id # 情绪状态Pleasure, Arousal, Dominance self.emotion np.array([0.0, 0.0, 0.0]) # 初始中性 self.emotion_decay_rate 0.1 # 每回合情绪衰减系数 self.personality np.array([0.0, 0.0, 0.0]) # 性格基线影响情绪反应强度 def update_emotion(self, delta): 更新情绪状态并施加衰减 # delta 是一个三维向量来自事件评估 self.emotion delta # 叠加性格基线影响例如乐观性格可能使P永远偏向正方向 self.emotion self.personality * 0.1 # 施加边界限制 self.emotion np.clip(self.emotion, -1.0, 1.0) # 情绪衰减向原点收缩 self.emotion * (1 - self.emotion_decay_rate) def get_emotion_label(self): 将PAD向量映射为近似的人类情绪标签用于可视化或简单表达 P, A, D self.emotion if P 0.5 and A 0.3: return 兴奋 elif P 0.3 and D 0.4: return 自信 elif P -0.4 and A 0.4 and D -0.2: return 沮丧 elif P -0.3 and A 0.5 and D 0.3: return 愤怒 elif A -0.4: return 厌倦 else: return 平静3.3 事件评估与情绪增量计算这是系统的“魔法”所在。我们需要一个评估规则集。class AppraisalModule: def __init__(self, agent): self.agent agent def assess_proposal(self, proposal, from_agent_id): 评估收到的提案 delta np.array([0.0, 0.0, 0.0]) # ΔP, ΔA, ΔD my_utility self.agent.calculate_utility(proposal) my_reservation_price self.agent.reservation_price # 底线 # 1. 目标一致性 - 影响愉悦度 (P) if my_utility my_reservation_price: # 有利可图 delta[0] 0.2 * (my_utility - my_reservation_price) # 越有利越愉悦 else: # 低于底线 delta[0] - 0.5 # 强烈不悦 # 2. 公平性/优势度 - 影响优势度 (D) # 简单假设如果对方要价远低于市场价我方感知我方感觉被支配 if proposal[price] self.agent.beliefs[fair_market_price] * 0.7: delta[2] - 0.3 # 感觉被压制 # 3. 突然性/与预期对比 - 影响激活度 (A) expected self.agent.get_expected_proposal(from_agent_id) if proposal is far from expected: # 伪代码表示差异大 delta[1] 0.4 # 激活度提高惊讶 return delta3.4 情绪调制决策模块决策模块需要整合理性效用和当前情绪。class DecisionModule: def __init__(self, agent): self.agent agent self.base_concession_rate 0.05 # 理性让步率 def generate_counter_proposal(self, last_proposal): 基于当前情绪生成反提案 P, A, D self.agent.emotion # 情绪影响让步策略 # 高愉悦度 - 更合作让步稍大 # 低愉悦度 高优势度愤怒- 更强硬甚至反向施压 # 低优势度沮丧- 可能快速妥协或放弃 emotion_factor 1.0 if P 0.3: emotion_factor 0.1 # 更愿意让步 elif P -0.3 and D 0.2: emotion_factor - 0.15 # 更不愿意让步甚至可能提高要价 elif D -0.4: # 沮丧时可能做出非理性的大幅让步以求结束 emotion_factor 0.25 # 激活度影响决策速度/随机性 if A 0.6: # 兴奋或焦虑时决策可能更冲动引入随机扰动 random_perturbation np.random.normal(0, 0.1) else: random_perturbation 0 # 计算新的提案例如调整价格 new_concession self.base_concession_rate * emotion_factor random_perturbation new_price self.agent.calculate_new_price(last_proposal[price], new_concession) # 情绪影响底线愤怒时可能临时提高底线宁可谈崩 current_reservation self.agent.reservation_price if P -0.4 and A 0.5: current_reservation * 1.05 # 临时提高底线5% # 如果新价格低于情绪化后的底线则可能拒绝继续 if new_price current_reservation: return {action: reject, message: fAgent {self.agent.id}: 这完全不可接受} else: return {action: propose, price: new_price}3.5 多智能体交互与情绪传染情绪不仅影响自己还能影响他人即“情绪传染”。这可以通过在交互信号中嵌入情绪强度来实现。当一个智能体发送提案时它可以附带一个简单的情绪标签或强度值源自其get_emotion_label()或emotion向量的模长。接收方在评估提案事件时这个情绪信号可以作为评估的一个额外维度。例如收到一个附带“愤怒”信号的提案接收方的评估模块可能会这样处理# 在 assess_proposal 方法中补充 if signal.get(emotion) angry: # 对方愤怒可能意味着我的提案触及其核心利益我需要更谨慎 delta[1] 0.2 # 我的激活度提高警觉 delta[2] - 0.1 # 我的优势度略微下降感受到压力这样情绪就在智能体网络中流动起来形成了一个动态的社会情感场。4. 谈判策略库与情绪适配一个只有情绪而没有策略的智能体是混乱的。我们需要一个基础的谈判策略库然后让情绪去调制这些策略的参数。以下是几种常见策略及其与情绪的适配4.1 时间依赖策略让步策略这是最常见的策略随着谈判时间推移智能体逐步向对方的立场靠拢。情绪可以动态调整让步曲线的形状和让步率。理性曲线让步随剩余时间呈线性或指数减少。情绪调制焦虑高A低D让步曲线前端更陡峭早期就做出较大让步。愤怒低P高A高D让步曲线几乎平坦甚至在某些阶段反向移动提高要求。满足高P中D在达成初步共识后让步率在末期略微增加以促成最终协议。4.2 行为依赖策略模仿或反制根据对手的行为调整自己的行为。情绪影响对对手行为的解读和反应强度。以牙还牙上一轮对手让步本轮我也让步对手强硬本轮我也强硬。情绪调制快乐/信任可能采用“宽容的以牙还牙”即对手强硬时我仅轻微强硬给对手改正机会。不信任/愤怒可能采用“过激反应”对手轻微强硬我就剧烈强硬甚至引入惩罚性行动。4.3 基于效用的策略直接围绕效用函数进行优化。情绪通过修改效用函数本身来施加影响如前文所述。情绪偏置在计算提案效用时加入对“公平性”、“关系价值”、“惩罚对手”等情绪化维度的考量并赋予这些维度随情绪状态变化的权重。实操心得不要试图让一个智能体在所有情绪下都使用同一种策略。更好的方法是设计一个“策略-情绪”映射表。例如当情绪处于“平静-自信”象限时使用整合式谈判策略探索多议题交换当情绪滑向“愤怒-支配”象限时切换到竞争性分配式策略。策略切换本身也可以设计一个平滑过渡函数避免行为突变。5. 评估与调试如何知道你的AI“有情绪了”构建系统只是第一步更关键的是评估其行为是否符合“带情绪的谈判者”预期。不能只看最终成交价要看过程。5.1 过程指标谈判轮次情绪化智能体的谈判轮次是否比纯理性智能体更多变愤怒导致的僵局可能增加轮次焦虑可能导致过早结束。提案序列波动性计算双方提案序列的标准差。情绪波动可能导致提案价格上下跳动而非平滑收敛。情绪轨迹可视化绘制每个智能体在整个谈判过程中的PAD三维轨迹图。观察情绪如何随着关键事件如对方拒绝、做出让步而演变。健康的系统应该显示出清晰的事件-情绪响应。话语/信号分析如果智能体有文本生成能力分析其生成的消息的情感倾向并与内部情绪状态做相关性检验。5.2 结果指标协议达成率引入情绪后是更容易达成协议还是更容易破裂这取决于情绪模型的设计。一个合理的系统可能在不同情境下有不同的达成率。联合收益比较纯理性谈判和情绪化谈判下双方总收益帕累托前沿上的位置。好的情绪模型有时能通过表达不满而迫使对方重新评估从而找到更优解坏的情绪模型可能导致双输。公平性感知可以引入第三方人类评估员观看谈判日志评估他们觉得哪一方更“合理”、过程更“公平”。情绪表达有时能增加过程的可解释性和“人性化”感知。5.3 调试技巧情绪强度校准最常见的Bug是情绪影响过强或过弱。过强导致行为完全失控过弱则看不出效果。可以通过设置一个“情绪增益”全局系数从小开始如0.1逐步调大观察行为变化拐点。衰减率调试情绪不衰减智能体会“记仇”到底衰减太快情绪又形同虚设。需要测试不同衰减率下智能体对连续负面事件的反应是累积爆发还是快速遗忘。事件评估权重评估规则中各个维度目标一致性、紧迫性等的权重需要仔细调整。这决定了智能体的“性格”。例如一个“神经质”的智能体可能对“紧迫性”赋予极高权重容易焦虑。分离测试关闭情绪传染模块先测试单个智能体的情绪-决策回路是否工作正常。然后再开启传染观察社会效应。避坑指南避免陷入“情绪决定论”。情绪应该影响决策而不是取代决策。始终保持一个理性的效用函数作为基底情绪只是在这个基底上添加偏置或调整参数。否则系统将完全不可预测且难以调试。一个有用的检查方法是即使把情绪增益调到最大智能体的行为也应在一定程度上符合其根本利益虽然可能以非最优的方式追求而不是完全自毁长城。6. 进阶方向与应用场景拓展当基础系统跑通后可以考虑以下几个进阶方向让系统更强大、更逼真。6.1 个性化与长期关系建模每个智能体可以拥有不同的“情绪性格”基线如前文代码中的personality向量。例如乐观型基线P值偏高更容易从事件中看到积极面恢复快。易怒型基线A值高对负面事件反应剧烈。冷静型基线A值低情绪波动小。更重要的是基于多次交互智能体可以建立对他人情绪的预期模型。“我知道Agent B容易焦虑所以我第一次报价不能太低以免吓跑他。” 这种关系记忆能让谈判策略更具针对性。6.2 混合激励设置在现实谈判中参与者并非只有单一的经济利益。我们可以为智能体设置混合激励外在激励直接的经济收益谈判标的。内在激励维护自我形象、表达价值观、体验公平感。关系激励维持或改善与对方的关系以获得未来合作机会。情绪可以成为连接内在/关系激励与决策的桥梁。例如“公平感被侵犯”触发的愤怒情绪会驱动智能体去追求内在激励惩罚对方、维护公平即使牺牲部分外在经济激励。6.3 应用于复杂场景多边联盟谈判在多个智能体之间情绪传染和关系网络会变得极其复杂。A对B的愤怒可能影响C对A的信任从而改变整个联盟格局。这需要建模更复杂的情绪社会网络。人机谈判训练系统可以作为人类的谈判对手提供各种情绪化谈判风格的训练。人类用户可以学习如何识别AI的情绪信号并采取相应的应对策略。叙事生成与游戏在角色扮演游戏中NPC之间基于情绪的自动化谈判可以动态生成丰富的支线剧情和角色关系变化极大提升游戏世界的生动性和重玩价值。自动化客服与争议解决在商务场景能够理解客户情绪通过文本/语音分析并调整自身“情绪”状态的谈判AI可以提供更人性化、更有效的服务。例如在检测到客户 frustration 时AI可以调整策略表现出更高的“共情”提高D值以示尊重和更灵活的解决方案。构建一个有效的多智能体情绪谈判系统本质是在理性决策的坚实骨架之上赋予AI一副情感的“血肉”。这副血肉不能是随意生长的它必须遵循一定的生理学心理学原理并且受骨架的约束。这个过程充满挑战但也正是其魅力所在——它让我们在创造智能的道路上向理解人类社交智能的复杂性又迈进了一小步。从我个人的实验来看当你看到两个AI因为“情绪”而谈出一场出乎意料、却又在情理之中的交易或冲突时那种感觉远比看它们完成一次完美的理性计算要有趣得多。这或许就是“情绪”在智能体中存在的最大意义它引入了不确定性、故事性和真正意义上的交互深度。