dsh-work-log:把每輪 DSH 對話整理成可複用的 JSON 工作記錄

前言

在 DeepSeek Harness(DSH)裏和模型協作時,真正有價值的往往不是整段聊天原文,而是「這輪用戶要什麼、我們改了什麼、最後交付了什麼」。把歷史對話整包塞進下一次提示,噪聲大、token 也多;只憑記憶又容易漏掉路徑和動作。

下面介紹的 dsh-work-log 是社區插件(維護者 Eule-Lawrence,分類:記憶),在每輪對話正常結束時自動彙總一輪素材,寫成敘述式記錄,並按工作區與對話分文件存成 JSON,方便你或其他 AI 直接當上下文用。它不是聊天記錄備份,而是面向後續推理的工作素材。

這是什麼

dsh-work-log 監聽 DSH 的輪次結束事件,收集該輪的用戶消息、助手回覆和工具調用清單,再調用當前默認模型生成一段約 120~220 字、第一人稱複數的敘述;若模型不可用,則退回原文摘要,避免丟記錄。產物落在可配置的根目錄下,結構爲 根目錄 / 工作區目錄名 / 對話標題.json。

插件當前版本爲 0.2.0(見倉庫 package.json),許可證 MIT。社區目錄頁:SkillHub - dsh-work-log;源碼:GitHub - Eule-Lawrence/dsh-work-log。

工作原理

一輪對話在 turn/end 且 reason: completed 時觸發流程:

  1. 收集這一輪的用戶消息、助手回覆與工具調用清單。
  2. 約束模型只描述「動作清單」裏出現過的操作,降低胡編概率。
  3. 將記錄追加進 <root>/<工作區>/<對話標題>.json。

同一標題若屬於不同會話,文件名會帶 -<短id> 後綴,避免覆蓋;對話標題後生成時,文件會改名跟隨。

子代理會話(origin: subagent)不記錄;中途被打斷、未 completed 的輪次也不記錄。

核心功能

  • 按工作區與對話分文件:工作區名來自會話 cwd 的目錄名,一個對話對應一個 JSON 文件。
  • 敘述式 content + 可選 actions:除文字摘要外,可附帶本輪實際工具調用列表,便於覈對「真的做過什麼」。
  • 可關閉模型摘要:配置 summarize: false 時只記原文摘要,省掉每輪約 4k 字符輸入的一次小模型調用。
  • 總開關:enabled: false 時不再寫入新記錄,已有文件保留。

安裝與啓用

在你的 profile 目錄安裝。DSH 桌面版可用 GUI 裏的插件管理,或 plugin_manager 工具。README 給出的命令形式如下(<本倉庫路徑或包名> 以你實際使用的來源爲準,不要憑插件名自行拼接未文檔化的包名):

dsh plugin --profile <你的profile> add <本倉庫路徑或包名>

裝好後插件會進入 dsh.profile.bundles,重啓 DSH 後生效。

安裝前建議自行瀏覽倉庫源碼與 MIT 許可證;插件在 當前 DSH 進程權限 下運行,並能讀取對話內容與調用模型寫摘要,請只在可信環境啓用。

配置

三處可改,優先級從高到低:

位置 說明
界面「插件 → 工作記錄」 改根目錄等,保存後寫入 $DSH_HOME/work-log/config.json
插件內 cordis.patch.yml 的 config 默認值
環境變量 DSH_HOME 決定上述 config.json 的路徑

字段含義(默認值以 README 爲準):

字段 默認 含義
root E:\DSH-WorkLogs 日誌根目錄
enabled true 關閉後不再寫新記錄
summarize true 關閉則記原文摘要,不額外調模型

文件結構與記錄格式

磁盤佈局:

<root>/
└── <工作區目錄名>/
    └── <對話標題>.json

單文件示例(字段含義見 README):

{
  "generator": "dsh-work-log",
  "workspace": "deepseek harness",
  "cwd": "E:\\deepseek harness",
  "conversation": "DSH插件更新報錯排查",
  "sessionId": "session-...",
  "createdAt": "2026-11-06 19:32:22",
  "updatedAt": "2026-11-06 20:05:10",
  "records": [
    {
      "index": 1,
      "time": "2026-11-06 19:32:22",
      "turn": 14,
      "content": "你讓我把工作日誌插件的行爲和配置方式摸清楚……",
      "actions": ["write E:\\deepseek harness\\dsh-plugins\\work-log\\index.js", "pwsh node --check"]
    }
  ]
}

records 中:index 爲對話內自增序號;turn 爲 DSH 輪次號;content 供下游模型閱讀;actions 爲可選,舊記錄可能沒有該字段。

典型用法

  1. 安裝並重啓 DSH,在「插件 → 工作記錄」把 root 指到你希望存放 JSON 的目錄(例如與項目同盤的路徑,便於備份)。
  2. 正常在多輪對話裏改代碼、跑命令;每輪 正常結束 後檢查對應工作區下的 JSON 是否追加了一條 records。
  3. 新開對話或交給其他 Agent 時,讀取相關 JSON 中的 records[].content(必要時連同 actions),作爲「已做過什麼」的上下文,而不必粘貼完整聊天。
  4. 若在意每輪多一次模型調用,將 summarize 設爲 false;若暫時不需要寫入,將 enabled 設爲 false。

適用場景與注意

更適合:長期在同一工作區迭代、需要把「動作級」歷史傳給下一個會話或外部 AI 的 DSH 用戶;與 DSH「一切皆插件」的生態思路一致,社區目錄 SkillHub 爲獨立站點,並非 DeepSeek / 幻方官方應用商店。

需要留意:

  • 摘要質量取決於當前默認模型;關掉 summarize 則內容更接近原文摘抄。
  • 不記錄子代理刷屏會話,也不記錄未完成輪次,不能替代完整的審計日誌。
  • 配置默認根目錄示例爲 Windows 路徑 E:\DSH-WorkLogs,在 Linux 上應在界面或配置中改爲本機路徑。

結尾

dsh-work-log 把每輪協作壓成一條條可讀的 JSON 記錄,按工作區與對話歸檔,方便後續 AI 直接引用「要求—動作—結果」鏈。若要安裝或查看說明,可從 SkillHub 目錄頁 進入,完整行爲與限制以 GitHub 倉庫 README 爲準。

羽毛球分组比赛记分
小程序二维码

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

小夜