晚上您關掉終端機,感覺整段和代理的對話好像跟著視窗一起消失了。一小時的討論、找到的問題、解釋過的任務背景 - 這一切彷彿都不見了。
其實沒有消失。對話在您工作的同時就自動寫進磁碟,一個指令就能重新打開。
最簡單的想法是把工作階段想成飯店。專案資料夾是一棟建築,每段對話是一個房間,所有房間的鑰匙都掛在櫃檯後面的板子上。晚上您離開,但不會把房間燒掉:鑰匙掛回板子,東西留在裡面。早上只要跟櫃檯說您要哪個房間就好。

這個比喻有個界限,最好先講清楚:房間裡住的是對話,不是程式碼。程式碼是整棟建築本身,所有住客共用。
下面要說的是:什麼是工作階段、回到工作階段的三種方式、為什麼對話需要名字,以及為什麼新任務最好開新對話,而不是接著舊的往下講。
什麼是工作階段
工作階段是和代理之間已儲存的對話,綁定在專案資料夾上。您工作的同時它就持續寫進磁碟:不需要像文字編輯器那樣特地存檔。
工作階段裡存的不只是對話內容。除了您的訊息和代理的回覆,裡面還有工具呼叫和它們的結果:它開過哪些檔案、執行的指令回傳了什麼、套用了哪些修改。所以回到舊對話時,您拿到的不是摘要,而是整個過程。
接下來有兩點說明,能解開一半的困惑。
一段對話的內容不會搬到另一段裡。一個月前在別的工作階段討論過什麼,這一段裡就是沒有,就算專案完全一樣。每個工作階段只認得自己的歷史。
工作階段不是另一個存放程式碼的地方。專案檔案本來就獨立存在磁碟上。一個專案可以同時對應十幾個工作階段,而它們用的是同一份程式碼 - 也就是資料夾裡現在的內容。
這張圖把兩個重點一次呈現:資料夾只有一個,裡面有好幾個工作階段,各自保留自己的歷史,下方的檔案是共用的。在同一個專案上開第二個工作階段,不是複製程式碼,只是多開一段關於它的對話。
如何回到工作
入口有三個,選哪一個要看您記不記得自己要找的是哪一段對話。
| 入口 | 做什麼 |
|---|---|
claude --continue | 不問任何問題,直接繼續這個資料夾裡最新的對話 |
claude --resume | 打開過去對話的清單,讓您自己挑 |
/resume | 同一份清單,但是從已經開啟的工作階段裡叫出來 |
表格裡有一點很容易忽略:上面兩列都是以 claude 開頭,最下面那列則以斜線開頭。這個差異不是排版問題。上面兩個是在代理還沒出現在畫面上的時候於終端機輸入的,旗標本身就是啟動指令的一部分。也就是說,您用一個動作同時啟動了代理,也告訴它該打開哪段對話:
claude # 從空白開始
claude --continue # 直接啟動到昨天的對話
claude --resume # 啟動後從清單裡選一段對話/resume 反過來,是從裡面操作的:代理已經開著,您在它的輸入欄打字,切換到另一段對話,不用回到終端機。
實際差別很簡單。claude --continue 的意思是"我昨天在這裡工作過,想接著做":代理會不動聲色地打開目前資料夾裡最後一段對話。claude --resume 的意思則是"有好幾段,讓我選"。

清單裡每段對話佔一行:名字(如果您設定過的話)或自動產生的標題、距離上次活動過了多久、分支和大小。行數多的話,直接打字就能搜尋,也可以把清單擴大到目前資料夾以外:Ctrl+A 會顯示這台機器上所有專案的對話。
清單預設是綁定資料夾的。如果 claude --resume 是從家目錄啟動的,請切換到專案資料夾再試一次。想知道對話存放在哪裡,可以用 Ctrl+A:它會顯示所有資料夾的對話,但沒辦法直接從清單裡打開別的專案的對話 - Claude Code 會把切換到那個資料夾並啟動的指令複製到剪貼簿,您需要自己貼到終端機裡執行。如果還是不行,檢查一下 Claude Code 是不是用和之前相同的設定檔啟動的,以及對話有沒有超過保留期限。一旦被自動刪除,就沒辦法再透過 /resume 找回來了。
對話裡的一切都會跟著回來:完整的歷史記錄,包括工具呼叫和它們的結果。只要模型仍然可用、設定也沒變,通常連使用的模型都會保持不變。您可以正好從停下的地方繼續。
為什麼對話需要名字
只有一段對話的時候不需要名字。一旦變成三段,清單就成了一道謎題:兩段開頭一樣,第三段完全看不出來是在講什麼。
設定名字有兩種辦法:
claude -n feedback-form # 啟動時設定
/rename feedback-form # 在已經開啟的工作階段裡設定如果沒有設定名字,Claude Code 會根據您的第一則訊息自己想一個簡短的標題。它一樣能當作辨識的依據:靠它就能在清單裡認出並打開這段對話。只是自己取的名字更準確 - 自動標題描述的是第一句話,不是整個任務。
老實說,對話一開始很少有人會想名字:您還不知道它會變成什麼樣。半數的工作階段一開始只是"看一行程式碼",其中有些卻意外變成半天的工作。
所以更簡單的做法是這樣。短暫的操作就別管它,自動標題就夠用。發現要耗上一陣子了,就用 /rename 補上名字。做完了,就用帶名字的 /clear:任務已經結束,該叫什麼也不再是問題。
新任務用新對話
工作過程中要一直問自己的問題只有一個:這還是同一個任務嗎?還是的話就繼續。變了就開一張空白的。聽起來像是形式主義,但實際上對話最常在這裡變成一團亂。
誘惑很好理解:代理已經熟悉這個專案了,何必重新開始。但一段塞進三個任務的對話,行為是可以預料的:
- 它把上一個任務的決定拖進新任務裡。一小時前講好用某種做法,現在改做別的了 - 它卻還記得第一個約定,一直往回繞;
- 已經否決過的想法又冒出來。您在另一個任務裡否決過,但對它來說這是同一條時間線;
- 它會順手改動屬於上一個任務的東西。您問的是表單,卻多得到一份付款相關的修改;
- 修改混在一起。同一段對話裡有兩個主題的修改,之後很難分清楚哪個屬於哪個;
- 在清單裡找不到這段對話。它什麼都講了一點,也就等於什麼都沒講。
由此得出一條簡單的規則:一段對話能撐多久,就看它對一個任務有多大幫助。任務結束,它也跟著結束。工作階段在這裡是消耗品,不是要好好保存的東西。
開一張空白的有兩種辦法,兩者的差異比看起來的要小。
| 動作 | 對話會怎樣 | 專案檔案會怎樣 | 什麼時候選它 |
|---|---|---|---|
/clear | 從空白開始,前一段仍然保留 | 不會動 | 任務變了,但您還在原地 |
| 新工作階段 | 為另一份工作開一段獨立的對話 | 不會動 | 不同專案、不同資料夾、不同的一天 |
接著談談 /clear,因為大家最常在這裡緊張。這個指令看起來像刪除,行為卻像切換:它不會抹掉對話,而是把它放到一邊,打開一段空的。被放到一邊的對話仍然留在清單裡,用 /resume 打開時,就是您丟下時的樣子。
它有一個非必要的參數 - 名字。/clear feedback-form 會替即將離開的對話在清單裡標上名字,方便您以後認出它。花一秒鐘的功夫,之後找起來輕鬆得多。
但也有反過來的情況。如果對話已經有名字了 - 不管是啟動時用 -n,還是後來用 /rename - 光用 /clear 會把這個名字交給新對話,結果下一個任務就頂著上一個的名字。加上參數的話,名字留在舊對話上,新對話則不帶名字啟動。
看上面那一列。這次啟動裡,指令前後都只有一段活躍對話。/clear 不會在第一段旁邊再開一段:它把活躍對話換成空白的,並把舊的移到下面的清單裡。要再回到那段對話,只能透過 /resume 主動操作。
新工作階段和 /clear 的不同之處在於,它通常也代表另一份工作:不同專案、不同資料夾、不同的一天。/clear 不會讓您離開目前的目錄或目前的啟動,它只是在您所在的地方打開一段空白對話。
另外還有 /compact。這個指令不是關於切換任務,而是關於對話的長度:它把已經說過的內容摺成摘要,讓您留在同一個工作階段裡。這個話題更適合和上下文視窗如何運作、耗盡時會發生什麼一起講,那是另一個獨立的主題。
這一切放在哪裡、保存多久
對話存在您自己的磁碟上,放在 Claude Code 的資料資料夾裡:
~/.claude-codegym/projects/~ 這個符號代表使用者的家目錄。在 Windows 上對應的是 %USERPROFILE%,所以學習用的路徑會是 %USERPROFILE%\.claude-codegym\projects\。
.claude-codegym 是課程用的設定檔。如果 Claude Code 不是用它啟動的,標準路徑則是 ~/.claude/projects/。裡面每個專案各有一個子資料夾,子資料夾裡每段對話各有一個主檔案。
逐字稿在磁碟上是以純文字儲存的。裡面會記下讀過的檔案內容、執行過的指令輸出,以及您貼進聊天裡的文字。只要有權限存取您作業系統帳號檔案的程序和使用者,都能讀到這份檔案。
本機檔案只是故事的一部分:為了讓模型回應,Claude Code 會把請求和需要的上下文透過網路傳給您選用的服務商。伺服器端的保存規則要看帳號和設定而定。所以不要把密碼和金鑰貼進對話,也不要在非必要的情況下請代理讀取像 .env 這樣藏有密碼的檔案。
對話不會永遠留著:大約一個月後,舊的會自動清除,連同它們對應的回復點一起,保存期限也可以視需要調整。所以工作階段適合拿來做眼前的任務,不適合當成專案的長期歷史記錄。至於怎麼長期保存歷史,是另一個很大的主題。
這對工作有什麼影響
幾個明天就用得上的結論:
- 工作階段是一個任務的容器,不是和代理一輩子的通信。您越把它維持在這個範圍內,它出錯的機會就越少;
- 對話會自己儲存,不需要特地存檔。晚上關掉終端機不會有任何損失;
- 工作階段按資料夾分類。從專案資料夾啟動代理,它的對話就在手邊;如果清單是空的,檢查一下資料夾:
Ctrl+A會顯示所有專案的對話,告訴您該去哪裡; - 回到舊對話時,連同它的整個脈絡都會一起回來,包括走過的死路和放棄的想法。有時候重新開始比重新喚醒一段三小時的討論還快;
- 一個資料夾裡有十幾個工作階段,是正常的工作狀態,不是亂七八糟的跡象。
用一個習慣取代兩個:不要在開始時想名字,而是在結束時替對話標上名字。用帶名字的 /clear feedback-form 取代光禿禿的 /clear - 一樣是兩秒鐘的功夫,只是挑在名字已經很明顯的那一刻做。一個月後,清單依然清楚易讀,不必再去翻找。
工作階段檔案存放的位置、清單顯示的內容和保存期限,會隨 Claude Code 的版本和設定而不同,所以您看到的可能和這裡描述的不完全一樣。
GO TO FULL VERSION