前言¶
在 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 時觸發流程:
- 收集這一輪的用戶消息、助手回覆與工具調用清單。
- 約束模型只描述「動作清單」裏出現過的操作,降低胡編概率。
- 將記錄追加進
<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 爲可選,舊記錄可能沒有該字段。
典型用法¶
- 安裝並重啓 DSH,在「插件 → 工作記錄」把
root指到你希望存放 JSON 的目錄(例如與項目同盤的路徑,便於備份)。 - 正常在多輪對話裏改代碼、跑命令;每輪 正常結束 後檢查對應工作區下的 JSON 是否追加了一條
records。 - 新開對話或交給其他 Agent 時,讀取相關 JSON 中的
records[].content(必要時連同actions),作爲「已做過什麼」的上下文,而不必粘貼完整聊天。 - 若在意每輪多一次模型調用,將
summarize設爲false;若暫時不需要寫入,將enabled設爲false。
適用場景與注意¶
更適合:長期在同一工作區迭代、需要把「動作級」歷史傳給下一個會話或外部 AI 的 DSH 用戶;與 DSH「一切皆插件」的生態思路一致,社區目錄 SkillHub 爲獨立站點,並非 DeepSeek / 幻方官方應用商店。
需要留意:
- 摘要質量取決於當前默認模型;關掉
summarize則內容更接近原文摘抄。 - 不記錄子代理刷屏會話,也不記錄未完成輪次,不能替代完整的審計日誌。
- 配置默認根目錄示例爲 Windows 路徑
E:\DSH-WorkLogs,在 Linux 上應在界面或配置中改爲本機路徑。
結尾¶
dsh-work-log 把每輪協作壓成一條條可讀的 JSON 記錄,按工作區與對話歸檔,方便後續 AI 直接引用「要求—動作—結果」鏈。若要安裝或查看說明,可從 SkillHub 目錄頁 進入,完整行爲與限制以 GitHub 倉庫 README 爲準。