在 DeepSeek Harness (DSH) 的開發流程中,Agent 執行 Shell 命令產生的輸出往往包含大量冗餘信息,這會增加 Token 消耗並佔用上下文。dsh-rtk 是一個社區維護的 DSH 插件,它利用本地的 RTK 工具在命令輸出進入模型上下文之前進行壓縮重寫。
插件定位與核心功能¶
dsh-rtk 是一個由 robbin810130 維護的社區項目(非 DeepSeek AI 官方項目)。它的核心作用是在系統啓動時將 shell 命令交給本機安裝的 RTK 重寫,從而壓縮輸出內容。
該插件具備以下核心能力:
* 命令重寫與壓縮:將 shell 命令交給 RTK 處理,在輸出進入上下文前進行壓縮。
* 多平臺支持:支持 macOS (arm64/x64)、Linux (x64/arm64) 和 Windows (x64)。
* 多 Shell 工具支持:支持 POSIX (bash) 和 PowerShell (pwsh)。
* 會話內自檢:提供 /rtk、/rtk recheck、/rtk doctor、/rtk gain 等命令,無需退出即可檢查狀態或統計 Token 節省。
* 配置與控制:支持 autoDiscover、bin、timeoutMs、verbose、statusFile 等配置項,以及 RTK_BIN、DSH_RTK_DISABLE 等環境變量控制。
安裝與啓用¶
安裝此插件前,必須先確保本地已安裝 RTK 二進制文件,插件不包含 RTK 本體。
1. 安裝 RTK 二進制¶
根據你的系統選擇安裝方式。例如在 macOS 或 Linux 上:
brew install rtk
rtk --version
2. 安裝 DSH 插件¶
使用 DSH 官方命令安裝插件到當前使用的 profile(例如桌面版通常是 desktop):
dsh plugin --profile desktop add github:robbin810130/dsh-rtk#v1.5.0
3. 重啓 DSH¶
安裝完成後,必須完全退出並重新打開 DSH 才能加載插件配置。
4. 驗證生效¶
在任意會話中輸入以下命令檢查狀態:
/rtk
如果看到「狀態:已生效」即可確認插件正常工作。
配置與使用¶
會話內命令¶
插件提供了一套會話內命令用於自檢和查看統計:
* 檢查當前狀態:/rtk 或 /rtk status
* 丟棄緩存重新探測:/rtk recheck(剛安裝 RTK 且不想重啓 DSH 時使用)
* 運行完整自檢:/rtk doctor
* 查看 Token 節省統計:/rtk gain
環境變量配置¶
- 顯式指定 RTK 路徑:
- macOS/Linux:
export RTK_BIN=/absolute/path/to/rtk
- macOS/Linux:
- 跳過改寫:
- POSIX Shell:
DSH_RTK_DISABLE=1 <命令> - PowerShell:
$env:DSH_RTK_DISABLE='1'; <命令>
- POSIX Shell:
配置文件¶
在 profile 的 cordis.patch.yml 中可以覆蓋默認配置:
- id: dsh-rtk
config:
autoDiscover: true
bin: /opt/homebrew/bin/rtk
timeoutMs: 3000
verbose: false
statusFile: true
注意事項與故障排查¶
- RTK 二進制依賴:插件不包含 RTK 二進制,必須單獨安裝。
- Windows 特性:Windows 只接受
.exe文件,拒絕.cmd/.bat文件(出於安全考慮,拒絕通過 shell 轉發命令文本)。 - 配置生效:配置項和環境變量的修改需要完全退出並重新打開 DSH 才能生效。
- 環境變量差異:
- macOS/Linux 讀取登錄 shell 環境(如
~/.zshrc)。 - Windows 讀取註冊表用戶環境變量,不讀取 shell 配置(如
$PROFILE)。
- macOS/Linux 讀取登錄 shell 環境(如
- 舊版本兼容性:1.0.x 版本會修改宿主源碼,升級到 1.1.0+ 後不再修改宿主源碼,升級前請確認備份。
總結¶
dsh-rtk 通過引入本地的 RTK 工具,在 DSH 的 Shell 命令輸出層提供了壓縮能力,有助於降低 Token 消耗。它通過 /rtk 系列命令提供了完善的會內診斷和統計功能,適合需要在 DSH 環境中優化命令輸出長度的開發者使用。