執行期

對話狀態

讓對話能在各輪次之間連貫進行的持久性與暫態記錄。

概念專屬圖版對話狀態hx-graph-context-concept-session-state正在載入視覺預覽…
以原始尺寸檢視

對話狀態

這是什麼

讓工作階段能跨對話輪次或程序重啟後連貫延續的持久與暫態記錄。

白話解釋

在一本厚小說中夾入書籤,讓你可以放下書本數週後再拿起來,從離開的那一頁和那一句繼續讀,而不需要重讀之前的所有章節。對話狀態就是 Hermes 版本的書籤:記錄說過的話和做過的決定,準備好讓對話隨時可以繼續。

為什麼重要

對話能從中斷處繼續,是因為 turn_finalizer 在每一輪結束後寫入持久與暫態記錄,而對話輪次上下文會在下一輪開始時把它們讀回。少了這個機制,每則訊息都必須重新建立上下文,工作階段也就失去相較於無狀態 API 呼叫的意義。上下文壓縮決定這些狀態有多少能長期保留,對話搜尋則讓使用者日後重新找回其中內容。

運作方式

每一輪結束後,run_agent.py_persist_session 會把訊息歷史寫入 SQLite 資料庫 state.db,這是 Hermes 的正式記錄;也可選擇為外部工具啟用每個工作階段一份 JSON 快照,但 Hermes 實際讀取的仍是資料庫。已寫入的訊息會加上標記以避免重複,因此不同結束路徑再次觸發保存時,不會產生重複資料列。下一輪開始時,agent/turn_context.pybuild_turn_context 會還原系統提示,並在模型看到新訊息前,把先前交流重新接回對話。之後使用者還可透過 tools/session_search_tool.py 的專用搜尋工具直接查詢保存的歷史,不受目前即時對話仍保留多少內容影響。

具體範例

使用者星期一下午與 Hermes 在 session-42 處理一項多步驟專案,之後直接關閉終端,沒有正式結束工作階段。星期三早上以相同工作階段 ID 重新開啟時,state.db 內星期一的歷史與系統提示會完整還原,對話能從原處繼續,不必重新說明專案。一週後若忘了某支腳本所在檔案,還可用對話搜尋找回當時提到路徑的確切訊息。

如何連結

「對話狀態」屬於「執行期」系列。最直接相關的概念包括:「上下文壓縮」、「代理執行環境」、「個人作業系統」。這些連結描述教學關係,不取代來源證據。

來源證據

  • agent/turn_finalizer.py#<file> — 結構性來源;只確認來源檔關聯,不單獨證明特定呼叫順序。

工作流程

  • 目前尚無第一輪工作流程對應;此概念仍透過文章與來源證據出現在知識庫圖譜中。

相關文章

相關筆記