
當你開始使用 AI 做一些事情之後,你會開始發生一些奇奇怪怪的事情,像是明明有講一些規則,但它好像忘了、答非所問、甚至把改好的東西又改回去。
大多數人對於這種狀況的第一直覺就是...
「AI 它是不是變笨了?
「是不是 AI 廠商偷偷降低 AI 智商?」
但其實很多時候,真正的問題是在於 Context Window 中的 Context 已經爆滿了,導致 AI 無法正常運作。
而講到 Context 就沒辦法不一起介紹 Token,畢竟這兩個東西是息息相關的。
了解這件事情之後,你也會理解為什麼 AI 聊久了會變笨,為什麼常用 AI 的人會建議你一個任務開一個新對話視窗。
在開始介紹 Context 之前,我們先來認識一下 AI 世界中最重要的東西,也就是 Token,它同時也是 AI 的計價單位。
經過前面幾天的實作,你應該已經很習慣「下指令(Prompt) => AI 回覆結果」這個流程了,但你有想過 AI 是怎麼 「讀」 你打的這些字的嗎?
其實 AI 並不是像我們一樣一個字一個字讀下去,而是會先把你傳的文字拆成一小塊一小塊的單位再去運算,這個單位就叫做 Token。
你可以把 Token 想像成樂高積木,你傳給 AI 的整段話,會先被拆成一顆一顆的小積木,AI 拿到積木之後就在思考,你後面到底是想要接什麼樣的積木,然後再一個一個地把積木拼出來給你丟給你。
假設來講,你傳給了 AI 這段文字:
你好!
AI 收到之後,會先把它拆成:
接著根據這三個積木去推測你可能想要什麼接什麼積木。
Note
不同模型拆 Token 的方式可能會不一樣,但大致上都是以「字」或「詞」為單位去拆。
而你可以想像成 AI 手上有一大堆積木這些積木都有做分類,例如...
諸如此類,然後每一個都拿來跟你丟給它的積木做比對,而這個比對的過程我們就稱為 「算力」,比對完畢後再將結果拼成一個新的積木丟給你。

所以這一段你只要記住兩件事情就好:
所以講到這邊,你還記得前面開頭我說「Token 也是計價單位」嗎?也就是說你跟 AI 的每一次一來一往,都是在消耗 Token,而 AI 廠商就是照你用掉多少 Token 來收錢的。
這也是為什麼普遍不建議新手直接使用「用多少付多少」的 API 計費方式,因為你根本抓不準自己會用掉多少 Token,一不小心帳單爆掉 (賣屁股) ,因此大多數的情況下,使用訂閱方案就已經非常足夠了。
那 Token 跟越聊越笨到底有什麼關係呢?先別著急,這就要講到下一位主角 Context Window 了。
講完了 Token 之後,接著我們來認識一下 Context Window,中文就叫「上下文視窗」,簡單來講就是 AI 單次能「看見」的所有內容的總上限。
應該滿難理解的,這邊讓我拿一張桌子來舉例好了。
假設 Context Window 代表的是一張桌子,然後是 100x100 公分的桌子(如同 Claude Code 標注的 100k Token),那麼你跟 AI 講的每一句話、它讀進來的每一個檔案、每一次指令執行的輸出等等,這些都是放在桌面上的東西。

當你跟 AI 對話的時候,AI 都會先把桌面上的東西看一遍,然後再回覆你,這個過程就像是你跟朋友聊天,只是你這位朋友聽到你的問題後,會先看一看桌面的內容,再去思考你要什麼、該怎麼回覆你,然後要回覆你之前會把這些內容寫到一張紙上,最後再把紙上的內容放在桌面上,接著在回覆你。
「為什麼 AI 要先寫到紙上再放回桌面呢?」
你就想像 AI 是一個記憶力很差的朋友,如果它沒有先把要回覆你的內容寫到紙上,它就會忘記自己要回覆什麼,然後就會開始亂講。
那麼隨著你問的問題越來越多,桌面當然會越來越滿,這時候就會發生一個問題...
桌面上已經快要沒有空間可以放新的東西了!
當這個桌面快要滿到沒地方放東西的時候,AI 就會開始自作主張去把桌面上的東西整理一下,這個過程中,它會自己去挑出「自認為」重要的東西,然後把它濃縮成一張小抄,剩下的東西就直接丟掉,這個過程就叫做「自動壓縮(Auto compact)」。
而這個自動壓縮的過程是完全不可控,你無法知道它會把哪些東西丟掉、哪些東西留下來,這也是為什麼你明明有講一些規則,但它好像忘了、答非所問、甚至把改好的東西又改回去的原因。
所以想跟 AI 長久相處,學會管好這張桌子就是你的日常功課(就跟你開一大堆 Chrome 分頁卻都不關掉一樣),後面我也會教你怎麼管。
理解了 Token 跟 Context Window 的概念之後,你就會發現「越聊越笨」這件事情其實一點都不神秘。
你可以試想一個情境,當你今天跟 AI 聊了一整個下午,你這個桌面(Context Window)上會怎麼樣呢?上面可是充斥著各種 AI 接收到你的 Prompt 後寫下來的小抄,像是:
所以當桌面快要滿的時候,不論是哪一套 AI Agent 都會做一樣的事情,自己很雞婆的把前面的對話濃縮成摘要、其餘的直接丟掉,騰出更多桌面空間給新的內容,而這個壓縮過程本身就是 「有損的」,也就是說細節會不見。
就像是你一開始跟 AI 定義的規則:
請使用繁體中文,回覆我。
當 AI 開始進行桌面清理(壓縮對話)時,它會認為這並不是什麼重要的事情,然後壓縮過程就把這條規則給丟掉了,導致你後續的對話中,它就開始講英文了。
/context: 看你的桌面現在多亂接下來我們要來實際看一個例子,這邊你可以先抓範例檔案 GitHub #day-6 然後進去到 claude-playground 啟動 Claude Code,並在輸入框輸入 /context 指令,這個指令可以讓你看到你目前桌面佔用的狀況,像是...

Note
你電腦內看到的 Context 跟我上方圖片的 Context 可能會不一樣,因為每個人對話的內容不同、預設載入的 Skills、以及工具也都不同,因此會有一定的差異。
一開始我會建議要養成看 context 的習慣,因為你會親眼看到桌面佔用的狀況,這個體感比任何文章都有說服力,底下就是一個剛啟動、什麼都還沒做的畫面:

接著我們來實驗一下,讓你看到 Context 被佔用的狀況:
請讀取 index.html,然後一行一行解釋每一段程式碼在做什麼,接著給我五個可以改善這個頁面的建議,最後把改善後的完整程式碼直接貼在對話中給我看,先不要動檔案
這一段 Prompt 會讓 AI 一口氣做三件很佔桌面的事情:把整份 index.html 讀進來(檔案內容上桌)、輸出一大段逐行解釋(它回你的每個字都是 Token)、最後還把整份程式碼重新貼一次給你(又是一大疊紙上桌)。
等它回覆完之後,再輸入一次 /context,你就會看到桌面佔用的狀況變成這樣:

你可以看到 29.3k 跳到了 49.5k,然後 messages 從佔用一個變成了佔用五個,這個就是你跟 AI 聊久了之後,桌面被佔用的狀況。
/clear 跟 /compact:換桌子 vs 整理桌面我相信你看完前面之後,應該會冒出一個想法:
「如果我不想要觸發『自動壓縮』的話,有其他方式可以解決嗎?」
當然有方式可以解決,所以這邊也要來介紹兩個 AI 開發時,必須知道的指令,也就是 /clear 與 /compact。
前面我們先來介紹一下 /clear(或 /new),這個指令的概念很簡單,就是直接把桌子上面的東西通通丟掉,然後重新開始。
Note
雖然是講通通丟掉,但在後面章節會補充說明該怎麼樣讓每次丟掉後,可以讓 AI 回到原本的桌面狀態。
而 /compact 其實就跟自動壓縮概念雷同,但是這個指令可以加上 **「保留重點」**的指示,什麼意思呢?簡單來講,原本的自動壓縮是由 AI 自己去判斷哪些是重點,但透過 /compact 指令,你可以直接指定哪些是重點,像是 AI 可能會認為「請你使用繁體中文回覆我」這件事情不重要,但你可以透過 /compact 指令告訴它這是重點你不能丟掉,這樣它在整理桌面時就會繼續保留這件事。
使用方式也非常簡單:
/compact 保留目前功能的需求跟還沒解決的問題,其他可以丟
這樣 AI 在進行壓縮時,就會很清楚哪些是重點、哪些是可以丟掉的。
不過這邊我還是要提醒一下,/compact 並不是萬能的,只是在實務開發上會建議在 Context 約 60~70% 的時候就使用 /compact 來整理桌面,畢竟整理的過程也是需要佔用桌面空間的,如果你等到 Context 滿到 90% 才整理桌面,那你有很高的機會失去一些你認為是重點的東西。
那麼這兩個指令都有各自適合的時機與場景,這邊我也提供一張圖給你參考:

所以以我個人的心法來講就是:
/clear)。/compact),然後再繼續同一個任務。基本上這樣的控制就可以讓你在使用 AI 的過程中,避免 「越聊越笨」 的狀況發生,搭配正確的使用 /compact 的時機,你就可以在同一個任務中,保留你想要保留的重點。
Note
這邊還是提醒一下,如果是因為 AI 廠商算力而不足的變笨,那這種狀況跟 Context Window 滿了是兩回事,這邊的重點是要讓你知道,Context Window 滿了會導致 AI 變笨,而不是因為算力不足。
如果你是想追蹤 AI 是否有變笨,那你可以參考我之前寫的這一篇 AI 是不是偷偷變笨了?AIStupidLevel:24 小時監測 AI 模型退化的評測網站 文章,或許會有幫助。
那麼我們一樣回到 claude-playground 做個小實驗吧!
如果你前面 /context 那節的對話還開著,直接沿用那個對話就好,如果已經關掉了,請重新啟動 Claude Code,並重新輸入以下:
請讀取 index.html,然後一行一行解釋每一段程式碼在做什麼,接著給我五個可以改善這個頁面的建議,最後把改善後的完整程式碼直接貼在對話中給我看,先不要動檔案
先讓整個桌面盡可能堆滿一些東西(這邊你可以嘗試 /context 看看桌面佔用的狀況),再繼續往下。
準備好之後,請你跟著以下流程操作,觀察一下 Context Window 的變化:
/compact 只保留目前頁面的功能與尚未完成的事
/context,比較桌面佔用是不是變小了/clear,然後再問一次「目前頁面有哪些功能?」第三點是要讓你親眼看到壓縮是「有損的」,因為我們在 /compact 時只叫它保留功能跟未完成的事,沒叫它保留那五個建議,所以它很可能會漏掉或講不完整。
而第四、五點是同一個問題問兩次:/clear 之前它答得出來,因為這正是我們指定保留的重點;/clear 之後連這題都答不出來必須要重新再讀檔案,因為桌面已經被清空了。
Note
當然有可能它會答得出來,因為 AI 裡面有一個 Auto Memory(自動記憶)的功能,會自己去判斷哪些東西是重要的,然後就把內容給自動記錄下來。
最後也簡單總結一下重點:
/context 看桌面、/clear 清理桌面、/compact 整理桌面。/compact [保留重點] 來指定保留關鍵重點。那麼這一天也差不多了,我們明天見囉。