LLM 答案分歧的真相:語境消歧義與語義治理

『洗車 50 公尺要不要開車』看似在比模型智商,其實在暴露語境歧義與語義 framing。把它放進工程視角,就會回到需求規格、消歧義約束,以及 multi-agent 的語義治理。

LLM 答案分歧的真相:語境消歧義與語義治理

社群上最近流傳一個對各家模型的小測試:

洗車店離我家只有 50 公尺,走幾步就到了,你說我還值得開車去嗎?

有的模型回「走路就好,開車更麻煩」;也有的模型回「去洗車當然要把車開過去」。看起來像在比誰比較聰明,但我更在意的是:這其實是一個很乾淨的「語境解析」示範。

這題在測什麼:語言歧義,而不是常識

這句話的模糊點在「我去洗車」:

  • 可能指「我人去洗車店」(把它當成一個地點/行程)
  • 也可能指「我要把車送去洗」(把它當成一個任務/交付物)

人類會用世界模型自動補全:洗車通常跟車一起出現;50 公尺又讓人直覺聯想到步行。

LLM 沒有真正的物理世界,它在做的是語言空間裡的補全,所以答案會受「哪個語義線索先被抓到」影響:

  • 模型抓到「50 公尺」→ 先進入距離/效率框架 → 步行合理
  • 模型抓到「洗車」→ 先進入任務/物件框架 → 車必須到場

因此分歧不等於模型在亂答,更多時候只是它選擇了不同的切入框架。

分歧從哪來:語義 framing 影響推理路徑

很多人會把這種現象簡化成「LLM 就是機率模型,所以不理解」。這個說法太粗。

在工程實務上,你可以把它理解成:不同模型在注意力分配與語境補全上,優先權設定不一樣。

你只要把 prompt 改得更精準,答案通常就會快速收斂,例如:

我要把車送去洗,洗車店離我家只有 50 公尺,我還需要開車嗎?

當語境消歧義、任務物件被綁定,推理就比較不會分叉。

真正的責任歸屬:需求描述與語境約束

這題對我來說最有價值的地方,是它把「prompt 工程」拉回到更熟悉的領域:需求規格。

如果 PRD 只寫一句「使用者要去完成任務」,卻沒定義角色、物件、環境條件,不同工程師也會各自腦補,最後做出互相衝突但都說得通的功能。

把這個映射到 LLM,你會看到同樣的結構性問題:

  • Intent 沒講清楚
  • 任務物件沒綁定
  • 缺少消歧義約束(disambiguation constraints)

模型會補全,但它補全的是「最可能的語言世界」,不一定是你心裡那個世界。

放進多 Agent 系統:分裂會被放大

如果把這題丟進 multi-agent 系統,事情會更精彩。

假設:

  • Agent A 以效率最佳化為目標
  • Agent B 以任務完成為目標
  • Agent C 以成本/風險為目標

在沒有上層 orchestrator 做語義統一時,你很容易得到三套彼此衝突、但都各自合理的結論。系統看起來「變強」了,實際上是「更會產生分歧」。

所以我一直把 multi-agent 的第一步放在「語義治理」而不是「多塞幾個模型」:

  • 任務物件要明確(什麼要被改變/被交付?)
  • 任務目標要可比較(效率、品質、成本誰優先?)
  • 推理層級要統一(先問清楚再做,或先做再回報?)
  • 衝突解決機制要存在(誰仲裁?何時回問?)

我真正想追問的三個問題

這個小測試的用途不在嘲笑模型,而在提醒我們:LLM 的推理是語言模式上的推進,不是物理因果的模擬。

當你把語境設計得模糊,你就會得到多個「可能世界」的答案。

比較值得工程化處理的,是下面三件事:

  • 如何在 prompt 層把語境收斂到可執行的規格?
  • 如何在 multi-agent 架構裡建立語義治理與仲裁?
  • 如何讓模型在歧義下先回問、再行動,而不是直接補全?

如果你覺得這題只是好笑,那你站在人的世界模型裡看它。

如果你覺得這題很有研究價值,你大概已經在做 AI 系統設計了。