LLM 答案分歧的真相:語境消歧義與語義治理
『洗車 50 公尺要不要開車』看似在比模型智商,其實在暴露語境歧義與語義 framing。把它放進工程視角,就會回到需求規格、消歧義約束,以及 multi-agent 的語義治理。
社群上最近流傳一個對各家模型的小測試:
洗車店離我家只有 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 系統設計了。