Claude Code系列文4:Claude Code管理對話(Session)

目錄

對話(session)是資產,不是用完即丟的東西

這篇文章重點

  • Session是資產:Claude Code的session會累積上下文理解
  • 取回既有Session:兩個回復Session指令
  • 在重要節點使用Fork:保留已建立的重要Session
  • 一個任務一個Session:保持上下文乾淨、減少token消耗

為何Session如此重要

Claude Code累積的對話,讓AI透過既有專案內容,寫出符合專案使用的程式碼。

想像一下這個場景:你花了20分鐘讓Claude理解你的專案架構、API設計邏輯、此次新增的需求,Claude Code讀取了數十個檔案,建立了整個系統的理解,然後你的電腦當機重開。

傳統做法是重開一個session,然後重新花20分鐘解釋一遍。

每一次Claude Code累積的上下文理解,都是有價值的。

一個有價值的session包含:

  • 專案理解:Claude Code讀取過的檔案,對系統的理解與認知
  • 決策脈絡:為什麼選擇方案A而不是方案B的推理過程
  • 工作進度:已完成的修改、待處理的項目、剩餘的問題
  • 除錯歷史:試過哪些方法、最後怎麼解決的

session一但丟失,重建的成本不只是時間,還有Token。每次從頭開始,Claude Code都要重新讀取檔案、重新分析架構,消耗的這些Token都是真金白銀。

所以學會管理session,是提升Claude Code使用效率的第一步。

在Claude Code取回Session

claude –resume

在開啟Claude Code時,加上–resume這段指令,會打開一個互動式的對話選擇器,顯示你過去的session清單。每一個session都有清楚的摘要資訊:

  • Session摘要:這次對話最初的提示詞
  • 時間:距離上次互動過了多久
  • Git分支:這個Session在哪個branch上工作

或者進入Claude Code輸入指令:

/resume

選定後按下Enter即可回復到指定的Session。

claude –continue

又或者是使用–continue,直接回復到最新的一個Session。

在對話的重要決策點使用fork

Claude Code的開發過程中,當任務內容較為複雜的時候,AI執行任務的品質會降低。為了改善這種狀況,很有效果的做法是將任務拆分成更多小任務。這時候非常適合使用fork,即:

/fork

他的效果是從現在session的對話點,保留當前的對話狀態,並切出新的session,就點像是git的branch。

什麼樣的應用場景需要用到呢?

舉例來說,如果你已經花了20分鐘,讓Claude Code順利了解整個專案與需求,你知道接下來會做一些重大架構調整,或者是探索不同方向,但又不想破壞目前的Session,這時候就非常適合使用。

嘗試不同實作方案

例如你在設計某個功能:

  • 方案A:用queue
  • 方案B:用cron
  • 方案C:用even-driven

在session內利用fork會像是這樣:

  • fork A: 設計queue完成XX功能
  • fork B: 設計cron完成XX功能
  • fork C: 設計event-driven完成XX功能

保留前面辛苦整理好的session,然後透過fork嘗試不同對話去設計新功能。

大型refactor

大型改動的場景也非常適合,因為會有一定的機率失敗,遇到最糟糕的情況可能會是,一開始的方向錯誤,導致後續AI的改動不斷在修復自己的錯誤,無法跳脫。

這時非常適合透過fork切出關鍵改動的時機點,並且保留原本的對話資產,改錯了所以可以從原本的對話開始,不需要全部重頭來。

提示詞試驗

又或者是想要去比較不同提示詞AI給出的內容差異,同樣也適用fork,保留當下的對話上下文。

一個任務一個Session

為了讓Claude Code在產出內容時,不要有太多的雜訊干擾,建議一個任務一個session,讓上下文保持乾淨,減少token使用數量。

可以使用指令:

/clear

來做到開啟新的session。

使用場景通常是在即將開啟全新任務之前,你已經知道接下來要做的事情與先前的對話內容無關。

發佈留言