情绪如何在语言模型之间传播

读这篇论文之前,你需要知道作者是。这件事对理解全文至关重要,但论文自己只在参考文献里轻描淡写地提了两笔。

参考文献 31How the OCEAN personality model affects the perception of crowds (IEEE CG&A, 2011),28Psychological parameters for crowd simulation: From audiences to mobs(IEEE TVCG, 2016)。这两篇是"人格驱动的人群情绪传染"这条线上最被反复引用的工作:把 OCEAN 五因素映射成表达力(expressiveness)与易感性(susceptibility),再套进 Dodds--Watts 广义阈值传染 27,得到一套可调、可控、可复现的群体情绪演化规则。

这两篇的第一作者,就是本文的唯一作者。

所以这篇论文真正在做的事情是:作者把自己写了十五年的那条情绪传递方程删掉了,换成一次 LLM 的认知评价,然后回过头来检验------当年那条方程里最核心的假设(阈值传染、临界质量)到底还成不成立。

结论是:在她测试的条件下,不成立。拟合出来的阈值指数 h≈1h \approx 1h≈1,广义模型退化成最简单的传染。她照实写了。

学术界里,用自己的新工具去证伪自己的旧假设,并且把否定结果放在正文里的,不多。这是我认为这篇论文最值得先讲的一件事------它不是一篇"我们也用 LLM 做了个 agent 社会"的跟风工作,它是一次有明确靶心的方法论替换实验。


1. 架构:一条被刻意剪断的耦合链

1.1 全局视图

#mermaid-svg-WEZQz4i3gptYH6Wy{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-WEZQz4i3gptYH6Wy .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-WEZQz4i3gptYH6Wy .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-WEZQz4i3gptYH6Wy .error-icon{fill:#552222;}#mermaid-svg-WEZQz4i3gptYH6Wy .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-WEZQz4i3gptYH6Wy .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-WEZQz4i3gptYH6Wy .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-WEZQz4i3gptYH6Wy .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-WEZQz4i3gptYH6Wy .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-WEZQz4i3gptYH6Wy .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-WEZQz4i3gptYH6Wy .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-WEZQz4i3gptYH6Wy .marker{fill:#333333;stroke:#333333;}#mermaid-svg-WEZQz4i3gptYH6Wy .marker.cross{stroke:#333333;}#mermaid-svg-WEZQz4i3gptYH6Wy svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-WEZQz4i3gptYH6Wy p{margin:0;}#mermaid-svg-WEZQz4i3gptYH6Wy .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-WEZQz4i3gptYH6Wy .cluster-label text{fill:#333;}#mermaid-svg-WEZQz4i3gptYH6Wy .cluster-label span{color:#333;}#mermaid-svg-WEZQz4i3gptYH6Wy .cluster-label span p{background-color:transparent;}#mermaid-svg-WEZQz4i3gptYH6Wy .label text,#mermaid-svg-WEZQz4i3gptYH6Wy span{fill:#333;color:#333;}#mermaid-svg-WEZQz4i3gptYH6Wy .node rect,#mermaid-svg-WEZQz4i3gptYH6Wy .node circle,#mermaid-svg-WEZQz4i3gptYH6Wy .node ellipse,#mermaid-svg-WEZQz4i3gptYH6Wy .node polygon,#mermaid-svg-WEZQz4i3gptYH6Wy .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-WEZQz4i3gptYH6Wy .rough-node .label text,#mermaid-svg-WEZQz4i3gptYH6Wy .node .label text,#mermaid-svg-WEZQz4i3gptYH6Wy .image-shape .label,#mermaid-svg-WEZQz4i3gptYH6Wy .icon-shape .label{text-anchor:middle;}#mermaid-svg-WEZQz4i3gptYH6Wy .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-WEZQz4i3gptYH6Wy .rough-node .label,#mermaid-svg-WEZQz4i3gptYH6Wy .node .label,#mermaid-svg-WEZQz4i3gptYH6Wy .image-shape .label,#mermaid-svg-WEZQz4i3gptYH6Wy .icon-shape .label{text-align:center;}#mermaid-svg-WEZQz4i3gptYH6Wy .node.clickable{cursor:pointer;}#mermaid-svg-WEZQz4i3gptYH6Wy .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-WEZQz4i3gptYH6Wy .arrowheadPath{fill:#333333;}#mermaid-svg-WEZQz4i3gptYH6Wy .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-WEZQz4i3gptYH6Wy .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-WEZQz4i3gptYH6Wy .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-WEZQz4i3gptYH6Wy .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-WEZQz4i3gptYH6Wy .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-WEZQz4i3gptYH6Wy .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-WEZQz4i3gptYH6Wy .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-WEZQz4i3gptYH6Wy .cluster text{fill:#333;}#mermaid-svg-WEZQz4i3gptYH6Wy .cluster span{color:#333;}#mermaid-svg-WEZQz4i3gptYH6Wy div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-WEZQz4i3gptYH6Wy .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-WEZQz4i3gptYH6Wy rect.text{fill:none;stroke-width:0;}#mermaid-svg-WEZQz4i3gptYH6Wy .icon-shape,#mermaid-svg-WEZQz4i3gptYH6Wy .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-WEZQz4i3gptYH6Wy .icon-shape p,#mermaid-svg-WEZQz4i3gptYH6Wy .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-WEZQz4i3gptYH6Wy .icon-shape .label rect,#mermaid-svg-WEZQz4i3gptYH6Wy .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-WEZQz4i3gptYH6Wy .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-WEZQz4i3gptYH6Wy .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-WEZQz4i3gptYH6Wy :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 单个 Agent 的认知层,周期 T 约 3.5 秒
发布可观测行为
邻居的外部状态 z
速度 力度 间距 意图
感知

视觉 8m 200度锥

听觉 20m 或 10m

触觉 压力 P
模板化自然语言

D = NL(z)
LLM 认知评价

f_LLM
内部状态

人格向量 / 效价-唤醒 / 记忆队列
外部状态 x

面部 手势 发声 运动 转向参数
共享环境 Unity 每帧更新

RVO 局部避碰 + A* 全局路径

请注意这张图里没有的东西:从一个 agent 的内部情绪指向另一个 agent 内部情绪的箭头。整张图里,跨个体的连线只有一条,走的是"外部状态 → 环境 → 感知"。

1.2 感知:几何是第一性的

三条信道的物理参数被写死在仿真器里,这些数字后面会直接决定实验结果:

信道 覆盖 遮挡 内容
视觉 8 m 距离,200° 视锥 受墙体与人体遮挡 面部、手势、运动方式、局部密度、平均速度、运动一致性
听觉(高强度) 20 m 全向、不遮挡 尖叫、喊叫、大笑、高声安抚
听觉(低强度) 10 m 全向、不遮挡 交谈、倒吸气
触觉 接触 --- 平滑后的挤压压力

先把面积算出来,因为它是后面模态消融结果的一半解释:

S视觉=200∘360∘πr2=59π⋅82≈111.7 m2,S高声=π⋅202≈1256.6 m2 S_{\text{视觉}}=\frac{200^\circ}{360^\circ}\pi r^2=\frac{5}{9}\pi\cdot 8^2\approx 111.7\ \mathrm{m}^2,\qquad S_{\text{高声}}=\pi\cdot 20^2\approx 1256.6\ \mathrm{m}^2 S视觉=360∘200∘πr2=95π⋅82≈111.7 m2,S高声=π⋅202≈1256.6 m2

S高声S视觉≈11.2 \frac{S_{\text{高声}}}{S_{\text{视觉}}}\approx 11.2 S视觉S高声≈11.2

而且视觉还要再打遮挡的折扣,听觉不打。声音的可达面积是视觉的一个数量级以上------记住这个数,第 3 节会用到。

其中"运动一致性"(motion coherence)定义为邻居单位航向向量平均值的模长,即 Reynolds boid 模型 55 里速度对齐规则的直接标量化:

coherence=∥1∣Ni∣∑j∈Niv^j∥∈0,1 \text{coherence}=\Bigl\lVert \frac{1}{|N_i|}\sum_{j\in N_i}\hat{v}_j \Bigr\rVert \in0,1 coherence= ∣Ni∣1j∈Ni∑v^j ∈0,1

取值 1 表示所有人朝同一方向,0 表示方向完全发散。这是一个从群体运动物理学里直接借来的序参量,被塞进自然语言描述交给 LLM 读。

1.3 触觉压力:一个被低估的小公式

瞬时压力定义为:

p~i(t)=clamp ⁣(vides(t)−viact(t)vides(t), 0, 1)=clamp ⁣(1−viactvides, 0, 1) \tilde p_i(t)=\mathrm{clamp}\!\left(\frac{v_i^{des}(t)-v_i^{act}(t)}{v_i^{des}(t)},\,0,\,1\right)=\mathrm{clamp}\!\left(1-\frac{v_i^{act}}{v_i^{des}},\,0,\,1\right) p~i(t)=clamp(vides(t)vides(t)−viact(t),0,1)=clamp(1−videsviact,0,1)

这个式子的形式值得停一下。vact/vdesv^{act}/v^{des}vact/vdes 正是行人动力学里衡量服务水平(level of service)的速度效率比,所以 p~\tilde pp~ 就是**"一减速度效率比"**:0 表示自由流,1 表示完全被堵死。无量纲、有界、与个体期望速度无关------这是一个设计得相当干净的标量。

然后做指数移动平均:

Pi(t)=α p~i(t)+(1−α)Pi(t−Δt),α∈(0,1] P_i(t)=\alpha\,\tilde p_i(t)+(1-\alpha)P_i(t-\Delta t),\qquad \alpha\in(0,1] Pi(t)=αp~i(t)+(1−α)Pi(t−Δt),α∈(0,1]

递归展开:

Pi(t)=α∑k=0∞(1−α)k p~i(t−kΔt) P_i(t)=\alpha\sum_{k=0}^{\infty}(1-\alpha)^k\,\tilde p_i(t-k\Delta t) Pi(t)=αk=0∑∞(1−α)kp~i(t−kΔt)

两个性质要点出来:

(1)单位直流增益。 权重和为 α⋅11−(1−α)=1\alpha\cdot\frac{1}{1-(1-\alpha)}=1α⋅1−(1−α)1=1。也就是说,如果压力恒定,滤波器输出等于输入,不会引入系统性偏置。

(2)有效记忆时长。 权重按 (1−α)k=ekln⁡(1−α)(1-\alpha)^k=e^{k\ln(1-\alpha)}(1−α)k=ekln(1−α) 几何衰减,等效时间常数

τ=−Δtln⁡(1−α)≈Δtα(α≪1) \tau=\frac{-\Delta t}{\ln(1-\alpha)}\approx\frac{\Delta t}{\alpha}\quad(\alpha\ll1) τ=ln(1−α)−Δt≈αΔt(α≪1)

物理含义很明确:一次擦碰不算压力,被持续堵住才算。 这与 Helbing 等人对真实人群灾难的观测 64 是一致的------致命的从来不是瞬时碰撞,而是持续累积的挤压。作者用一行 EMA 就把这个时间尺度的区分做出来了,而且让它成为一个可以被 LLM 读到的身体感受("WHAT YOUR BODY FEELS")。

1.4 内部状态与外部状态

内部:人格 θi∈0,15\theta_i\in0,1^5θi∈0,15(OCEAN,固定不变),情绪 ai(t)=(Vi(t),Ai(t))∈−1,12a_i(t)=(V_i(t),A_i(t))\in-1,1^2ai(t)=(Vi(t),Ai(t))∈−1,12(Russell 圆环模型 19),记忆 Mi(t)M_i(t)Mi(t) 为长度 K=6K=6K=6 的队列:

Mi(t+Δt)=Mi(t)−(K−1): ∥ minew M_i(t+\Delta t)=M_i(t)_{-(K-1):}\ \Vert\ m_i^{new} Mi(t+Δt)=Mi(t)−(K−1): ∥ minew

K=6K=6K=6 配合 T≈3--3.5 sT\approx3\text{--}3.5\,\mathrm{s}T≈3--3.5s 的评价周期,恰好覆盖约 18--20 秒的短时上下文------这是刻意选的,既提供时间连续性又不显著撑大 prompt。

外部:

xi(t)=(Fi, Gi, Voi, Mvi, σi, ρispace, ϕi, ni) x_i(t)=\bigl(F_i,\ G_i,\ Vo_i,\ Mv_i,\ \sigma_i,\ \rho_i^{space},\ \phi_i,\ n_i\bigr) xi(t)=(Fi, Gi, Voi, Mvi, σi, ρispace, ϕi, ni)

前四项是离散表达词表,后四项是转向参数。把词表基数算一下:面部 6 种、手势 8 种、发声 7 种、运动 5 种,纯离散表达空间

6×8×7×5=1680 6\times8\times7\times5=1680 6×8×7×5=1680

再加导航意图 4 种和三个连续标量(速度倍率 σ∈0,2\sigma\in0,2σ∈0,2、个人空间 ρspace∈0.5,1.6\rho^{space}\in0.5,1.6ρspace∈0.5,1.6、推挤力度 ϕ∈0,2\phi\in0,2ϕ∈0,2)。

这 1680 个组合就是这个系统的全部社会带宽。 agent 之间能传递的一切,都必须先被压缩成这个有限字母表里的一个符号,再由接收方重新解释。后面所有"哪个模态传得多"的结论,本质上都是在问这个字母表的哪一段更有信息量。

1.5 把"没有传递规则"写成数学

每个评价时刻,LLM 返回:

(Vitgt,Aitgt,xinew,ri,minew)=fLLM(θi, ai(t), xi(t), Mi(t), Di(t), Pi(t), ci) \bigl(V_i^{tgt},A_i^{tgt},x_i^{new},r_i,m_i^{new}\bigr)=f_{\text{LLM}}\bigl(\theta_i,\,a_i(t),\,x_i(t),\,M_i(t),\,D_i(t),\,P_i(t),\,c_i\bigr) (Vitgt,Aitgt,xinew,ri,minew)=fLLM(θi,ai(t),xi(t),Mi(t),Di(t),Pi(t),ci)

其中

Di(t)=NL(zi(t)),zi(t)={xj(t):j∈Ni(t)} D_i(t)=\mathrm{NL}\bigl(z_i(t)\bigr),\qquad z_i(t)=\{x_j(t):j\in N_i(t)\} Di(t)=NL(zi(t)),zi(t)={xj(t):j∈Ni(t)}

这两行是全文的技术核心,值得逐符号对照着看。

跨个体的信息只通过 zi(t)z_i(t)zi(t) 进入,而 zi(t)z_i(t)zi(t) 只包含邻居的外部 状态 xjx_jxj。邻居的情绪 aj(t)=(Vj,Aj)a_j(t)=(V_j,A_j)aj(t)=(Vj,Aj) 在整个方程组里从不出现

对比一下这条线上的经典模型:

  • ASCRIBE 54:情绪强度在个体间以耦合微分方程流动,传递强度 = 发送者表达力 × 信道强度 × 接收者开放度。形式上大致是 a˙i=∑jwji(aj−ai)\dot a_i=\sum_j w_{ji}(a_j-a_i)a˙i=∑jwji(aj−ai),aja_jaj 显式出现在右端
  • ESCAPES 53:每个 agent 取邻居情绪的加权混合,权重由距离和权威身份决定。同样是 aja_jaj 的直接函数
  • Durupinar 2016 28 / Dodds--Watts 27:阈值型,邻居暴露量累加超过阈值才转化。依然需要读取邻居的情绪状态

而本文的链路是:

aj→ LLM 选择表达 xj→ 几何过滤 zi→ 模板 Di→ fLLM ai a_j \xrightarrow{\ \text{LLM 选择表达}\ } x_j \xrightarrow{\ \text{几何过滤}\ } z_i \xrightarrow{\ \text{模板}\ } D_i \xrightarrow{\ f_{\text{LLM}}\ } a_i aj LLM 选择表达 xj 几何过滤 zi 模板 Di fLLM ai

中间隔了两道关口:一道是"要不要表达出来"(发射),一道是"看到了怎么解释"(转化),中间夹着一道纯物理的"能不能被感知到"(触达)。

这三个词就是我读完全文之后用来串起五个实验的骨架,下一节展开。

1.6 情绪更新:一阶低通,以及为什么 λ 的敏感性分析注定不敏感

情绪不直接跳到 LLM 给的目标,而是线性插值:

di(t+Δt)=(1−λ) di(t)+λ ditgt,d∈{V,A}, λ=0.5 d_i(t+\Delta t)=(1-\lambda)\,d_i(t)+\lambda\,d_i^{tgt},\qquad d\in\{V,A\},\ \lambda=0.5 di(t+Δt)=(1−λ)di(t)+λditgt,d∈{V,A}, λ=0.5

论文把它叫做 smoothing factor,一句话带过。但这个式子承担了三个不同的功能,值得拆开:

(1)情绪惯性 / 收敛速度。 若目标恒定为 KaTeX parse error: Undefined control sequence: \* at position 3: d^\̲*̲,则

KaTeX parse error: Undefined control sequence: \* at position 8: d_n-d^\̲*̲=(1-\lambda)^n\...

几何收敛,半衰步数

n1/2=ln⁡(1/2)ln⁡(1−λ)∣λ=0.5=1 n_{1/2}=\frac{\ln(1/2)}{\ln(1-\lambda)}\Big|_{\lambda=0.5}=1 n1/2=ln(1−λ)ln(1/2) λ=0.5=1

一个评价周期(约 3.5 秒)情绪就走完到目标距离的一半。写成连续时间:

d˙≈λT(dtgt−d)⟹τ=Tλ=3.50.5=7 s \dot d\approx\frac{\lambda}{T}\bigl(d^{tgt}-d\bigr)\quad\Longrightarrow\quad \tau=\frac{T}{\lambda}=\frac{3.5}{0.5}=7\ \mathrm{s} d˙≈Tλ(dtgt−d)⟹τ=λT=0.53.5=7 s

7 秒的情绪时间常数,和人类情绪的秒级到十秒级衰减是同一量级,选得合理。

(2)对 LLM 采样噪声的一阶滤波。 设目标含 i.i.d. 噪声 dttgt=μ+εtd^{tgt}_t=\mu+\varepsilon_tdttgt=μ+εt,Var(ε)=s2\mathrm{Var}(\varepsilon)=s^2Var(ε)=s2,则 dtd_tdt 是 AR(1) 过程:

Var(d)=λ2s21−(1−λ)2=λ s22−λ ∣λ=0.5=s23 \mathrm{Var}(d)=\frac{\lambda^2 s^2}{1-(1-\lambda)^2}=\frac{\lambda\,s^2}{2-\lambda}\ \Big|_{\lambda=0.5}=\frac{s^2}{3} Var(d)=1−(1−λ)2λ2s2=2−λλs2 λ=0.5=3s2

方差压到三分之一。对一个由随机语言模型驱动的状态变量来说,这是必要的稳定化措施。

(3)------这一点论文没说,但它解释了附录 D.1 为什么必然是那个结果。

和 EMA 一样,这个滤波器的直流增益为 1。稳态时:

d=(1−λ)d+λdtgt ⟹ d=dtgt d=(1-\lambda)d+\lambda d^{tgt}\ \Longrightarrow\ d=d^{tgt} d=(1−λ)d+λdtgt ⟹ d=dtgt

也就是说,闭环的任何不动点都与 λ\lambdaλ 无关 。λ\lambdaλ 只改变趋近不动点的暂态速度,不改变不动点本身的位置。

于是附录 D.1 的结果就成了可以事先预言的:λ∈{0.25,0.50,0.75}\lambda\in\{0.25,0.50,0.75\}λ∈{0.25,0.50,0.75} 下,平台高度(一个平衡量)稳定在 0.22/0.22/0.240.22/0.22/0.240.22/0.22/0.24------几乎不动;而 SIS 拟合的 RMSE(一个暂态拟合优度)却从 0.0500.0500.050 变到 0.0760.0760.076 再到 0.0870.0870.087------明显在动。

平衡量不变、暂态量变,正是单位直流增益线性滤波器串在非线性映射前端的标准签名。 这条不是批评,恰恰相反:它说明作者选的 λ\lambdaλ 是一个安全旋钮,调它可以改响应快慢而不动宏观结论,这对后续想复用这套架构的人是很实用的信息。

1.7 双时钟:慢的心,快的身体

  • 认知时钟 :每 agent 独立计时,标称周期 T=3 sT=3\,\mathrm{s}T=3s,带个体相位偏移错开调用;全局并发上限约束;实际达成中位数 3.5 s3.5\,\mathrm{s}3.5s。因为每个 agent 有自己的定时器,周期不随人数增长------只要后端撑得住总请求率。
  • 运动时钟:每帧。局部避碰用 RVO 57,全局路径用导航网格上的 A*。另加随机横向展开(步态扰动 + 随机避让优先级 + 固定车道偏好),让人群在开阔处自然分成平行流、在走廊处收成纵队。

情绪只通过四个出口进入运动:运动风格(idle/strolling/purposeful/agitated/fleeing)、导航意图(Proceed/FollowLeader/Halt/Help)、三个连续标量。

这个"慢认知 / 快执行"的分层,对任何做实时多 agent 系统的人都是直接可搬的工程范式:推理频率和控制频率必须解耦,否则延迟和成本会在 agent 数量上线性爆炸。 论文说得很直白:让 LLM 管转向就要每 agent 每帧一次调用,这在延迟和费用上都不可行。


2. 一条主线:传染 = 发射 × 触达 × 转化

五个实验、五个假设,读起来是散的。但如果把 1.5 节那条链路拆成三段,全部结果都能挂上去:
#mermaid-svg-eVvlyvTwNAzkly2A{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-eVvlyvTwNAzkly2A .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-eVvlyvTwNAzkly2A .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-eVvlyvTwNAzkly2A .error-icon{fill:#552222;}#mermaid-svg-eVvlyvTwNAzkly2A .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-eVvlyvTwNAzkly2A .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-eVvlyvTwNAzkly2A .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-eVvlyvTwNAzkly2A .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-eVvlyvTwNAzkly2A .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-eVvlyvTwNAzkly2A .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-eVvlyvTwNAzkly2A .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-eVvlyvTwNAzkly2A .marker{fill:#333333;stroke:#333333;}#mermaid-svg-eVvlyvTwNAzkly2A .marker.cross{stroke:#333333;}#mermaid-svg-eVvlyvTwNAzkly2A svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-eVvlyvTwNAzkly2A p{margin:0;}#mermaid-svg-eVvlyvTwNAzkly2A .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-eVvlyvTwNAzkly2A .cluster-label text{fill:#333;}#mermaid-svg-eVvlyvTwNAzkly2A .cluster-label span{color:#333;}#mermaid-svg-eVvlyvTwNAzkly2A .cluster-label span p{background-color:transparent;}#mermaid-svg-eVvlyvTwNAzkly2A .label text,#mermaid-svg-eVvlyvTwNAzkly2A span{fill:#333;color:#333;}#mermaid-svg-eVvlyvTwNAzkly2A .node rect,#mermaid-svg-eVvlyvTwNAzkly2A .node circle,#mermaid-svg-eVvlyvTwNAzkly2A .node ellipse,#mermaid-svg-eVvlyvTwNAzkly2A .node polygon,#mermaid-svg-eVvlyvTwNAzkly2A .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-eVvlyvTwNAzkly2A .rough-node .label text,#mermaid-svg-eVvlyvTwNAzkly2A .node .label text,#mermaid-svg-eVvlyvTwNAzkly2A .image-shape .label,#mermaid-svg-eVvlyvTwNAzkly2A .icon-shape .label{text-anchor:middle;}#mermaid-svg-eVvlyvTwNAzkly2A .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-eVvlyvTwNAzkly2A .rough-node .label,#mermaid-svg-eVvlyvTwNAzkly2A .node .label,#mermaid-svg-eVvlyvTwNAzkly2A .image-shape .label,#mermaid-svg-eVvlyvTwNAzkly2A .icon-shape .label{text-align:center;}#mermaid-svg-eVvlyvTwNAzkly2A .node.clickable{cursor:pointer;}#mermaid-svg-eVvlyvTwNAzkly2A .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-eVvlyvTwNAzkly2A .arrowheadPath{fill:#333333;}#mermaid-svg-eVvlyvTwNAzkly2A .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-eVvlyvTwNAzkly2A .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-eVvlyvTwNAzkly2A .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-eVvlyvTwNAzkly2A .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-eVvlyvTwNAzkly2A .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-eVvlyvTwNAzkly2A .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-eVvlyvTwNAzkly2A .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-eVvlyvTwNAzkly2A .cluster text{fill:#333;}#mermaid-svg-eVvlyvTwNAzkly2A .cluster span{color:#333;}#mermaid-svg-eVvlyvTwNAzkly2A div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-eVvlyvTwNAzkly2A .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-eVvlyvTwNAzkly2A rect.text{fill:none;stroke-width:0;}#mermaid-svg-eVvlyvTwNAzkly2A .icon-shape,#mermaid-svg-eVvlyvTwNAzkly2A .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-eVvlyvTwNAzkly2A .icon-shape p,#mermaid-svg-eVvlyvTwNAzkly2A .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-eVvlyvTwNAzkly2A .icon-shape .label rect,#mermaid-svg-eVvlyvTwNAzkly2A .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-eVvlyvTwNAzkly2A .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-eVvlyvTwNAzkly2A .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-eVvlyvTwNAzkly2A :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 发射 Emission

发送者是否把状态外显

由人格 / 情境 / 后端决定
触达 Reach

接收者是否感知到

由感知几何决定
转化 Conversion

感知是否改变内部状态

由认知评价决定

实验 主要在测哪一段
H4 模态消融的 P(exp⁡)P(\exp)P(exp) 触达
H4 的条件恐慌率 + H5.c 愤怒/恐惧分化 转化
H5.a 神经质点火、H5.b 平静领导者、跨后端实验 发射
H2 空间波前 触达 × 转化的空间几何后果
H3 SIS/SIR 三者闭环的时间聚合后果

而论文里那个 P(panic)=P(exp⁡)E⋅∣exp⁡+P(exp⁡‾)E⋅∣exp⁡‾P(\text{panic})=P(\exp)E\\cdot\\mid\\exp+P(\overline{\exp})E\\cdot\\mid\\overline{\\exp}P(panic)=P(exp)E⋅∣exp+P(exp)E⋅∣exp 的分解式,字面上就是触达 × 转化的因子化。作者其实已经把这个结构写出来了,只是没有用它统一叙述全文。


3. 触达与转化:模态消融(H4)

3.1 实验设计

场景选 Standing Line(9×809\times809×80 m 长条走道,26 个 agent 原地徘徊,一端播下 4 个高神经质恐慌种子,情境提示词故意留空)。选它的理由很硬:这里的警报只可能来自邻居行为,没有任何情境线索可以背锅。Evacuation 和 Concert 的情绪被场景本身强烈驱动,Contested Gate 的警报量太少------都不适合做模态对比。

每个条件只放开一条模态、其余全部在提示词与仿真里静音。agent 仍然照常产出全部模态的行为,只是别人感知不到。同一批 20 个 baseline 人群跑遍所有条件------这是区组设计,把人格抽样的方差从组间比较里扣掉,配对 t 检验因此非常有力。

3.2 全概率分解与算术核验

论文给出的分解式就是全概率公式:

P(panic)=P(exp⁡) Epanic∣exp⁡+P(exp⁡‾) Epanic∣exp⁡‾ P(\text{panic})=P(\exp)\,E\\text{panic}\\mid\\exp+P(\overline{\exp})\,E\\text{panic}\\mid\\overline{\\exp} P(panic)=P(exp)Epanic∣exp+P(exp)Epanic∣exp

我把表 1 的数字代回去核了一遍:

模态 P(exp⁡)P(\exp)P(exp) Epanic∣exp⁡E\\text{panic}\\mid\\expEpanic∣exp Epanic∣exp⁡‾E\\text{panic}\\mid\\overline{\\exp}Epanic∣exp 重算加权和 论文 Total
声音 0.53 0.78 0.15 0.53(0.78)+0.47(0.15)=0.4840.53(0.78)+0.47(0.15)=0.4840.53(0.78)+0.47(0.15)=0.484 0.48
手势 0.31 0.80 0.08 0.31(0.80)+0.69(0.08)=0.3030.31(0.80)+0.69(0.08)=0.3030.31(0.80)+0.69(0.08)=0.303 0.31
运动 0.00 --- 0.17 1.00(0.17)=0.1701.00(0.17)=0.1701.00(0.17)=0.170 0.17
面部 0.07 0.60 0.13 0.07(0.60)+0.93(0.13)=0.1630.07(0.60)+0.93(0.13)=0.1630.07(0.60)+0.93(0.13)=0.163 0.16

四行全部在舍入误差内闭合。表格是自洽的。

3.3 保留率,以及那个加起来超过 100% 的和

保留率定义为把全模态基线归一到 1、全静音底噪归一到 0:

retention=modality−floorbaseline−floor,baseline=0.60, floor=0.09 \text{retention}=\frac{\text{modality}-\text{floor}}{\text{baseline}-\text{floor}},\qquad \text{baseline}=0.60,\ \text{floor}=0.09 retention=baseline−floormodality−floor,baseline=0.60, floor=0.09

voice=0.48−0.090.51=0.765,gesture=0.31−0.090.51=0.431 \text{voice}=\frac{0.48-0.09}{0.51}=0.765,\quad \text{gesture}=\frac{0.31-0.09}{0.51}=0.431 voice=0.510.48−0.09=0.765,gesture=0.510.31−0.09=0.431

motion=0.17−0.090.51=0.157,face=0.16−0.090.51=0.137 \text{motion}=\frac{0.17-0.09}{0.51}=0.157,\quad \text{face}=\frac{0.16-0.09}{0.51}=0.137 motion=0.510.17−0.09=0.157,face=0.510.16−0.09=0.137

与论文的 77% / 43% / 16% / 14% 完全一致。

但把四个数加起来:0.765+0.431+0.157+0.137=1.490.765+0.431+0.157+0.137=1.490.765+0.431+0.157+0.137=1.49。

单模态之和是全模态的一倍半。论文用的词是"互补"(complementary),从"没有任何单模态能复现全部效应"这个角度说没错。但 149% 这个数说的是另一件事:这些信道高度冗余。

原因不难想:一个 agent 一旦进入恐慌,它同时会是恐惧表情 + 尖叫 + 护挡手势 + 激动步态。多条信道携带的是同一个事件。所以任何一条信道单独放开,都能捞回相当一部分信号;全部放开则严重重叠、迅速饱和。

这在通信意义上是冗余编码:牺牲带宽换鲁棒性。人类的非言语表达本来就是这样组织的(App 等人 67 关于信道功能分化的工作正是这个语境),而这里它是从 LLM 的表达选择里自己长出来的,没有人写过"恐慌时请同时激活四个模态"。

顺带一提,论文另一处的数据正好印证:把评价步按唤醒度分成低/中/高三段(切点 A=0.33A=0.33A=0.33 和 0.60.60.6),同时激活的模态数从 0.5 升到 1.3 再升到 2.9。冗余度本身是唤醒强度的单调函数------这是一个非常干净的"强度阶梯"。

3.4 声音为什么赢:几何给排序,不给幅度

P(exp⁡)P(\exp)P(exp):声音 0.53 > 手势 0.31 > 面部 0.07 > 运动 0.00。

回到 1.2 节算的面积比:高声可达面积是视锥的 11 倍以上,且不受遮挡。几何完全预测了这个排序。 论文的结论"声音传得最多只是因为它被听到的次数最多"是站得住的------它的条件恐慌率 0.78 甚至略低于手势的 0.80。

但要注意幅度对不上:几何比是 11 倍,实测 P(exp⁡)P(\exp)P(exp) 比只有 1.7 倍。两个原因:其一,P(exp⁡)P(\exp)P(exp) 有上界 1,会饱和;其二,作者自己在表注里说了,P(exp⁡)P(\exp)P(exp) 同时反映几何和该条件下自身传染水平所产生的发射量------是内生的。

所以严格来说,P(exp⁡)P(\exp)P(exp) 不是纯粹的几何量。这个 caveat 作者写了,读者不该跳过。

3.5 手势 vs 面部:全文最干净的一个自然实验

这两条模态共享完全相同的感知几何(同样 8 m、同样 200° 视锥、同样受遮挡)。所以它们之间的差异不可能来自触达的物理条件。

而差异极大:

  • 暴露率 0.310.310.31 vs 0.070.070.07
  • 条件恐慌率 0.800.800.80 vs 0.600.600.60
  • 保留率 43%43\%43% vs 14%14\%14%

论文给出的机制解释来自 agent 自己写下的推理日志:护挡与惊恐指向被读成"外部存在威胁 "的证据("others shielding suggests a potential threat"),而恐惧表情被读成"那个人自己的私人情绪状态"("looks fearful")。

这个区分在评价理论里是有名字的:前者进入初级评价(primary appraisal,目标相关性与威胁性判断,Lazarus 63),后者进入社会评价(social appraisal,他人情绪作为情境线索,Manstead & Fischer 20、Parkinson 21)。指示性/防护性手势是世界指向的(world-referential),面部表情是个体指向的(person-referential)。 前者直接改写你对环境的信念,后者只提供一条关于别人的信息。

在 ASCRIBE 那类模型里,这个差别必须写成两个不同的 channel strength 手工参数。在这里它是解释出来的。

顺便说一个方法论上的增益,我认为被严重低估了:规则模型没有"为什么",LLM agent 有。 这套系统跑出了 31.5 万条评价记录,每一条都带一个不超过 25 词的私有推理串。这是规则驱动仿真里根本不存在的一条实验通道------你可以直接读群体在想什么。上面手势与表情的机制解释,正是靠读日志得到的。

当然要公平:条件恐慌率里混有前几步暴露残留的恐慌,作者也标了"这只是描述性核算"。真正干净的因果检验需要外生地注入线索(比如脱离仿真、在探针里直接构造只有手势 / 只有表情的场景对照)。这是一个明确且不难做的后续实验。

3.6 运动那个 P(exp⁡)=0P(\exp)=0P(exp)=0 的坑

表 1 里运动的暴露率是 0,看起来像模态失效。真相是测量口径问题 :警报线索在运动维度只统计 Fleeing,而在原地徘徊的 Standing Line 里没人真的开始逃跑。

但作者做了核对:agent 确实感知到了 Agitated(激动)步态,并且自身表现出激动的比例是 7.3%,显著高于全静音条件的 4.2%。

所以运动是传了的,只是传的是低强度线索,被二值化的警报指标漏掉了。 这是一个很诚实的自我审查------换个作者完全可以让这一行数字就那么挂着。


4. 表达模态的分工:η2\eta^2η2,以及一个漂亮的内部呼应

4.1 指标含义

汇总 490 次运行、315,864 个时间步,按每个模态上被选中的表达类别分组,报告

ηV2=SSbetweenSStotal∣V,ηA2=SSbetweenSStotal∣A \eta^2_V=\frac{SS_{\text{between}}}{SS_{\text{total}}}\Big|{V},\qquad \eta^2_A=\frac{SS{\text{between}}}{SS_{\text{total}}}\Big|_{A} ηV2=SStotalSSbetween V,ηA2=SStotalSSbetween A

即"知道 agent 这一步选了哪个表达词,能解释掉多少效价(或唤醒)的方差"。

4.2 结果

模态 ηV2\eta^2_VηV2 ηA2\eta^2_AηA2 典型定位
面部 0.77 0.65 微笑 V=0.62V=0.62V=0.62,恐惧 V=−0.80V=-0.80V=−0.80、A=0.90A=0.90A=0.90,愤怒 V=−0.47V=-0.47V=−0.47、A=0.78A=0.78A=0.78
运动 --- 0.64 漫步 A=0.11A=0.11A=0.11 → 目的性 0.43 → 激动 0.83 → 逃跑 0.90
手势 0.56 0.49 护挡 V=−0.78V=-0.78V=−0.78,跳舞 V=0.87V=0.87V=0.87
声音 0.50 0.40 尖叫 (−0.90, 0.96)(-0.90,\,0.96)(−0.90,0.96),大笑 (0.87, 0.82)(0.87,\,0.82)(0.87,0.82)

分场景重算再平均,数值几乎不变(面部 0.72/0.63,运动 0.64/0.67,声音 0.44/0.38,手势 0.53/0.47)------排除了"这只是场景之间差异"的替代解释。这个对照做得很到位。

4.3 低 η2\eta^2η2 与高传染力的表面矛盾,以及它的解法

把第 3 节和第 4 节的结论并排放:

  • 传染力排名:声音 > 手势 ≫ 运动 ≈ 面部
  • 方差解释力排名:面部 > 运动 > 手势 > 声音

几乎完全颠倒。 传得最狠的两个模态,恰好是解释力最低的两个。

这不是矛盾,这是同一件事的两面。

声音有 57% 的步骤是 Silent,手势有 69% 的步骤是 None。大量样本堆在"基线类别"上,把组间方差摊薄,η2\eta^2η2 自然被稀释。但一旦它们被使用,就直奔圆环模型的极端角落------尖叫 (−0.90,0.96)(-0.90, 0.96)(−0.90,0.96)、大笑 (0.87,0.82)(0.87, 0.82)(0.87,0.82)、护挡 −0.78-0.78−0.78、跳舞 0.870.870.87。

也就是说:

面部和运动是连续读数计(continuous readout),声音和手势是阈值触发的分类广播(categorical broadcast)。

连续读数适合"被观察时推断你的状态",η2\eta^2η2 高;分类广播适合"越过噪声把一个离散事件推出去",信噪比高、可达远、η2\eta^2η2 低但传染力强。Scherer 把这类短促、离散、由显著事件触发的发声叫做 affect burst 66------论文引了这个概念,但没有把它和 η2\eta^2η2 的倒挂联系起来。我认为这是全文最漂亮的一处内部呼应,值得点破。

4.4 Idle 的反常:一个手写规则必然会写错的地方

在运动的唤醒序列里,Idle 是唯一的异类:它是活动度最低的运动方式,却对应 A=0.73A=0.73A=0.73、V=−0.62V=-0.62V=−0.62------高唤醒、负效价

查日志:这里的 Idle 不是"平静地站着",而是恐惧性冻结。这与 Roelofs 58 关于冻结作为独立的、生理上高度激活的威胁反应的工作完全吻合。

这一点值得单独强调,因为它精准地展示了"不手写映射"到底买到了什么:

任何一个理性的工程师,在手写"运动风格 ↔ 唤醒度"映射表时,都会把 Idle 排在唤醒度的最低端。这个映射在 99% 的情况下是对的,在恐慌冻结这一种情况下是彻底反的。而在疏散仿真这个应用语境里,"呆立不动"恰恰是最危险、最需要被正确建模的一类反应。

一个非单调的、上下文相关的表达映射,你要么写不出来,要么写出来就成了一堆特例分支。这里它是免费出现的。


5. 空间结构:波前(H2)

5.1 结果

Standing Line,30 次运行,一端 4 个种子(V=−0.85V=-0.85V=−0.85、A=0.85A=0.85A=0.85,神经质拉到 0.9 保证它们持续外显)。种子在 98% 的评价步上产出警报线索。

  • 起始距离 vs 恐慌起始时间:run 内相关的均值 r=0.65r=0.65r=0.65(Fisher-z 变换后单样本 t=5.1t=5.1t=5.1,p<0.001p<0.001p<0.001)
  • 汇总 278 个进入恐慌象限的 agent:r=0.44r=0.44r=0.44(p<0.001p<0.001p<0.001)
  • 拟合斜率 1.04 s/m1.04\ \mathrm{s/m}1.04 s/m,run 级 bootstrap 95% CI 0.67, 1.530.67,\\ 1.530.67, 1.53

5.2 倒数变换:一个小细节,作者做对了

传播速度是斜率的倒数:

v=11.04 s/m=0.9615 m/s≈0.96 m/s v=\frac{1}{1.04\ \mathrm{s/m}}=0.9615\ \mathrm{m/s}\approx0.96\ \mathrm{m/s} v=1.04 s/m1=0.9615 m/s≈0.96 m/s

置信区间的变换要注意 x↦1/xx\mapsto1/xx↦1/x 在正半轴上单调递减,端点必须互换:

11.53, 10.67=0.654, 1.493 m/s \left\\frac{1}{1.53},\\ \\frac{1}{0.67}\\right=0.654,\\ 1.493\ \mathrm{m/s} 1.531, 0.671=0.654, 1.493 m/s

论文报的是 0.65,1.490.65, 1.490.65,1.49 m/s。端点互换做对了。这种地方最容易出错,值得记一笔。

另外注意 run 内均值 r=0.65r=0.65r=0.65 明显高于汇总 r=0.44r=0.44r=0.44:这是汇总时不同 run 的截距差异造成的稀释(Simpson 型效应)。作者两个都报了,没有只挑好看的。

5.3 一个量纲估计:波速是被什么锁住的?

论文只把 0.960.960.96 m/s 当作一个描述性数字。我试着追问它由什么决定。

26 个 agent 分布在 80 m 长的通道里,纵向平均间距

ℓ≈8026≈3.1 m \ell\approx\frac{80}{26}\approx3.1\ \mathrm{m} ℓ≈2680≈3.1 m

若把传播理解为"每个评价周期推进一个最近邻跳",则

v∼ℓTachieved=3.13.5≈0.89 m/s v\sim\frac{\ell}{T_{\text{achieved}}}=\frac{3.1}{3.5}\approx0.89\ \mathrm{m/s} v∼Tachievedℓ=3.53.1≈0.89 m/s

与实测 0.960.960.96 m/s 落在同一个数量级、甚至同一个有效数字附近。上界则是"一跳直达视距边缘":8/3.5≈2.38/3.5\approx2.38/3.5≈2.3 m/s。实测值落在 ℓ/T, rvis/T\\ell/T,\\ r_{vis}/Tℓ/T, rvis/T 区间的下端,这与"单次暴露的转化概率显著小于 1、有效跳距接近最近邻间距"的图像一致。

这个估计的推论是波速应当按 1/T1/T1/T 标度。附录 D.2 没有观察到这一点 ------T∈{1.5,3,6}T\in\{1.5,3,6\}T∈{1.5,3,6} s 下实测速度是 1.41/1.26/1.951.41/1.26/1.951.41/1.26/1.95 m/s,趋势不单调。

但要看清 D.2 的检验力:标称周期只是下界,实际达成中位数被吞吐量限制在 3.5/4.2/6.03.5/4.2/6.03.5/4.2/6.0 s,跨度仅 1.7 倍;而 run 间速度散度是 0.40.40.4--2.02.02.0 m/s,接近 5 倍。在这样的信噪比下,检测不到 1.7 倍的系统性变化是完全预期之内的。 所以我倾向于把 D.2 读作"未检出"而不是"已排除","每周期一跳"仍是最自然的机制假设,而把 TTT 拉开一个数量级、加大重复次数,是一个成本很低、信息量很高的后续实验。

顺带做个跨尺度对照:真实人类观众席的墨西哥人浪速度在 10 m/s 量级 24,比这里快一个数量级。原因很直白------人类人浪的节律由亚秒级的视觉反应时决定,而这里的节律由 3.5 秒的推理周期决定。

这给所有做多 agent 实时系统的人一个直接的工程结论:LLM agent 群体的集体动力学时间尺度,是被推理节律而不是被物理决定的。 你的 token 吞吐率会以一个可测量的方式出现在群体行为的宏观参数里。

5.4 稳态梯度:波没有走完全程

作者很克制地指出:起始时间与距离的回归只在"最终进入了恐慌象限的 agent"上计算,而波并没有覆盖全部人群,所以那个速度描述的是已受影响者之间的传播。

为了刻画全人群,他用了运行末段 25% 窗口内的稳态梯度:

稳态量 与到种子初始距离的 run 内相关 检验
平均唤醒 r=−0.49r=-0.49r=−0.49 t=−7.2, p<0.001t=-7.2,\ p<0.001t=−7.2, p<0.001
恐慌象限占比 r=−0.56r=-0.56r=−0.56 t=−10.2, p<0.001t=-10.2,\ p<0.001t=−10.2, p<0.001
平均效价 r=+0.57r=+0.57r=+0.57 t=9.1, p<0.001t=9.1,\ p<0.001t=9.1, p<0.001

结论:警报始终集中在源头附近,从未变成均匀分布。 波平均只推进整条线的 63%(跨 run 范围 19%--100%)。按 12 m 分段,曾经进入恐慌象限的比例是 97% → 69% → 31% → 21% → 15%。

这个"衰减而非饱和"的空间形态,比一个漂亮的全场级联更有说服力------它说明传播确实受几何约束,而不是提示词里某个全局暗示导致的同步。


6. 时间结构:SIS、SIR 与阈值传染(H3)

6.1 为什么要做这个比较

因为经典人群情绪传染模型就是照着流行病学写的。要检验"涌现出来的宏观动力学是否还是那一套",必须把 SIS / SIR 拉过来拟合。

场景改成 Evacuation Shelter(agent 到达室外集结区后不被移除,继续待着,跑满 180 秒),这样才有"恢复"这一相。20 次运行,4 秒分箱,警报判据是恐慌象限(V<0V<0V<0,A>0.35A>0.35A>0.35)。

6.2 SIS 不动点的核验

SIS 模型:

dIdt=βI(1−I)−γI \frac{dI}{dt}=\beta I(1-I)-\gamma I dtdI=βI(1−I)−γI

令 dI/dt=0dI/dt=0dI/dt=0 且 I≠0I\neq0I=0:

KaTeX parse error: Undefined control sequence: \* at position 12: \beta(1-I^\̲*̲)=\gamma\ \Long...

拿论文的数字验:

  • 汇总拟合 R0=1.42R_0=1.42R0=1.42 → KaTeX parse error: Undefined control sequence: \* at position 3: I^\̲*̲=1-1/1.42=0.295...。图 5 标注的 KaTeX parse error: Undefined control sequence: \* at position 3: I^\̲*̲=0.29。✅
  • 逐 run 拟合中位数 R0=1.4R_0=1.4R0=1.4 → 1−1/1.4=0.28571-1/1.4=0.28571−1/1.4=0.2857;论文报的 KaTeX parse error: Undefined control sequence: \* at position 3: I^\̲*̲ 中位数 0.270.270.27(IQR 0.180.180.18--0.340.340.34)。中位数不满足严格的函数传递,但落点一致。✅

20 次运行里有 19 次 R0>1R_0>1R0>1,IQR 为 1.21.21.2--1.51.51.5。作者特意说明:单独看 β\betaβ 和 γ\gammaγ 辨识度都很差,但它们的比值相对稳定------这是一个对拟合病态性的诚实交代,非常专业。

6.3 SIR 为什么必然失败

SIR 里恢复者获得免疫,I(t)I(t)I(t) 在有限参数下必须 衰减到 0。而观测数据在 180 秒仍保持 22% 的非零平台。拟合器唯一的补偿手段就是把恢复率压到近零(γ=0.02\gamma=0.02γ=0.02),从而在窗口内把衰减拖慢------代价是 R0R_0R0 被抬到 5.0 这个不可解释的值。

RMSE:SIS 0.0760.0760.076 vs SIR 0.1280.1280.128。

平台的存在本身就是"无免疫"的直接证据:离开恐慌状态的 agent 仍然易感,会因为继续评价周围惊慌的邻居而再次被点燃。这个机制解释与 SIS 的假设是严丝合缝的。

6.4 阈值传染的否定结果

把传播项从 βI(1−I)\beta I(1-I)βI(1−I) 推广为

dIdt=βIh(1−I)−γI \frac{dI}{dt}=\beta I^{h}(1-I)-\gamma I dtdI=βIh(1−I)−γI

h=1h=1h=1 退化为标准 SIS;h>1h>1h>1 意味着传播随警报比例超线性增长,也就是需要临界质量(critical mass)------这正是 Dodds--Watts 广义阈值传染 27 的形式,也是作者 2016 年那套模型的地基。

拟合结果:h≈1h\approx1h≈1,RMSE 与标准 SIS 完全相同 (0.0760.0760.076)。

没有任何证据表明存在临界质量阈值。

这个否定结果的意义需要放在正确的尺度上理解。复杂传染(complex contagion)的成立条件是接收者需要来自多个独立来源的强化暴露 。而本文场景里 8 m 视距内的平均可见邻居数只有约 3 个(Standing Line 约 2 个,Calm Plaza 约 1 个)。在这样稀疏的人群里,环境根本没有能力提供多重强化暴露,所以复杂传染的成立前提本就不满足。

所以正确的读法是:这不是对 Dodds--Watts 机制的一般性证伪,而是在稀疏、低密度、LLM 预算受限的条件下,阈值机制处于闲置状态。作者在讨论里正是这么写的:"the threshold mechanism ... stays idle in this setting"。用词很准。

6.5 单参数对拟不下来 ------ 这是信息,不是噪声

观测轨迹的形状是:5%5\%5% → 20 秒内冲到峰值 47%47\%47% → 回落 → 稳定在 22%22\%22%(95% CI 0.12,0.310.12, 0.310.12,0.31,逐 run 末段范围 0.000.000.00--0.760.760.76)。

论文的结论是 H3 部分支持:SIS 和 SIR 都无法用单一参数对 (β,γ)(\beta,\gamma)(β,γ) 同时刻画超调与平台。

我想把这个"失败"再往前推一步,因为它其实指出了模型该怎么改。

问题不在 SIS 的函数形式,而在于这里的"恢复"不是一个速率常数,它是一个由情境触发的事件。agent 走到室外集结区,重新评价"我现在安全了",然后恢复。也就是说真实的模型是非自治的:

dIdt=βI(1−I)−γ(t) I,γ(t) 在人群离开建筑的时刻发生阶跃 \frac{dI}{dt}=\beta I(1-I)-\gamma(t)\,I,\qquad \gamma(t)\ \text{在人群离开建筑的时刻发生阶跃} dtdI=βI(1−I)−γ(t)I,γ(t) 在人群离开建筑的时刻发生阶跃

进一步说,整条轨迹应该拆成两个来源:

  • 峰值 47% :警报响起是一个外生共同冲击,全场同时听到------这根本不是传染。
  • 平台 22% :这才是传染维持的内生水平,而 SIS 恰好把它拟合得很好(KaTeX parse error: Undefined control sequence: \* at position 3: I^\̲*̲=0.29 vs 观测 0.220.220.22)。

把"外生冲击 + 内生传染"分开建模,SIS 拟不下来的那部分残差就消失了。 所以这个失败是诊断性的:它精确地告诉我们,评价驱动的恢复是状态依赖的,不是速率常数。这是 LLM 认知层带来的与经典房室模型的真实差异,而不是拟合质量问题。

附录 D.3 又把恐慌象限阈值从 A>0.25A>0.25A>0.25 扫到 A>0.55A>0.55A>0.55、并加了更严的 V<−0.1V<-0.1V<−0.1:平台始终非零(19%--23%),神经质单调性始终成立(ρ≈0.94\rho\approx0.94ρ≈0.94),SIS 在操作阈值及更严阈值下都优于 SIR。定性结论对阈值选择稳健,绝对百分比不稳健------这个区分作者自己讲得很清楚。


7. 人格如何决定"点火"(H5)

7.1 神经质:区分"个体焦虑"与"集体级联"

设计极干净:Evacuation 场景去掉恐慌种子 ,人群从中性情绪起步,只改一个变量------群体平均神经质 0.3/0.6/0.90.3/0.6/0.90.3/0.6/0.9,每档 20 次运行。没有任何外部恐慌源,只有一个语义上刻意模糊的情境("警报响了,你分不清是真的紧急情况、例行演练还是误报")。

μN\mu_NμN 恐慌象限占比 外显警报线索占比 平均效价 时间进程
0.3 30% 4.0% −0.04-0.04−0.04 1% → 37%,缓慢爬升
0.6 83% 70% −0.48-0.48−0.48 10% → 97%(中段)
0.9 92% 98% −0.71-0.71−0.71 33% 起步 → 前半程饱和 100%

Spearman ρ=0.94\rho=0.94ρ=0.94;Jonckheere--Terpstra 趋势检验 z=8.1z=8.1z=8.1,p<0.001p<0.001p<0.001。

这里最关键的方法论决定,是作者拒绝把 μN=0.3\mu_N=0.3μN=0.3 那 30% 叫做恐慌。

三条依据:

  1. 象限内的深度 :那 30% 的平均值是 V=−0.25V=-0.25V=−0.25、A=0.54A=0.54A=0.54,刚刚越过 A>0.35A>0.35A>0.35 的边界线,是"轻微不安"而非恐慌。恐慌象限是一个粗糙的二值化,稳定人群恰好压在它的边缘上。
  2. 外显线索率:4.0% vs 70% vs 98%。差了一个数量级还多。
  3. 时间曲线形状 :稳定人群是近乎线性的缓慢爬升,高神经质人群是自放大的 S 形饱和

第 2 条尤其重要,因为它触到了全文的机械枢纽:

一个感到害怕但不表现出来的 agent,无法感染任何人。

恐慌象限占比是状态 变量,外显线索率是发射变量。传染只吃后者。这个区分在第 9 节会被跨后端实验以最戏剧性的方式验证。

滞后耦合系数 β1V=−0.066\beta_1^V=-0.066β1V=−0.066(t=−7.2t=-7.2t=−7.2)、β1A=+0.054\beta_1^A=+0.054β1A=+0.054(t=6.6t=6.6t=6.6),控制自身状态与局部密度后仍显著------邻居当前的警报状态预测你下一步的情绪变化,符合传染而非各自独立焦虑。

这个结果相对作者自己 2016 年模型的推进也说得很准:在旧模型里,人格调节的是一场已经在运行的传染的强度 ;在这里,人格决定的是传染是否会被点燃。前者是增益,后者是相变。

7.2 平静领导者:负性偏差的涌现

k=0/2/4k=0/2/4k=0/2/4 个高尽责性、高外向性、高宜人性、低神经质(μN=0.15\mu_N=0.15μN=0.15,σ=0.04\sigma=0.04σ=0.04)的 agent 替换普通成员,场景里有 1 个恐慌种子。

领导者本身守住了:平均唤醒 0.260.260.26(k=2k=2k=2)、0.200.200.20(k=4k=4k=4),远低于周围人群的 0.520.520.52--0.570.570.57;且在 98%(k=2k=2k=2)与 100%(k=4k=4k=4)的评价步上主动喊出安抚。

kkk 非领导者警报线索率 恐慌象限占比 平均唤醒 平均效价
0 46% 77% 0.57 −0.32-0.32−0.32
2 40% 75% --- ---
4 31% 69% 0.52 −0.25-0.25−0.25

趋势显著(ρ=−0.36\rho=-0.36ρ=−0.36,z=2.8z=2.8z=2.8,p=0.005p=0.005p=0.005;恐慌象限 ρ=−0.40\rho=-0.40ρ=−0.40,z=3.1z=3.1z=3.1,p=0.004p=0.004p=0.004),但效应很小:四个领导者仍留下 69% 的人群处于恐慌。

把这个不对称量化一下会更刺眼:1 个恐慌种子把人群推到 46% 的警报线索率;4 个持续喊安抚的领导者只把它拉回 15 个百分点。 一个负面源的影响力,大致抵得过四个正面源。

作者给的解释是评价步骤里的负性偏差------当邻居视野里同时存在警报线索与安抚线索时,警报占上风。这与 Baumeister 等人 "Bad is stronger than good" 68 的广泛结论一致,也与 Allport & Postman 关于恐惧类内容在模糊条件下更易流传的谣言研究 69 吻合。

我想强调这里的对照关系:ESCAPES 53 里权威人物能强力抑制恐慌,因为模型就是那么构造的------抑制系数是你设的参数。而在这里,抑制强度是 LLM 在权衡"一个人在喊冷静"和"三个人在尖叫"时自己算出来的,它继承的是训练分布里的人类负性偏差。

这到底是优点(自动获得了生态效度)还是缺点(这个偏差未经校准、无法调节)?目前无法判定,因为没有真实人群数据做对照。 但它把一个原本是"设计选择"的东西,变成了一个"可测量的模型属性"------这本身就是进步。

7.3 愤怒 vs 恐惧:圆环模型的简并,与 appraisal 的第三维

我认为这是全文理论上最深的一个实验。

问题的形式化陈述 :恐惧和愤怒占据 Russell 圆环模型的同一象限 (负效价、高唤醒)。因此 (V,A)(V,A)(V,A) 这个二维状态在原理上无法区分它们

那么在一个只用 (V,A)(V,A)(V,A) 做状态、只用线性耦合做传播的模型里,"同一个挑衅刺激,在 A 人群里变成愤怒、在 B 人群里变成恐惧"这个现象根本不可能被表达出来。你必须外挂离散情绪标签和一套手写的映射规则。

实验设计 :Contested Gate 场景(44×6044\times6044×60 m,被墙分隔,只有一个 2.4 m 宽的门,18 个 agent 要挤到对面)。挑衅者 k=0/2/4k=0/2/4k=0/2/4,人格为低宜人性 μAgr=0.12\mu_{Agr}=0.12μAgr=0.12、高神经质 0.600.600.60、高外向 0.700.700.70、低尽责 0.350.350.35,播种在不快-激活区(V=−0.6V=-0.6V=−0.6,A=0.45A=0.45A=0.45)。同一套设置跑两种人群:baseline(全 trait 均值 0.5)与 disagreeable(μAgr=0.30\mu_{Agr}=0.30μAgr=0.30,μN=0.35\mu_N=0.35μN=0.35,其余 0.5)。

注意 disagreeable 人群的神经质被刻意压在中低水平(0.35)------因为作者要观察的是"挑衅被读成愤怒"而不是"挑衅被读成焦虑"。这个控制变量设得非常讲究。

结果

人群 情绪 k=0k=0k=0 k=2k=2k=2 k=4k=4k=4 趋势
disagreeable 愤怒 31% 47% 54% ρ=0.72\rho=0.72ρ=0.72,z=5.8z=5.8z=5.8,p<0.001p<0.001p<0.001
disagreeable 恐惧 3% 8% 18% ρ=0.50\rho=0.50ρ=0.50,z=3.9z=3.9z=3.9
baseline 愤怒 8% 13% 14% ρ=0.27\rho=0.27ρ=0.27,z=2.1z=2.1z=2.1,p=0.039p=0.039p=0.039
baseline 恐惧 30% 34% 45% ρ=0.30\rho=0.30ρ=0.30,z=2.3z=2.3z=2.3,p=0.031p=0.031p=0.031

最关键的是交互检验

愤怒斜率disagreeable=0.054/挑衅者,愤怒斜率baseline=0.017/挑衅者 \text{愤怒斜率}{\text{disagreeable}}=0.054/\text{挑衅者},\qquad \text{愤怒斜率}{\text{baseline}}=0.017/\text{挑衅者} 愤怒斜率disagreeable=0.054/挑衅者,愤怒斜率baseline=0.017/挑衅者

Δ=0.054−0.017=0.037,t=3.3, p=0.004 \Delta=0.054-0.017=0.037,\qquad t=3.3,\ p=0.004 Δ=0.054−0.017=0.037,t=3.3, p=0.004

恐惧的斜率在两个人群之间无差异(p=0.91p=0.91p=0.91)

这个对照做得极漂亮。它排除了最明显的替代解释------"disagreeable 人群只是整体上更容易被激起"。如果是普遍反应性,恐惧斜率也该更陡。它没有。低宜人性特异性地放大愤怒响应,而不是放大反应性本身。

理论定位 :区分恐惧与愤怒所需要的那一维,评价理论里早有答案------能动性 / 可归咎性(agency / blame)(Smith & Ellsworth 70、Lazarus 71)。同样是负效价高唤醒,如果威胁源是可归咎的他人,就是愤怒;如果是不可控的环境,就是恐惧。

挑衅者提供了"可归咎的对象",低宜人性提供了"敌意归因偏差"(Wilkowski & Robinson 72:高特质愤怒、低宜人性个体倾向于把模糊挑衅解读为敌意意图并作出攻击反应)。两者同时具备,愤怒才传播。

论文对此的总结一句到位:愤怒表达的传染需要一个可归咎的来源,和一群易怒的接收者。

还有一个细节值得看:baseline 人群在 k=0k=0k=0 时恐惧就已经有 30%。拥挤的窄门本身就被评价为威胁------这是情境效应,不是传染。作者查了日志确认了这一点。所以挑衅者给所有人加恐惧,但只给易怒者加愤怒。这个分解很干净。


8. 全文最硬的一节:认知评价的组件级验证

这一节是把这篇论文从"一个有趣的 demo"抬升成"一项研究"的东西。

方法论来自 Tak & Gratch 47 的组件视角:一个模型应当通过检验它的每一个组成过程来验证,而不是只看聚合输出。 作者把 appraisal 这一步从空间仿真里整个拆出来,脱离人群动力学,一次只变一个输入,用仿真自己的提示词和解析器,每格采样 N=40N=40N=40。

8.1 感知 → 情绪(表 2)

场景线索 人格 效价 VVV 唤醒 AAA
平静基线 稳定 0.08±0.020.08\pm0.020.08±0.02 0.00±0.020.00\pm0.020.00±0.02
平静基线 神经质 −0.13±0.05-0.13\pm0.05−0.13±0.05 0.25±0.050.25\pm0.050.25±0.05
警报 稳定 −0.20±0.00-0.20\pm0.00−0.20±0.00 0.37±0.050.37\pm0.050.37±0.05
警报 神经质 −0.60±0.00-0.60\pm0.00−0.60±0.00 0.80±0.000.80\pm0.000.80±0.00
欢庆 稳定 +0.20±0.02\mathbf{+0.20}\pm0.02+0.20±0.02 0.10±0.000.10\pm0.000.10±0.00
欢庆 神经质 −0.18±0.07\mathbf{-0.18}\pm0.07−0.18±0.07 0.38±0.050.38\pm0.050.38±0.05
愤怒 稳定 −0.10±0.00-0.10\pm0.00−0.10±0.00 0.20±0.000.20\pm0.000.20±0.00
愤怒 神经质 −0.40±0.00-0.40\pm0.00−0.40±0.00 0.60±0.000.60\pm0.000.60±0.00

先做核验。逐线索的人格间距 Δ=\Delta=Δ= 神经质 −-− 稳定:

ΔV:−0.21, −0.40, −0.38, −0.30(论文报 −0.20,−0.40,−0.40,−0.30) \Delta V: -0.21,\ -0.40,\ -0.38,\ -0.30 \quad(\text{论文报 } -0.20,-0.40,-0.40,-0.30) ΔV:−0.21, −0.40, −0.38, −0.30(论文报 −0.20,−0.40,−0.40,−0.30)

ΔA:+0.25, +0.43, +0.28, +0.40(论文报 0.24, 0.43, 0.30, 0.40) \Delta A: +0.25,\ +0.43,\ +0.28,\ +0.40 \quad(\text{论文报 } 0.24,\ 0.43,\ 0.30,\ 0.40) ΔA:+0.25, +0.43, +0.28, +0.40(论文报 0.24, 0.43, 0.30, 0.40)

平均绝对间距:

∣ΔV∣‾=0.20+0.40+0.40+0.304=0.325≈0.32 ✅ \overline{|\Delta V|}=\frac{0.20+0.40+0.40+0.30}{4}=0.325\approx0.32\ ✅ ∣ΔV∣=40.20+0.40+0.40+0.30=0.325≈0.32 ✅

∣ΔA∣‾=0.24+0.43+0.30+0.404=0.3425≈0.34 ✅ \overline{|\Delta A|}=\frac{0.24+0.43+0.30+0.40}{4}=0.3425\approx0.34\ ✅ ∣ΔA∣=40.24+0.43+0.30+0.40=0.3425≈0.34 ✅

与表 4 中 Gemini 那一行的 0.32/0.340.32/0.340.32/0.34 完全对上。表间自洽。

三个必须注意的观察:

(1)标准差小到近乎确定性。 大多数格子的 σ\sigmaσ 在 0.000.000.00--0.070.070.07。温度扫描进一步确认:条件内平均标准差,效价为 0.00/0.025/0.0280.00/0.025/0.0280.00/0.025/0.028(T=0/0.4/0.8T=0/0.4/0.8T=0/0.4/0.8),唤醒为 0.00/0.02/0.0360.00/0.02/0.0360.00/0.02/0.036。

这个结果的分量很重:它基本消解了"整个系统由随机语言模型驱动、结论不可信"这个最直接的质疑。在这个提示词与这个任务上,LLM 近似是一个确定性函数。 仿真里 run 与 run 之间的巨大差异,主要来自人格抽样和几何随机性,而不是采样噪声。

(2)欢庆场景下人格翻转了符号。 稳定 agent 读成愉快(+0.20+0.20+0.20),神经质 agent 读成轻度负面且更激活(−0.18-0.18−0.18,A=0.38A=0.38A=0.38)。推理日志显示神经质 agent 把高能量场景读成隐约的威胁。

(3)人格消融揭示了一个精确的分工。 删掉提示词里的人格块,所有间距塌缩到 ∣ΔV∣,∣ΔA∣<0.01|\Delta V|,|\Delta A|<0.01∣ΔV∣,∣ΔA∣<0.01------确认人格操纵完全通过提示词起作用,没有隐藏通道 。但即使不给人格,明确的警报线索仍然驱动强烈的负面响应

于是得到一条很干净的分解:

  • 强信号(警报) :方向由线索决定,增益由人格决定。
  • 弱信号 / 歧义信号(平静、欢庆)方向本身由人格决定------神经质会翻转符号。

这在评价理论里是可预期的:目标不一致性明确的刺激产生趋同的初级评价;歧义刺激才给个体评价偏差留出空间。LLM 复现了这个结构。

8.2 情绪 → 表达(表 3):表达是被调节的,不是被读出的

给定完全相同的内部状态,看两种人格选什么表达:

内部状态 人格 面部 运动 手势
恐慌 (−0.6,0.7)(-0.6, 0.7)(−0.6,0.7) 稳定 中性 (100%) 目的性 (100%) 无 (100%)
恐慌 (−0.6,0.7)(-0.6, 0.7)(−0.6,0.7) 神经质 皱眉 (100%) 激动 (100%) 护挡 (100%)
愉悦 (0.6,0.6)(0.6, 0.6)(0.6,0.6) 稳定 中性 (100%) 漫步 (92%) 无 (100%)
平静 (0.2,−0.4)(0.2, -0.4)(0.2,−0.4) 稳定 中性 (100%) 漫步 (100%) 无 (100%)
愤怒 (−0.5,0.5)(-0.5, 0.5)(−0.5,0.5) 稳定 中性 (100%) 目的性 (100%) 无 (100%)
愤怒 (−0.5,0.5)(-0.5, 0.5)(−0.5,0.5) 神经质 皱眉 (100%) 激动 (100%) 护挡 (100%)

稳定 agent 内心恐慌,外表若无其事、步伐目的明确。 这是情绪调节 / 表达规则(display rules)------没有人写过这条规则,它是从"高情绪稳定性"这几个词里长出来的。

而这个结果对传染机制的意义是直接的:表达不是情绪的确定性读数,中间有一道由人格控制的闸门。 这就是第 2 节说的"发射"。

8.3 声音信道的情境门控------我认为这是全文最被低估的一个发现

看表 3 的所有格子:发声一律是 Silent。

无论内部状态多极端------恐慌、愤怒、狂喜------没有任何一个纯内部状态能够触发发声。作者的解释是:探针里感知场景被固定为良性,而在仿真里,发声总是伴随一个挑衅性的场景(警报响起、别人在尖叫)。

把这个发现和第 3 节的模态消融并排放,会得到一个漂亮的闭环:

  • 声音是可达面积最大 的信道(视觉的 11 倍以上,P(exp⁡)=0.53P(\exp)=0.53P(exp)=0.53,保留率 77%)。
  • 但声音只有在环境中已经存在警报时才会开启

这构成一个正反馈门控

环境中无警报 ⇒ 长程信道关闭 ⇒ 只有短程视觉通道 ⇒ 难以点火 \text{环境中无警报}\ \Rightarrow\ \text{长程信道关闭}\ \Rightarrow\ \text{只有短程视觉通道}\ \Rightarrow\ \text{难以点火} 环境中无警报 ⇒ 长程信道关闭 ⇒ 只有短程视觉通道 ⇒ 难以点火

环境中有警报 ⇒ 长程信道开启 ⇒ 覆盖 11 倍面积 ⇒ 快速级联 \text{环境中有警报}\ \Rightarrow\ \text{长程信道开启}\ \Rightarrow\ \text{覆盖 11 倍面积}\ \Rightarrow\ \text{快速级联} 环境中有警报 ⇒ 长程信道开启 ⇒ 覆盖 11 倍面积 ⇒ 快速级联

这一条同时解释了两件事: 为什么 Standing Line 的波必须有一个真的会尖叫的种子簇(种子在 98% 的步骤上外显警报);以及第 9 节里 gpt-4o-mini 为什么会整场归零。

作者把这个观察写成了一句话------"感知到的情境控制着被感受状态有多少被显示出来,全强度的表达需要场景本身配得上它"------但没有把它接到点火条件上。我认为这是全文机制链条上最关键的一环。

8.4 温度与提示词稳健性

温度 :表达选择的一致性(40 个样本里选中最高频类别的比例),面部、手势、声音在所有温度下都是 1.001.001.00;运动仅从 1.001.001.00 降到 0.950.950.95(T=0.4T=0.4T=0.4)再到 0.930.930.93(T=0.8T=0.8T=0.8)。涌现动力学不依赖精细的温度调参。

提示词:七个变体------基础、两种同义改写(口语 / 正式)、四种消融(去人格块 / 去情境 / 去"只可见外在行为"子句 / 去社会框架句)。

  • 两种改写把四个线索全部维持在基础提示词的 0.060.060.06 效价以内,且保持人格间距
  • 去掉外在行为子句、社会框架句、情境行,几乎不动任何线索
  • 去掉人格块,所有间距塌缩

结论清楚:人格块是承重的,那几句框架性措辞在探针条件下不是。

这类提示词消融在 LLM agent 论文里做得太少了。多数工作把提示词当成不可见的常数,而这里它被当成实验因子逐项拆开。


9. 跨后端:静态检验全过,群体动力学归零

9.1 四后端对比(表 4)

四项判据:格式可靠性(生成能解析成 schema 的比例)、采样可靠性(条件内标准差)、人格依赖(同一线索下两种人格的返回情绪间距)、方向效度(每个线索是否落在圆环模型的预期区域)。

后端 参数量 解析错误 σV\sigma_VσV σA\sigma_AσA 间距 ∣ΔV∣\lvert\Delta V\rvert∣ΔV∣ 间距 ∣ΔA∣\lvert\Delta A\rvert∣ΔA∣ 方向效度
gemini-3.1-flash-lite --- 0% 0.03 0.02 0.32 0.34
gpt-4o-mini --- 0% 0.03 0.03 0.08 0.10
llama3.1:8b 8 B 0% 0.10 0.16 0.32 0.46
llama3.2:3b 3 B 67% 0.08* 0.14* 0.21* 0.26*

* 仅在能解析的 33% 生成上计算。

推理延迟:Gemini 约 0.75 s / 次,gpt-4o-mini 约 1.5 s / 次(API);本地 Apple M4 + 32 GB 上 llama3.2:3b 约 1.1 s、llama3.1:8b 约 2.0 s。

llama3.1:8b 在质上与 Gemini 匹配(零解析失败、线索排序正确、人格间距 0.32/0.460.32/0.460.32/0.46),差别主要在噪声------标准差高 3--8 倍。

9.2 决定性实验

gpt-4o-mini 通过了除人格依赖以外的全部检验 :零解析失败、近确定性采样(σV=σA=0.03\sigma_V=\sigma_A=0.03σV=σA=0.03)、线索排序正确、警报场景读成强烈不快且激活(V=−0.49V=-0.49V=−0.49,A=0.56A=0.56A=0.56)。唯独人格间距塌缩到 0.08/0.100.08/0.100.08/0.10------在平静、警报、欢庆三个场景上几乎抹平(∣ΔV∣≤0.01|\Delta V|\le0.01∣ΔV∣≤0.01,Holm 校正后 p≥0.64p\ge0.64p≥0.64),只在愤怒线索上保留了敏感性。

于是作者做了那个决定性的实验:保持场景、几何、初始种子完全不变,只换后端,跑 20 次 Standing Line 波。

结果:

Gemini gpt-4o-mini
出现波的运行数 20 / 20 0 / 20
非种子 agent 进入恐慌象限 平均 23% 0(一个都没有)
种子的平均效价 −0.94-0.94−0.94 −0.31-0.31−0.31
种子的外显警报比例 98% 3%

看最后两行------机制定位精确到无可挑剔:

后端对人格的抹平作用在源头就生效了。 高神经质的种子簇被注入了 V=−0.85V=-0.85V=−0.85 的恐慌,但 gpt-4o-mini 把它衰减到 −0.31-0.31−0.31,并且几乎不外显(3% vs 98%)。种子不尖叫,长程声音信道(8.3 节)就不会开启,人群从头到尾没有接触到任何警报线索。

作者的自我限制也很精确:这些运行只证明了源头失效 ,接收端的易感性未被检验------因为人群根本没被暴露过。这个区分很多人会含糊过去,他没有。

9.3 这一页对工程的价值

我认为这是全文对 LLM agent 工程界最有价值的一段,值得单独提炼:

一个后端可以通过每一项静态的认知评价效度检验------格式可靠、方向正确、采样稳定------却仍然产生完全不同类别的群体动力学。

原因是可以形式化的:方向效度是关于均值的性质,集体动力学依赖的是跨条件的离散度。 静态基准测量均值,涌现现象吃方差。两者是不同的量,前者合格不蕴含后者合格。

如果你在部署多 agent 系统,这条是可直接执行的结论:换模型之后必须重测宏观行为,单体评测全绿不构成任何保证。

9.4 3B 模型那个更隐蔽的陷阱

llama3.2:3b 有 67% 的生成无法产出 schema 合法的 JSON。但真正危险的不是失败率,而是:

解析失败率与实验条件强相关。 稳定人格的提示词有 68%--100% 能解析,神经质人格的提示词只有 18%--30%。

也就是说,如果你按常规做法把解析失败的样本丢掉重试,你丢掉的样本是按自变量系统性偏斜的。剩下的样本构成一个选择性子集,在它上面估出来的人格效应是有偏的。作者明确标注了这一点("selection-biased"),并且没有把 3B 的间距数字当作可信估计。

这是一条对整个 LLM agent 实证研究领域的通用警告:schema 合规失败率如果与实验条件相关,它就是一个混杂因子,而不是一个工程噪声。 建议所有做类似工作的人把"分条件的解析成功率"当作一等公民指标报告出来。

9.5 一个我认为很值得做的后续实验

作者把人格敏感度 ∣ΔV∣|\Delta V|∣ΔV∣ 当作一个描述性指标。但从跨后端的结果看,它的行为更像一个序参量

∣ΔV∣=0.32 ⇒ 有波∣ΔV∣=0.08 ⇒ 无波 |\Delta V|=0.32\ \Rightarrow\ \text{有波}\qquad |\Delta V|=0.08\ \Rightarrow\ \text{无波} ∣ΔV∣=0.32 ⇒ 有波∣ΔV∣=0.08 ⇒ 无波

现在只有两个点,无法定位任何阈值。但实验是现成的:用提示词强度连续调节人格块 (比如在"略微容易紧张"到"极度神经质"之间插值措辞强度),扫出 ∣ΔV∣|\Delta V|∣ΔV∣ 的连续谱,看波的出现是渐变还是在某个临界值附近突然发生。

如果是后者,那就是一个可测量的相变,并且给"更换后端需要重测群体行为"提供了一个定量判据,而不只是一句定性告诫。


10. 值得直接抄走的统计手册

在 LLM agent 这个方向上,这一层级的统计卫生是罕见的。列出来供参考:

  1. Holm--Bonferroni 校正,按假设分族 。每个子假设自成一族;并且明确规定"用另一种设定重新检验同一个系数的稳健性拟合(如加入到种子距离协变量、加入 run 固定效应)不计入额外检验数"。这条规则写在正文里,避免了事后调整族大小的自由度。
  2. 按 run 聚类的稳健标准误。不做 run 内独立性假设。
  3. Fisher z 变换后再对 run 级相关系数做单样本 t 检验。直接平均相关系数是常见错误,这里避开了。
  4. Jonckheere--Terpstra 趋势检验用于三个有序水平。针对单调备择假设,比 Kruskal--Wallis 更有功效------这是正确的检验选择,很多人会顺手用 ANOVA。
  5. 区组配对:模态消融里同一批 20 个 baseline 人群跑遍所有条件,配对 t 检验直接扣掉人格抽样方差。
  6. run 级 bootstrap 给波前斜率的置信区间。
  7. 固定效应作为诚实性检验 :H1.a 的滞后回归在加入 run 固定效应与 run 内时间趋势后,系数变得与零无异(βV=0.002\beta^V=0.002βV=0.002,p=0.76p=0.76p=0.76;βA=−0.008\beta^A=-0.008βA=−0.008,p=0.31p=0.31p=0.31)。作者照实报了,并主动把结论降级为"依据轨迹与 run 级横截面"。这种做法在 LLM 论文里非常少见。
  8. 三项参数敏感性分析 :情绪惯性 λ\lambdaλ(D.1)、评价周期 TTT(D.2)、恐慌象限阈值(D.3)。
  9. 分场景重算 η2\eta^2η2,排除"这只是场景间差异"的替代解释。

一个额外的观察:负控制场景反而给出了最干净的识别

这是我读下来觉得最有趣的一处方法论细节。

三个 H1 场景里,Calm Plaza 是负控制 ------本来是拿来证明"没有显著线索时不会有传染"的。结果它的滞后耦合系数是三个场景里最大的:

β1V=−0.095 (95% CI −0.137,−0.054),β1A=+0.078 (0.044, 0.112) \beta_1^V=-0.095\ (95\%\ \mathrm{CI}\ -0.137,-0.054),\qquad \beta_1^A=+0.078\ (0.044,\\ 0.112) β1V=−0.095 (95% CI −0.137,−0.054),β1A=+0.078 (0.044, 0.112)

而且在加入 run 固定效应与 run 内时间趋势后依然稳健 (β1V=−0.074\beta_1^V=-0.074β1V=−0.074,p=0.006p=0.006p=0.006;β1A=0.072\beta_1^A=0.072β1A=0.072,p=0.005p=0.005p=0.005)------这正是 Evacuation 做不到的。

原因不难理解:Evacuation 里所有人同时听到警报,这是一个共同时间冲击 ,它会同时推动"邻居警报比例"和"自身情绪变化",把滞后回归的识别彻底污染;再加上运行只有 50--60 秒、agent 到达出口后被移除造成的选择性流失,识别条件很差。而 Calm Plaza 安静、稀疏、无共同冲击,偶发的一个警报邻居就是唯一在发生的事,因此估计干净。

效应最强的场景识别最差,效应最弱的场景识别最好。

于是全文的证据结构变成了一个很漂亮的分工:Evacuation 提供效应量 ,Calm Plaza 提供因果识别,两者互补才构成完整论证。作者把"crowd 层面无传染(支持 H1.c)"和"micro 层面耦合仍然活跃且最干净"这两件看似矛盾的事同时说清楚了。


11. 几句锐评

这篇论文真正的贡献不是"LLM agent 会互相感染情绪"------那几乎是构造上必然的,作者自己第一时间就承认了("the existence of emotional contagion is not itself the finding")。

贡献是:在删掉所有传递规则之后,剩下的那些结构居然是有形状的,而且形状可以被逐项测量。

架构没有规定的东西包括:波以多快的速度传播、它衰减到哪里、警报比例稳定在什么水平、哪条模态承担主要传输、同一象限里恐惧与愤怒如何分岔、以及在给定人群组成下传染是否会发生。这六件事全部是测出来的,而不是设出来的。

同时必须承认,这个交换是有成本的,而且成本是实的。

在 ASCRIBE 里,信道强度是一个你能读懂、能调、能求导的数。在这里,它是一个必须靠 315,864 次采样估计出来的、依附于特定模型权重的经验量。你失去了解析透明性。

但作者用第 8 节和第 9 节把这笔账做平了:认知评价映射被证明是近确定性的、对温度稳健的、对提示词改写稳健的、人格依赖可被量化为一个数 。你换来的不是黑箱,是一个可以被实验刻画的组件 。你失去的是解析可解性,得到的是经验可表征性,外加表达那些你原本写不出来的结构的能力(Idle = 冻结、手势的世界指向性、恐惧/愤怒的分岔)。

这笔账划不划算取决于你要什么。 如果你要的是可证明的、可控的、能写进安全规范的模型,规则模型仍然更好。如果你要的是发现你不知道自己该写什么规则的那些结构,这条路是目前唯一可走的。

局限作者自己都写了,我只点一句:人群小而稀疏(10--26 个 agent,平均可见邻居约 1--3 个),没有对照真实人群数据的外部效度验证,表达词表是离散的,探针把记忆与情境固定在中性因而没有测交互效应,运动与 LLM 解耦导致人格无法影响"我走到哪里、因而看见谁"这条反馈路径。

其中最后一条其实最值得做:人格 → 空间位置 → 感知邻居 → 暴露量是一条完整的反馈回路,现在被解耦切断了。喜欢走边缘的人和喜欢往中间挤的人,暴露在完全不同的情绪场里。作者提出的混合人群方案(少量全评价 agent 嵌入大量纯物理背景 agent)能在不增加 LLM 调用的前提下提高物理密度,是一个成本可控的方向。


12. 这项工作到底做成了一件怎样的事

我用三句话概括。

第一,它把两条互不通话的文献焊在了一起。

一边是人群仿真里的情绪传染(ESCAPES、ASCRIBE、Durupinar 2016、Basak 2018):有扎实的物理基底------视锥、遮挡、声音衰减、RVO 避碰、导航网格、挤压压力------但认知层是一条手写方程。另一边是 LLM agent 社会(Generative Agents、AgentSociety、Concordia):有丰富的社会行为,但没有物理空间,也很少做受控消融。

这篇论文保留了前者的物理基底 ,替换掉前者的认知规则 ,然后用实验心理学的统计纪律去检验结果。三者的交集之前是空的。

第二,它重新定义了这个方向该问的问题。

不是"LLM agent 能不能像人",而是"情绪如何在正在交互的语言模型之间传播 "。这个转向很重要,因为多 agent LLM 系统已经在被真实部署了。这篇论文给出的经验事实是:一个 agent 的表达状态会以可测量的方式改变邻居的输出,这种耦合有空间结构、有时间平衡态、有模态偏好,并且会随后端更换而整体消失或出现。

论文的伦理声明写得很克制,值得引用其态度:不主张 LLM agent 拥有情绪体验,不主张这是一个经过验证的人类人群模型,明确警告人格-情绪关联可能复现训练数据里的刻板印象,明确说明未经真实数据校准前不应作为疏散设计等安全关键决策的唯一依据。这种克制本身就是专业性的一部分。

第三,它交付了一套可复用的测量工具。

  • 暴露分解式 P(panic)=P(exp⁡)E⋅∣exp⁡+P(exp⁡‾)E⋅∣exp⁡‾P(\text{panic})=P(\exp)E\\cdot\\mid\\exp+P(\overline{\exp})E\\cdot\\mid\\overline{\\exp}P(panic)=P(exp)E⋅∣exp+P(exp)E⋅∣exp:把一个信道的效应分离成"可达"与"可信"两个正交因子。
  • 底噪归一保留率 :(modality−floor)/(baseline−floor)(\text{modality}-\text{floor})/(\text{baseline}-\text{floor})(modality−floor)/(baseline−floor),让不同模态的贡献可比。
  • 认知评价探针:脱离系统、单变量、多采样地刻画核心组件------这套方法可以原封不动地搬到任何 LLM agent 架构的任何认知步骤上。
  • 跨后端序参量测试:把"换模型会不会改变系统宏观行为"变成一个可以跑的实验。

如果你在做多 agent 系统,我建议至少把最后两条带走。