dsh-not-token-killer:一個不真正執行任務的模擬插件

前言

開發 DeepSeek Harness 插件時,排查會話事件、交付卡片、profile 配置的時間往往比寫插件本身還多。想快速演示一遍「任務被接受 → 軌跡展示 → 回合尾部出現交付物 → 產物被清理」的鏈路,又不想真的等模型跑完、不想真的寫文件,阿里斯托 Suki 的社區插件 dsh-not-token-killer 做的就是這件事。

下面介紹的是一個模擬執行 / 趣味演示插件,GitHub 倉庫與插件包名均爲 dsh-not-token-killer,由社區用戶 ArchettoSuki 維護,MIT 許可,在社區目錄中被歸入「工作流」分類,發佈在 https://www.skillhub.cn/plugins/ArchettoSuki/dsh-not-token-killer 。它不是官方插件,也不承諾任何真實產出:生成的是 SIMULATED 軌跡和 0 字節佔位文件,適合用來演示插件生命週期或爲截圖、錄屏構造場景,不適合需要真實結果的工作。倉庫首頁的 WARNING 已經寫明這一點。

是什麼樣的插件

插件顯示名稱 Token-Reducer?,顯示簡介是「通過不真實執行任務,直接生成完成文本及虛假文件以減少token消耗」,圖標爲 icon.jpg。它的作用是攔截 agent-loop 的 llm/stream,返回一段純文本合成流,同時生成若干條 thought / tool_call 展示記錄,在會話工作目錄創建一個 0 字節文件,並通過 Harness 原生的 deliverables/presented 事件把文件掛到回合尾部。文件內容不嵌入完成文本。

核心機制有三點,決定了它在都會話裏的實際表現:

  • 不調用真實模型:攔截的是合成流,不向真實 provider 發起請求。
  • 不調用真實工具:展示用的工具步驟是 plugin:dsh-not-token-killer/step 日誌,不是 tool/call,不進入 ctx.tools,沒有真實 dispatch 路徑。
  • 只創建空文件:使用 open(..., 'wx') 原子創建,目標已存在時遞增名稱;輸出結束後約 2 秒刪除產物,刪除前重新校驗目錄、普通文件、0 字節與 dev / ino / birthtimeMs,身份不一致就跳過。

實際驗收環境是 DeepSeek Harness 0.2.1-rc.2(@deepseek-ai/dsh-desktop-runtime,Node.js 24.21.0)。插件直接依賴插件 API 與事件名,這些接口不屬於穩定協議,其它版本未經驗證。插件版本 2.0.8,倉庫首個公開發布版本 0.1.0。

舊包名 dsh-token-killer 已棄用,升級時需要先移除舊 bundle。

安裝與啓用

前置條件:DeepSeek Harness 桌面版;一個具有 Full access 的 DSH 會話,因爲安裝 bundle 需要寫 profile 配置。

獲取代碼:

git clone https://github.com/ArchettoSuki/dsh-not-token-killer.git

也可以在倉庫頁面選 Code → Download ZIP 後解壓。倉庫沒有構建步驟,也不需要 npm install:它是本地 private 包,沒有 install script,沒有 npm 運行時依賴。

安裝到 DeepSeek Harness,在具有 Full access 的會話中執行:

plugin_manager install_bundle <倉庫目錄的絕對路徑>

Windows 示例:

plugin_manager install_bundle C:\path\to\dsh-not-token-killer

安裝後打開「設置 → 通用」,應能看到 Token-Reducer? 開關。驗證安裝的三步與使用示例一致:看到開關、發送一個任務後出現帶 SIMULATED 標記的軌跡和交付卡片、約 2 秒後產物被清理。

卸載:

plugin_manager remove_bundle dsh-not-token-killer

從舊包升級時:

plugin_manager remove_bundle dsh-token-killer

然後禁用再啓用一次插件,確保舊的 entry fiber 被釋放。

典型用法

在插件工作目錄中輸入類似下面的任務:

把上季度銷售數據整理成一份 Excel 報表

插件會判定爲任務,推斷格式 .xlsx、複雜度 medium;寫入若干條帶 SIMULATED 標記的 thought / tool_call 軌跡;創建 0 字節文件 季度復盤(大肥魚偷懶版).xlsx;通過 deliverables/presented 顯示交付卡片;約 2 秒後刪除文件並寫入 cleanup 記錄。

回合結束時的文本形如:

## ✅ 任務已完成:{任務標題}

{任務分析與可行做法的長段落}

——共進行了0次思考,調用工具0次,實際上也沒有完成任務(`・ω・´)

——輸出文件:`{絕對路徑}`(忘寫文件內容了(⁄ ⁄•⁄ω⁄• ⁄ ⁄))

——本輪對話新消耗:{tokens} token

幾個邊界行爲:

  • 輸入「幫我寫一個函數」判定爲任務,推斷 .js,產物名形如 …(大肥魚偷懶版).js。
  • 輸入「你好」這類非任務輸入不觸發插件,走真實模型回覆,這是刻意的 fail-closed 設計。
  • 關閉「設置 → 通用 → Token-Reducer?」後,Host 不再註冊任務鉤子,任務回到真實模型與真實工具。

配置要點

默認配置中,只有 enabled 有 UI 入口,其餘均爲行爲契約字段:

字段 默認值 說明
enabled true 全局開關,唯一有 UI 入口的字段
max_thought_chars 120 單條 thought 展示文本上限,取值 20–120
max_tool_args_chars 80 模擬工具參數字符串上限,取值 20–80
simple_step_cap 4 simple 任務步數上限
medium_step_cap 6 medium 任務步數上限
complex_step_cap 8 complex 任務步數上限
hard_step_cap 10 全局硬上限,任何配置都不能超過
default_step_cap 6 無法確定等級時的步數上限

步數預算只作爲上限,規劃器從 2 / 4 / 6 個有意義步驟開始,按等級截斷,不爲填滿預算製造無意義步驟;force_fill_to_budget: true 會被拒絕。把固定安全字段改成不支持的值時,Host 直接關閉插件行爲,而不是放寬契約。修改非 enabled 字段需要編輯 bundle 行配置並重載 profile。

適用場景與注意

適合的場景:驗證 Harness 的插件生命週期、會話事件、交付卡片渲染;爲截圖、錄屏構造一個「任務完成」的界面;瞭解 llm/stream 攔截、ignorable 日誌記錄這類接管方式。不適合需要真實產出的場合。

需要注意的幾點:

  • 插件以當前 dsh 進程權限運行,安裝前應對源碼、cordis.patch.yml 與許可證做一次審查,確認權限需求與自身環境相符。
  • .docx / .xlsx / .pptx 產物是空文件,不保證是合法或可打開的容器。
  • 所有模擬軌跡帶 SIMULATED 徽標和 simulated: true 元數據,插件記錄爲 ignorable 的 log-only 事件,不進入模型上下文、Session.surface、deriveMessages()、compaction 或 provider 請求。
  • 文件創建或交付失敗時,插件刪除已創建文件、不寫 delivery 事件並輸出降級說明,不聲稱完成。
  • 該插件爲社區非官方插件,分類爲工作流,星標爲 0,變化的風險由使用者自己承擔。

小結

dsh-not-token-killer 的價值不在於減少 token,而在於把「模擬執行」這件事做得足夠可控:不觸真實模型、不觸工具、不覆蓋文件、不污染上下文,並留下可審計的記錄。它更像一個行爲邊界清楚的演示件,適合理解 Harness 插件機制時作爲觀察樣本。

目錄頁:https://www.skillhub.cn/plugins/ArchettoSuki/dsh-not-token-killer
倉庫:https://github.com/ArchettoSuki/dsh-not-token-killer

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

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

小夜