Assembled Context:DeepSeek Harness 組裝式上下文插件

前言

DeepSeek Harness (DSH) 在處理長任務時,通常只提供兩種上下文狀態:保留全部內容,或者由 dsh-compaction-basic 壓縮成一個不可見的摘要。在大規模任務中,這會導致垃圾數據(如 4k token 的 grep 堆棧、已解決的子任務)長期佔用窗口,直到觸發閾值進行無法檢查或撤銷的壓縮。

catsenior507/dsh-context-assembler 將上下文從單純的“長度”轉變爲“一組決策”。它基於會話日誌構建可檢查的上下文樹,允許你通過瀏覽器面板控制模型實際接收的內容,同時保持未修改節點的 KV 緩存兼容性。

核心功能

該插件在 DSH 會話表面(Session Surface)之上建立了一個上下文樹。其核心操作是將 N 個連續的事件節點替換爲 1 個節點,從而改變模型接收到的內容。

節點模式
每個節點支持三種模式,通過三態開關切換:
* full:原樣保留內容,不做替換。
* key:保留關鍵信息,內容會被替換爲摘要。
* off:丟棄內容,僅保留極短的標記(可配置爲 0 tokens)。

主要能力
* 上下文樹:基於會話日誌生成,支持按層級查看(turn -> step -> system/user/assistant/tool)。
* 瀏覽器面板:提供可視化編輯、實時預覽/應用、統計信息(可見/摺疊/原始 token 數)。
* 代理工具:註冊了 context_assembler 工具,支持 tree、set、preset、messages 四個操作。
* KV 緩存兼容:因爲只替換被摺疊的節點,未修改的節點位置保持不變,可被 Provider 複用 KV 緩存。

安裝與啓用

使用官方安裝命令添加插件:

dsh plugin --profile web add https://github.com/catsenior507/dsh-context-assembler

安裝後需重啓 dsh web 進程以加載插件。dsh-web-watchdog 面板通常提供快速重啓按鈕。

使用方式

瀏覽器面板操作

  1. 打開面板:在瀏覽器中按下快捷鍵 Ctrl+Shift+K,或者點擊界面右下角的 Assembled Context 按鈕。
  2. 會話選擇:默認顯示最近活躍的會話。子代理會話會單獨列出,因爲它們擁有獨立的表面。
  3. 編輯樹:
    • 在樹視圖中,每一行代表一個節點(turn、step、system、message 等)。
    • 點擊行首的三態開關切換 full / key / off。
    • 頂部工具欄提供快捷操作,例如“工具結果設爲 key”、“關閉所有內容”或“展開所有”。
  4. 應用更改:調整完成後,點擊底部的 Apply 按鈕。只有點擊 Apply 後,更改纔會寫入會話日誌,否則僅保存在瀏覽器內存中。

代理工具

該插件向模型註冊了 context_assembler 工具,支持以下動作:

  • tree:讀取當前上下文樹的結構,包括 surfaceSeq、節點類型、當前模式和估算 token 數。
  • set:通過 surfaceSeq 修改節點的模式。digest 由模型自行編寫,dryRun 可用於預覽效果。
  • preset:編寫規則預設,供用戶一鍵應用。
  • messages:查看模型當前實際接收到的消息及其 token 總數。

這讓代理可以在子任務完成後,主動將自己操作的歷史摺疊爲單行結論,而不是被動等待壓縮。

注意事項

  1. 實時派生:面板每次打開時都會從會話日誌重新派生樹,不依賴插件的持久狀態。這意味着恢復會話、切換進程或代理自行摺疊後,面板顯示與日誌是一致的。
  2. 原子性要求:工具調用(tool-call)與其結果必須保持原子性(完整組)。插件會自動擴展摺疊範圍以覆蓋整個工具組。
  3. 摺疊恢復限制:目前的表面替換僅支持 N→1。多節點摺疊(N>1)無法完美恢復。插件明確說明:單節點摺疊可原樣恢復,多節點摺疊會恢復爲帶有分隔符的完整重放消息。
  4. 配置細節:配置文件中包含 loopback API 端口設置(如 port: 4799),用於在無 webServer 環境下的通信。

總結

Assembled Context 將 DSH 的上下文控制權交還給了用戶和代理。通過瀏覽器面板和代理工具,你可以精細管理 Token 預算,避免無關歷史污染窗口,同時利用 KV 緩存優化性能。

項目地址

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

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

小夜