對話輪次上下文
這是什麼
每輪只組裝一次、包含指示、歷史、工具、記憶與防護規則的模型輸入快照。
白話解釋
攝影師在拍攝前會先整理一個背包,為特定工作準備合適鏡頭、備用電池與記憶卡;快門開始後,不會中途停下來找器材。Hermes 每輪開始時也會組裝一份相同用途的資料包:對話歷史、目前指示、擷取到的記憶,以及當下啟用的工具,都會在第一次模型呼叫前固定下來。
為什麼重要
build_turn_context 每輪只決定一次模型這次能看到什麼:對話歷史、目前系統提示、擷取到的記憶、已啟用工具及所有生效中的防護規則。工具集若在儀表板顯示「已安裝」,卻從未出現在模型可用選項中,通常是在這一步被篩掉,而不是工具執行層本身故障。這一輪後續所有步驟,包括工具執行,都沿用此函式產生的快照,不會各自重新推導上下文。
運作方式
agent/turn_context.py 的 build_turn_context 會在每輪最前端、任何模型呼叫之前執行一次。它只在快取系統提示不存在時還原或重建提示,先用低成本字元估算判斷是否值得執行完整 token 計算,超過設定門檻時才壓縮較舊對話歷史。它也會把新連線的 MCP 工具伺服器更新進本輪工具快照,並執行 pre_llm_call 外掛掛鉤,讓已安裝外掛注入額外上下文。最後,經清理的訊息、工作訊息清單、目前系統提示與新的 turn_id 會封裝成單一 TurnContext,供對話輪次循環的 run_conversation 在本輪其餘時間使用。
具體範例
Hermes 的某個工作階段已累積約 300 則訊息,快接近模型上下文上限。新訊息進來時,build_turn_context 在任何 API 呼叫前執行;低成本估算判定請求過大,於是壓縮較舊歷史、重建系統提示,並重用本輪已取得的記憶提供者 prefetch,不重複查詢。模型第一次呼叫便收到精簡且有利快取的上下文,不會到半途才發生長度錯誤。
如何連結
「對話輪次上下文」屬於「執行期」系列。最直接相關的概念包括:「對話輪次循環」、「對話循環」、「個人作業系統」。這些連結描述教學關係,不取代來源證據。
來源證據
agent/turn_context.py#agent.turn_context.build_turn_context— 已驗證的精確符號對應;此錨點已對照釘選 commit。
工作流程
- 目前尚無第一輪工作流程對應;此概念仍透過文章與來源證據出現在知識庫圖譜中。
