前言¶
在 DeepSeek Harness(DSH)里長期改同一倉庫時,常見做法是每次新開會話靠人工回憶上下文,或把要點寫進 README、技能文件。前者容易漏掉調試路徑和反覆出現的坑,後者需要主動維護,且很難自動關聯「哪幾次會話裏出現過這條結論」。
五會話自進化(dsh-five-session-evolution)是維護者 liuhuishang 發佈的 DSH 記憶類插件:每累計五個不同的項目根會話真正結束,觸發一次獨立復盤,把有來源引用的項目經驗和工作流候選寫入 DSH 持久存儲,並在後續根會話中按需注入。學習結果按工作目錄隔離,使用當前 DSH 默認模型,無需另配第三方記憶服務賬戶。
這是什麼¶
插件全稱:五會話自進化 · Five-session Evolution。一句話定位:Evidence-backed project memory and reusable workflow drafts for DeepSeek Harness——每五次項目會話結束自動復盤,積累可追溯經驗與工作流候選。
- 維護者:liuhuishang
- 分類:記憶
- 許可證:MIT(見 GitHub 倉庫)
- 初版面向:DSH 0.2.1-rc.5、Node.js 22+
- 社區目錄頁:SkillHub 插件頁
- 源碼與說明:GitHub 倉庫
DSH 生態採用「一切皆插件」思路;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。安裝前請自行查看源碼與許可證,插件以當前 DSH 進程權限運行。
工作方式¶
下面介紹插件在運行層如何串聯計數、隊列與復盤。
同一項目的 5 個不同會話結束
→ 持久隊列
→ 獨立、無工具的復盤 Agent
→ JSON 校驗與來源檢查
→ 項目經驗 + 工作流候選 + 復盤記錄
→ 後續會話自動獲得項目經驗
要點如下:
- 默認每 5 個不同的根會話組成一批,可在配置中改爲 2–20 個。
- 同一會話 ID 只計一次;恢復後再次關閉,計數保持原值。
- 子 Agent、插件自身復盤會話,以及標記爲 automation / subagent / goal 的自動會話跳過。
- 每條經驗和每個工作流候選必須引用本批至少兩個不同的會話 ID;插件校驗來源 ID 和結果結構,事實是否正確仍需結合當前項目覈對。
- 有新證據時,同名主題經驗與同名候選更新;默認保留最近 30 條經驗、20 個候選和 100 次復盤記錄。
- 待處理批次跨重啓保留。失敗按 60 秒、120 秒退避,默認第 3 次失敗後暫停該項目的隊首批次,等待手動重試。
- 同一 DSH Host 內復盤按順序執行;成功結果與批次出隊在同一持久記錄中提交,避免重複應用學習結果。
工作流候選以草稿記錄保存,安裝和執行由用戶決定;項目源代碼、既有技能和宿主提示詞仍由原有流程管理。模型權重不會被本插件修改。
什麼算一次「會話結束」¶
本插件訂閱 DSH 根 Agent 的 agent/disposed 生命週期。關閉、切換或清空會話是否計入,取決於當前客戶端是否真正銷燬該 Agent。
- 一條回答結束、一個 turn 結束、界面暫時閒置,都不等於一次會話結束。
- 會話需包含非空用戶文本,並至少出現過一次
turn/end;失敗或中斷過的會話也可進入復盤。新建空白會話跳過。 - 計數從啓用插件後實際觀察到的結束事件開始;去重依據是項目目錄和會話 ID。移動項目目錄會形成新的記憶分區。
- 進程被強制終止時,尚未來得及持久化的結束事件可能丟失;推薦讓 DSH 正常結束會話。
安裝與啓用¶
依賴 DSH 的 Agent、模型、預設、工具和 storageDomain 服務。插件包自帶組合補丁,啓用後掛載一個 Host 插件行。
從安裝包 URL 安裝¶
在 DSH 插件管理中使用「從包 / URL 安裝」,填寫 v0.1.0 安裝包 URL:
https://github.com/liuhuishang/dsh-five-session-evolution/releases/download/v0.1.0/dsh-five-session-evolution-0.1.0.tgz
Release 頁:v0.1.0
通過 Discover 索引發現¶
支持自定義 Discover 源的客戶端,可在插件管理 → 發現 / Discover → 添加索引源中填入:
https://raw.githubusercontent.com/liuhuishang/dsh-five-session-evolution/main/market-index.json
刷新後搜索 五會話自進化 或 Five-session Evolution。請以客戶端支持的安裝來源爲準。
經過上面的步驟,安裝後檢查 five-session-evolution 插件行已啓用,並用下文狀態工具確認加載。
配置¶
在已安裝插件行的 config 中調整,例如:
batchSize: 5
injectMemory: true
timeoutMs: 300000
maxSessionChars: 12000
maxMemories: 30
maxCandidates: 20
maxAttempts: 3
provider: ''
model: ''
| 字段 | 默認值 | 含義 |
|---|---|---|
batchSize |
5 | 每批會話數,2–20;建議在批次處理完後調整 |
injectMemory |
true | 向根會話動態帶入該項目的經驗,最多約 10,000 個 JSON 字符 |
timeoutMs |
300000 | 單次復盤截止時間,10 秒至 30 分鐘 |
maxSessionChars |
12000 | 每個會話保留的末尾對話文本字符數,1,000–40,000 |
maxMemories |
30 | 經驗數量上限,1–100 |
maxCandidates |
20 | 候選數量上限,1–100 |
maxAttempts |
3 | 自動嘗試次數,1–10 |
provider / model |
空 | 兩者都空則跟隨當前 DSH 默認模型;固定模型時兩者一起填寫 |
切換配置保留已入隊批次的原始成員。單項目最多保留 100,000 個已計數會話的哈希和 100 個待復盤批次;達到容量時停止新批次准入並記錄警告。
典型用法:查看進度與重試¶
插件註冊兩個工具,可直接對 DSH 說明意圖,例如:
- 調用
evolution_status,顯示這個項目的自進化進度和經驗。 - 調用
evolution_retry,重試這個項目最早的失敗批次。
evolution_status 返回計數、待滿批數量、隊列、經驗、工作流候選、復盤摘要和最近錯誤,省略保留的對話正文。evolution_retry 重置隊首批次的嘗試次數並排隊,運行時會消耗所選模型的 tokens。
經驗通過動態系統提示段提供給後續根會話,並保留來源 ID,屬於可覈查、可能過時的參考資料。工作流候選可通過狀態工具讀取,再按項目的技能開發流程評估和安裝。
數據、費用與注意¶
- 持久記錄位於 DSH storageDomain 的
five_session_evolutiondomain、workspaces表中,物理位置由宿主存儲配置決定。 - 插件會保留每個待處理會話的用戶/助手文本摘錄(原始工具輸出、隱藏推理和圖片跳過);對話裏的個人資料仍可能出現在摘錄中。提交前對常見令牌、Authorization、密碼字段和私鑰格式做盡力脫敏,格式之外的敏感文本仍可能保留。
- 復盤會把本批摘錄和已有經驗發送到所選 DSH 模型提供方,併產生模型費用;通常是一次模型輪次。成功提交後,本插件記錄會移除該批摘錄。
- 適用於一個寫入 Host 管理同一存儲;多個進程併發寫同一後端尚未驗證。卸載會停止後臺任務並釋放 domain,持久數據由宿主存儲管理。
適用場景¶
適合長期維護代碼、反覆調試、文檔生產和其他有重複流程的項目——需要「隔幾次會話自動歸納」,又不想單獨搭記憶 SaaS 的場景。
若你更關心單次會話內的上下文窗口,本插件解決的是跨會話、有來源的項目級記憶與工作流草稿,二者可並存,但不要期待它替代版本控制或人工 code review。
結尾¶
五會話自進化把「五個根會話結束 → 結構化復盤 → 注入後續會話」做成 DSH 插件內的閉環,經驗與工作流候選都綁會話 ID,便於回溯和更新。
- 目錄頁:https://www.skillhub.cn/plugins/liuhuishang/dsh-five-session-evolution
- GitHub:https://github.com/liuhuishang/dsh-five-session-evolution