1. 项目概述当AI学会“感同身受”最近在智能体研究圈里一个话题的热度持续攀升如何让AI不仅会计算还能“理解”他人这听起来有点玄乎但背后指向的是一个非常硬核且前沿的方向——基于主动推理的共情建模。简单来说我们不再满足于让智能体在囚徒困境这类博弈中做出最优解而是希望它能像人类一样通过模拟他人的内心状态视角采择来预测对方行为并最终实现更深层次的协作与对齐。我花了几个月时间围绕“Empathy Modeling in Active Inference Agents for Perspective-Taking and Alignment”这个核心命题进行了一系列从理论到代码的探索。这不仅仅是给智能体加一个“同情心”模块而是从认知科学和计算神经科学的底层框架出发重构智能体与世界、与其他智能体互动的方式。主动推理提供了一个优雅的数学框架将感知、行动和学习统一为最小化自由能或惊奇的过程。而共情建模则是将这个框架从单一的“自我模型”扩展到包含“他者模型”的层次。在这个过程中我反复用迭代囚徒困境作为沙盘。因为它足够简单规则清晰又足够复杂能完美体现短期背叛与长期合作的张力以及理解对手意图Theory of Mind所带来的巨大优势。一个只会计算眼前得失的智能体和一个能推断“对方可能认为我会背叛所以我要先合作以建立信任”的智能体在长期博弈中的表现是天壤之别的。如果你正在研究多智能体系统、人机交互、具身AI或者对构建真正具有社会智能的算法感兴趣那么这次关于如何将共情“计算化”的实践笔记或许能给你带来一些不一样的思路。下面我将拆解整个项目的设计思路、核心实现细节、踩过的坑以及一些尚未解决的开放性问题。2. 核心架构从单一脑到“多脑”协同的主动推理传统的主动推理智能体其核心是一个生成模型。这个模型描述了智能体如何相信世界状态隐藏状态会产生其感官观察以及其行动如何影响状态转换。智能体的目标是通过行动使其预期的感官输入与生成模型的预测保持一致从而最小化长期的自自由能即惊奇。然而当引入“他者”时一切都变了。我们面对的不再是一个客观的、物理的世界而是一个充满其他意图性主体的社会世界。我的项目架构核心便是将这种社会性纳入主动推理框架。2.1 分层生成模型设计我设计的核心是一个分层生成模型它包含两个紧密耦合的部分自我模型与经典主动推理智能体相同负责建模自身与物理/任务环境的互动。例如在囚徒困境中这包括“我上一轮的选择合作/背叛”、“我当前的收益”以及“环境规则”。他者模型这是一个关键创新。它尝试模拟另一个智能体对手的内心状态。这个模型同样是一个主动推理过程但它运行在“我”的头脑中用以推断对手的信念、欲望和意图。信念对手认为“我”是什么类型的玩家是宽容的、报复性的还是随机的欲望对手想要最大化自己的收益还是寻求某种公平意图基于其信念和欲望对手在下一轮最可能采取什么行动这个他者模型并不是凭空创造的。它的先验和动态部分来自于我自身模型的投射“如果我是他我会怎么想”部分来自于对对手历史行为的观察学习。这就构成了一个“模型中的模型”结构。2.2 视角采择作为贝叶斯推理视角采择在这里不是一个比喻而是一个实实在在的贝叶斯推理过程。具体流程如下观察我接收到对手上一轮的行动a_other。更新他者模型我将a_other作为观察数据输入到我内部的他者模型中更新我对于对手信念状态s_other的后验估计。这通过贝叶斯定理完成P(s_other | a_other) ∝ P(a_other | s_other) * P(s_other)其中P(a_other | s_other)是他者模型的似然函数即“给定对手的信念状态他采取某个行动的概率”P(s_other)是我对对手信念的先验。预测与规划利用更新后的他者模型我可以预测对手在下一轮可能的行为分布P(a_other_next)。然后我的自我模型在规划自身下一轮行动a_self时会将这个预测作为环境动态的一部分来考虑。我的目标不再是单纯最大化自身收益而是最小化一个包含了“自身收益惊奇”和“与对手互动关系的不确定性”的广义自由能。注意这里的“他者模型”复杂度需要谨慎设计。一个过于简单的模型如只假设对手是静态策略无法捕捉复杂行为一个过于复杂的模型完全复制一个自我模型则会导致计算爆炸和“心智理论爆炸”问题。我的经验是从一个参数化的策略空间如 Tit-for-Tat, Pavlov, Random开始让智能体学习推断对手最可能遵循哪个策略及其参数。2.3 对齐作为自由能最小化的涌现在这个框架下智能体间的对齐不再是预设的目标而是交互过程中涌现的属性。当两个都具备共情建模能力的主动推理智能体相遇时会发生什么它们各自运行着包含对方模型的生成模型。通过反复的互动它们不仅在学习环境规则更在相互“校准”彼此的他者模型。理想情况下这个过程会收敛到一种状态每个智能体内部的他者模型都能相当准确地预测对方的行为而每个智能体自身的行动也符合对方模型的预期。这种相互预测的准确性越高互动就越顺畅长期协作收益就越大——这就是一种计算意义上的“对齐”或“共识”。在囚徒困境中这表现为从最初的试探、可能发生的背叛逐渐演变为稳定的合作。因为智能体通过共情推理发现维持一个“合作者”的信念并采取合作行动能最小化长期互动的自由能减少关于对方行为的不确定性获得稳定收益。3. 实现细节在迭代囚徒困境中构建共情智能体理论很美妙但代码才是检验真理的唯一标准。我选择 Python 作为实现语言因其在科学计算和机器学习库方面的强大生态。核心依赖包括numpy用于数值计算pymdp一个优秀的主动推理库作为基础框架并在此基础上进行扩展。3.1 定义状态、观察与行为空间首先需要为自我模型和他者模型明确定义空间。自我模型隐藏状态s_self。这里我将其定义为二元组(my_last_action, other_last_action)即上一轮“我”和“对手”的行动。这捕获了博弈的直接历史。观察o_self。即本轮看到的“对手的行动”和“获得的收益”。行为a_self。{合作背叛}。他者模型内部模型隐藏状态s_other。这是共情建模的核心。我将其设计为一个离散概率分布表示“我”认为“对手”所遵循的策略类型。例如状态空间可以是[TitForTat, Grim, Random, Cooperator, Defector]每个状态对应一个策略函数及参数如原谅概率。观察o_other。从“我”的视角输入给他者模型的观察是“我上一轮的行动”和“对手上一轮的行动”。这是他者模型推断对手信念的依据。行为a_other预测。他者模型输出的不是实际行为而是对手可能行为的概率分布P(a_other)供自我模型规划时使用。3.2 构建耦合的A矩阵与B矩阵在主动推理中A矩阵似然矩阵定义了状态产生观察的概率B矩阵转移矩阵定义了在行为影响下状态如何转移。自我模型的A矩阵这相对简单。给定状态(my_last_action, other_last_action)收益是确定的根据囚徒困境收益表。观察到对手行动的概率在理想情况下是确定的即真实对手的行动但为了鲁棒性我添加了一个小的噪声参数如0.05表示有极小的概率观察错误。自我模型的B矩阵这定义了状态转移。下一轮的my_last_action取决于我本轮选择的行动a_self。而下一轮的other_last_action是不受我直接控制的它取决于真实对手的行动。这里是共情建模接入的关键点在规划时我不再假设other_last_action是随机的或固定的而是用从他者模型预测得到的P(a_other)来填充B矩阵中对应的转移概率。这意味着我的状态转移动态包含了“我对对手行为的预期”。他者模型的A矩阵给定我认为对手的信念状态策略类型s_other他产生某个行动a_other的概率是多少这由该策略类型的决策函数决定。例如如果s_other是TitForTat那么他本轮合作的概率极高地取决于我上一轮的行动我合作则他合作概率高我背叛则他合作概率低。他者模型的B矩阵对手的信念状态s_other如何随时间变化这是一个学习过程。我假设对手的信念策略类型是时变的但具有惯性。B矩阵在这里编码了信念更新的平滑性例如对手不太可能从一个极端策略瞬间跳转到另一个极端策略。对手观察到“我”的新行动后会更新其对我方策略的推断这反映在我对他者模型状态转移的建模中。3.3 规划与行动选择预期自由能最小化有了模型智能体如何决策经典主动推理使用预期自由能作为规划准则。对于自我模型在时间步t规划未来τ步的行动序列a_self(t:tτ)时需要计算每个行动序列对应的预期自由能G。我采用的公式是包含实用价值和信息增益的版本G E[ -ln P(o | preferred) ] E[ D_KL[ Q(s | a) || Q(s) ] ]第一项效用项期望的负对数偏好概率。P(o | preferred)是我对观察结果的偏好我喜欢高收益。最小化这一项意味着追求高收益。第二项信息增益项在采取行动a的条件下后验信念Q(s|a)与先验信念Q(s)的KL散度。最小化这一项意味着采取能减少状态不确定性的行动探索。在共情建模场景下“状态”s包含了对手的信念状态s_other。因此信息增益项强烈地激励智能体去采取那些能帮助它更好地区分对手策略类型的行动。例如在博弈初期一个共情智能体可能会故意进行一两次“试探性背叛”或“无条件合作”不是为了短期收益而是为了获取信息快速缩小对手策略的可能范围从而在长期规划中占据优势。实操心得计算预期自由能需要对未来轨迹进行采样计算开销大。在实际代码中我采用了“抽样式规划”即从行动空间中随机采样若干条未来行动序列如未来3-5步计算每条序列的G值选择G值最小的序列并执行其第一步行动。这是一种在计算效率和规划深度间的有效折中。同时为他者模型的策略空间设置一个合适的先验至关重要。一个过于均匀的先验所有策略等概率会导致学习缓慢一个带有轻微“合作偏向”的先验如给TitForTat稍高初始概率往往能更快地引导出合作均衡。3.4 模型更新与学习智能体在每一轮互动后都需要更新两个模型更新他者模型观察到对手的真实行动a_other_true后将其作为他者模型的输入观察使用贝叶斯滤波如离散状态的更新公式更新P(s_other)。这相当于“我”根据新证据修正了对“对手心思”的猜测。更新自我模型虽然环境动态收益矩阵是固定的但智能体可以学习其B矩阵中关于对手行为的部分。实际上这部分学习已经通过他者模型的更新间接完成了。更高级的学习可以涉及对A矩阵中观察噪声的估计或者对偏好收益函数的微调但在基础版本中这些可以保持固定。4. 实验与结果分析共情如何改变博弈格局为了验证共情建模的效果我设计了几组对比实验让不同类型的智能体在迭代囚徒困境通常进行200轮中两两配对博弈。智能体类型AIF-Empathy 我实现的具备共情建模的主动推理智能体。AIF-Basic 标准的主动推理智能体其生成模型不包含他者模型仅基于自身收益和简单历史如上一轮结果进行规划。它相当于一个只具备“自我”视角的智能体。TitForTat 经典的“以牙还牙”策略第一轮合作之后复制对手上一轮的行动。Grim Trigger “冷酷触发”策略一直合作直到对方背叛一次然后永远背叛。Random 随机策略以50%概率合作或背叛。4.1 实验一AIF-Empathy vs. 经典策略对手策略AIF-Empathy 平均得分对手平均得分主要观察与共情过程分析TitForTat非常高接近互惠合作最大值非常高AIF-Empathy 能快速识别出TFT的“条件合作”特性。初期通过合作试探确认后即进入稳定合作循环。其内部的他者模型迅速将概率质量集中在TFT类策略上。Grim Trigger高稳定合作阶段高与对TFT类似但AIF-Empathy 的行为更加谨慎。因为它通过推理意识到一旦背叛将导致不可逆的惩罚因此会绝对避免背叛。共情帮助它理解了“冷酷”规则的严重性。Random中等中等面对随机对手共情模型的优势不明显。AIF-Empathy 在经过一段时间的观察后其他者模型的后验会趋于均匀无法预测此时其行为会退化为基于自身短期收益的决策可能混合合作与背叛。Always Defect较低但高于盲目合作者高这是关键测试。AIF-Basic 智能体可能会在遭受多次背叛后学会背叛但反应可能较慢。AIF-Empathy 则能更快地推断出对手的“永远背叛”特性。其他者模型快速锁定Defector状态随后AIF-Empathy 也会选择背叛以最小化损失。它不会像单纯合作者一样被无限剥削。结论共情建模使智能体能够差异化应对不同类型的对手。对合作者它能建立并维持合作对背叛者它能快速识别并止损。这是一种“善良”但“不懦弱”的策略与Robert Axelrod总结的囚徒困境竞赛优胜策略特征高度吻合。4.2 实验二AIF-Empathy vs. AIF-Basic这是最核心的对比旨在剥离出“共情”能力本身的影响。当AIF-Empathy对阵AIF-Basic时出现了非常有趣的现象。在多数对局中AIF-Empathy能获得更高的长期累积收益。通过分析其内部状态我发现原因在于主动信任建立AIF-Empathy在初期会更有“耐心”。即使AIF-Basic因为探索或错误而偶尔背叛AIF-Empathy的他者模型不会立即将其归类为“永远背叛者”。它会考虑对方可能也在学习或试探。因此AIF-Empathy可能会在遭受背叛后仍然选择合作一两次给对方一个“改正”的机会。这种“宽容”往往能将被偶然背叛打断的合作链条重新连接起来。信号传递AIF-Empathy的行为更具一致性这本身就是一个强烈的信号。AIF-Basic虽然不理解对方的模型但能从观察中学习到AIF-Empathy行为的规律性从而调整自己的策略向合作靠拢。换句话说AIF-Empathy通过其稳定、可预测的合作行为教化了相对简单的AIF-Basic智能体。规避相互背叛陷阱两个AIF-Basic智能体对局时一旦因为随机探索或错误同时进入“相互背叛”的状态可能由于模型简单而陷入死锁很难自行跳出。而AIF-Empathy具备从他者角度思考的能力它可能会主动发起一个“单方面合作”的信号即使短期受损也要测试打破僵局的可能性。这体现了共情带来的战略主动性。4.3 实验三自博弈与对齐涌现我让两个完全相同的AIF-Empathy智能体进行长期自博弈500轮以上。观察到了一个清晰的动力学过程试探期初期双方的他者模型先验较宽行为包含较多探索。可能会出现短暂的背叛。学习与校准期通过互动双方都在快速更新关于对方策略的信念。由于双方架构对称且都采用相似的共情推理这个学习过程是相互的、正反馈的。合作行为逐渐增多。稳定对齐期最终系统收敛到一个高度合作的状态。双方内部的他者模型都高度确信对方是“条件合作者”类似于TFT或更宽容的策略并且自身的行动也始终符合对方的预期。此时任何一方的单次偏离背叛都会立即被对方的模型捕捉到但由于模型包含了“宽容”或“理解错误”的可能轻微的偏离不会导致系统崩溃而是会迅速被纠正。这正是在计算框架下“对齐”的涌现过程两个智能体通过包含彼此模型的互动最终在信念和行为上达成一致形成了一个稳定的、高收益的协作均衡。5. 挑战、局限与未来方向尽管项目取得了有希望的结果但在实践中也暴露出许多挑战和局限性这也是未来研究可以深入的方向。5.1 计算复杂性与可扩展性当前模型最大的瓶颈在于计算成本。他者模型的状态空间如果设计得过于精细例如考虑对手可能是一个和我一样复杂的共情智能体即“递归心智理论”会导致状态空间指数级膨胀规划中的树搜索难以进行。我的应对策略与局限策略空间抽象将他者模型的状态定义为有限的、预定义策略的集合这是一种有效的抽象但损失了泛化能力。智能体无法理解策略空间之外的对手。有限递归深度目前我只实现了一阶心智理论“我认为你认为...”。要实现更高阶的递归“我认为你认为我认为...”在计算上目前不现实而且有研究表明在许多博弈中二阶以上递归的收益递增有限。近似推理未来需要引入更高效的近似推理方法如变分推理、粒子滤波或者利用神经网络来近似他者模型的信念更新和策略函数。5.2 模型错误与鲁棒性共情建模的核心假设是“对手在一定程度上是理性且可模型的”。但如果对手是完全随机、极度非理性或者故意采取对抗性欺骗策略共情模型可能会失效甚至被利用。实践中遇到的问题对抗性欺骗我设计了一个“伪装者”智能体它在前期模仿TitForTat建立信任然后在关键时刻连续背叛。初版的AIF-Empathy因为其他者模型具有惯性B矩阵的平滑性未能快速调整遭受了较大损失。改进方案我引入了信念不确定性监测机制。当对手行为连续多次以高概率违背他者模型的预测时系统会触发一个“信念重置”或“扩大探索”机制降低对当前他者模型状态的置信度并增加对陌生策略的探索权重。这相当于为智能体增加了“怀疑”和“重新评估”的能力。5.3 从博弈到开放社会交互囚徒困境是一个高度简化的二元交互模型。真实的社会交互是多智能体、多轮次、多任务、部分可观察的复杂环境。扩展方向多智能体共情如何在一个群体中建模智能体需要维护对多个他者的模型并理解他者之间的互动关系。这涉及到网络化信念传播和群体动力学。非对称信息与欺骗现实交互中存在信息不对称。主动推理框架本身擅长处理部分可观察性但需要将“他者可能拥有我不知道的信息”以及“他者可能说谎”建模到他者模型中。价值对齐与偏好学习目前的“偏好”是预设的收益矩阵。更现实的场景是智能体需要从交互中推断其他智能体的偏好他们想要什么甚至调整自己的偏好以实现更高级别的社会融合。这指向了元学习和偏好推理的更深层次问题。5.4 与深度学习的结合当前的实现主要是基于概率图模型的符号推理。一个强大的趋势是与深度生成模型如VAE、扩散模型和深度强化学习结合。他者模型作为神经网络可以用一个循环神经网络来参数化他者模型输入是交互历史输出是对手策略的隐表示或未来行动的分布。这能处理更复杂、连续的策略空间。深度主动推理利用深度神经网络来近似生成模型、变分后验和规划过程可以处理高维观察如图像、语言为共情建模在机器人、虚拟角色等领域的应用打开大门。例如让机器人通过视觉观察预测人类意图。这个项目于我而言是一次将认知科学理论转化为可运行代码的深刻实践。它让我确信为机器注入“共情”能力并非遥不可及的科幻而是一个有严谨数学框架和工程路径的研究方向。虽然前路充满计算和理论上的挑战但每解决一个小问题比如让智能体在囚徒困境中学会通过一次宽容的合作来修复关系都让人看到构建更和谐、更高效的人机与社会智能系统的可能性。代码和实验细节我整理在了GitHub上欢迎交流与指正。在通往真正社会智能的道路上理解“他者”始终是核心的一步。