五會話自進化:用 DSH 把項目經驗寫進持久記憶

前言

在 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 校驗與來源檢查
  → 項目經驗 + 工作流候選 + 復盤記錄
  → 後續會話自動獲得項目經驗

要點如下:

  1. 默認每 5 個不同的根會話組成一批,可在配置中改爲 2–20 個。
  2. 同一會話 ID 只計一次;恢復後再次關閉,計數保持原值。
  3. 子 Agent、插件自身復盤會話,以及標記爲 automation / subagent / goal 的自動會話跳過。
  4. 每條經驗和每個工作流候選必須引用本批至少兩個不同的會話 ID;插件校驗來源 ID 和結果結構,事實是否正確仍需結合當前項目覈對。
  5. 有新證據時,同名主題經驗與同名候選更新;默認保留最近 30 條經驗、20 個候選和 100 次復盤記錄。
  6. 待處理批次跨重啓保留。失敗按 60 秒、120 秒退避,默認第 3 次失敗後暫停該項目的隊首批次,等待手動重試。
  7. 同一 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_evolution domain、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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜