前言¶
在 DeepSeek Harness 的長會話中,歷史消息會不斷累積。模型在處理新請求時,會重新發送大量已完成的調試日誌和廢棄嘗試,導致上下文窗口快速填滿、推理成本上升,甚至讓模型在舊信息中分心。
dsh-taskfold 解決這個問題。它通過顯式地將工作流包裹在命名的任務中,並在任務完成後將整個跨度摺疊爲簡短的標題摘要,從而保持對話的可讀性和低成本。原始內容被完整保存,隨時可被檢索。
插件定位¶
- 名稱:
dsh-taskfold - 類別: 記憶
- 維護者: yindf
- 許可證: MIT
核心功能¶
該插件提供以下能力:
- 命名任務包裹: 將一段工作流包裹在
task_begin和task_end之間,明確界定工作範圍。 - 摺疊摘要: 任務結束後,將整個對話歷史摺疊爲一個帶標題的短摘要,保持會話整潔。
- 按需檢索: 通過
fold_recall命令可以隨時讀取摺疊前的原始內容,實現“先摺疊,後查看”。 - 持久化存儲: 每次摺疊都會將原始消息保存到文件中,不會丟失任何信息。
- 與內置壓縮互補: 它與 DSH 的內置壓縮機制可以共存,配合使用能進一步降低上下文壓力。
安裝與啓用¶
插件通過命令行安裝,適用於 desktop 和 web profile。
- 安裝插件:
執行以下命令,將插件添加到指定的 profile(默認爲desktop):
dsh plugin --profile desktop add dsh-taskfold
若需指定版本以避免安裝不可用的版本(如 0.37.7 或 0.38.0),可使用:
dsh plugin --profile desktop add dsh-taskfold@<version>
- 重啓進程:
插件組件僅在啓動時評估,因此安裝後必須重啓 dsh 才能生效。
# 安裝後重啓
restart dsh
使用方式¶
插件安裝並重啓後,智能體在編寫代碼時會自動或手動地使用以下命令結構來管理上下文:
task_begin("fix the login bug")
// ... 執行修復工作 ...
task_end("fix the login bug")
當任務完成時,該區間會被摺疊爲一個短標題摘要,保留關鍵決策和結果。若需要查看原始內容,可調用:
fold_recall({ fold: N })
注意事項¶
- 版本兼容性: 請勿安裝 0.37.7 或 0.38.0 版本,這些版本已被標記爲不可卸載且已棄用。
- 文件保存: 插件不會丟棄任何數據,所有摺疊的原始消息都會被保存到文件中。
- 啓動時機: 插件的組合配置僅在 dsh 啓動時加載,因此每次修改配置或安裝新插件後都需要重啓。
結語¶
dsh-taskfold 通過顯式的任務管理和摺疊機制,幫助開發者控制長會話的上下文成本。它將“教訓”從“冗長記錄”中分離出來,讓會話保持精簡,同時保留了隨時回溯原始細節的能力。