dsh-clear-tool-results:DSH 宿主插件,用於工具結果准入過濾與歸檔

前言

在 DSH(DeepSeek Harness)的開發流程中,工具的執行結果直接進入模型上下文。當工具輸出極大(例如完整的 HTML 頁面、長日誌或代碼庫索引)時,會迅速撐滿上下文窗口,導致模型無法處理後續任務。

dsh-clear-tool-results 是一個 DSH 宿主插件,它位於 tools/post-execute waterfall 階段,在結果進入上下文前進行准入過濾。對於超過閾值的純文本結果,插件將其全文落盤到會話目錄,而模型只收到一份“收據”。收據包含有界預覽和絕對路徑,需要原文時可通過內置的 read 工具或插件提供的 read_tool_result_log 取回。

安裝與啓用

插件通過官方包名安裝,無需手動編輯配置。

dsh plugin --profile web add dsh-clear-tool-results

安裝或升級後,必須重啓 DSH GUI 進程,因爲進程內已 import 的模塊不會熱替換。

核心功能

准入過濾與落盤

插件在 tools/post-execute 階段(prepend: true)介入。它僅對純文本結果進行判斷:
* 閾值:UTF-8 字節超過 1024 字節。
* 落盤:全文寫入會話目錄的 tool-result-logs/results/ 子目錄。
* 收據:模型收到的內容爲收據(摘要 + 預覽 + 絕對路徑),收據長度恆短於原文,確保上下文不膨脹。
* 冪等:同一 callId 只落一份,重試不會重複歸檔。
* 失敗安全:落盤失敗時原樣放行,不將成功調用標記爲錯誤。

收據格式

模型看到的收據示例:

[bash · npm test · 84,231 字節 / 2,104 行 → 全文已落盤,此處是尾部 30 行]
路徑:/Users/…/sessions/…/tool-result-logs/results/t0001-s0003-01-bash-call_00_ab12.txt
取全文:read 該路徑(可用 offset/limit 分頁),或 grep 該路徑檢索。

檢索工具

插件註冊了 read_tool_result_log 工具,支持按輪次、步驟或時間讀取歸檔,也支持清單模式查看歷史記錄。

使用方式

命令控制

  • /clear-tool-results on:啓用過濾。
  • /clear-tool-results off:停用,工具結果原樣進入上下文。
  • /clear-tool-results status:顯示啓用狀態、准入閾值、豁免工具與插件版本。

狀態文件存於 $DSH_HOME/clear-tool-results.json。

工具調用

  • read_tool_result_log:無條件註冊,停用後仍可讀取歷史歸檔。
  • read:直接讀取收據中提供的絕對路徑。

適用場景與注意事項

適用場景

  • 處理大文件輸出(如網頁抓取、長日誌)。
  • 需要在上下文窗口有限的情況下,保留工具結果全文供後續檢索。

注意事項

  • ⚠️已廢棄:請關注插件倉庫的維護狀態。
  • 准入策略:只認純文本,結構化輸出(帶 value)、非文本內容、錯誤信息(isError)以及短文本(≤1024 字節)均原樣放行。
  • 依賴:依賴 DSH 內置的 tools/post-execute waterfall 機制。
  • 共存:可與內置的 spill-policy、compaction 等機制共存。

總結

dsh-clear-tool-results 通過在結果進入上下文前進行攔截和歸檔,解決了大文本輸出擠佔上下文的問題。它提供了清晰的收據機制和多種檢索方式,適合在需要處理大量工具輸出時的場景使用。目前該插件標記爲已廢棄,使用前請評估。

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

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

小夜