iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0
Vibe Coding

跟 AI 一起寫程式:30 天看懂 Vibe Coding 的提示、驗收與避雷系列 第 11

聊久了,需求怎麼變成另一個產品?Context Drift

  • 分享至 

  • xImage
  •  

一開始明明只是「做一個簡單的待辦清單」,聊了二十輪之後,卻多了會員系統、排行榜,連原本的按鈕名稱都換掉了。

這種需求在長對話中慢慢偏移的現象,可以稱為 Context Drift;研究上比較接近的說法是 lost in multi-turn conversation。

Day 08 問的是「此刻 AI 桌上攤著哪些東西」,那是橫切面。這篇問的是「這些東西怎麼一輪一輪堆成現在這樣」,是縱切面。

這很像傳話遊戲。每一輪只偏一點點,累積下來,最後的版本和最初的需求已經是兩件事。

常見的跡象有幾種:

  • 功能一路長大,原本的核心反而沒做完
  • 同一個東西前後用了不同名稱
  • 早期定下的限制被後來的指令蓋掉
  • 臨時的決定被當成永久規格

大部分的 drift 是你自己加的

會員系統和排行榜,八成不是 AI 偷偷塞的,是你在第九輪和第十四輪自己說的。

每一輪你都同意,每一輪也都只多一點點。drift 不是失控,而是一連串各自合理的小決定加起來的結果——這才是它難察覺的地方。

臨時決定會變成永久規格

你在第三輪說「先用假資料就好」,那句話的重點是「先」,為的是快點看到畫面。

二十輪後它還在用假資料,而你早就忘了自己說過什麼。AI 沒有記住那是暫時的,它只看到你說過這樣可以。

同樣的事會發生在暫定的資料庫、暫定的命名、暫定的簡化邏輯上。臨時方案不會自己舉手說該退場了。

怎麼發現自己已經飄了

每隔一段時間問一次:

請用三句話說明我們現在在做什麼、有哪些不能改的限制。

然後跟你心裡的版本對一下。不一致的地方,就是飄掉的地方。

這個動作幾乎沒有成本,而且最容易照出那些被當成永久規格的臨時決定。

三個預防動作

維護一份決策紀錄。 就是 Day 10 問完之後那份確認過的清單,別讓它停在當天。上面寫四件事:目前目標、不能改的限制、重要命名、已經確認的選擇。

任務切短。 一次只處理登入頁,不要在同一輪又改資料庫、首頁和部署設定。

該重開就重開。 對話累積了大量無關內容時,開新會話並把最新的需求摘要帶過去,通常比繼續在原對話裡糾正有效。研究發現,同一個任務改成多輪逐步補充之後,模型表現平均掉了 39%,而且早期一旦轉錯彎,後面很難自己回來。

傳話遊戲之所以好玩,是因為從頭到尾沒有人說錯話。每一輪都只差一點點,而終點那句話已經面目全非。定期回頭對一次原話,是唯一的解法。

延伸閱讀

Laban, P., Hayashi, H., Zhou, Y. & Neville, J. (2025). LLMs Get Lost In Multi-Turn Conversation. arXiv:2505.06120(preprint),Microsoft Research 與 Salesforce Research。研究模擬二十萬場以上的對話,比較同一個任務「一次講完」與「分多輪逐步補充」的差別:後者讓各家頂尖模型的表現平均下降 39%。作者指出,退步主要不是能力變差,而是穩定度大幅下滑——模型在早期做出錯誤假設後,往往無法在後續對話中修正回來。


上一篇
先別急著寫:讓 AI 把不清楚的地方問完
下一篇
每次都重新自我介紹好累:專案規則、記憶與交接筆記
系列文
跟 AI 一起寫程式:30 天看懂 Vibe Coding 的提示、驗收與避雷13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言