DeepTrial/dsh-bash-rtk:把符合條件的 DSH bash 命令交給 rtk 壓縮輸出

前言

在 DeepSeek Harness(DSH)這類“一切皆插件”的智能體運行框架裏,bash 工具經常會產生冗長輸出,例如構建日誌、測試輸出或倉庫狀態。dsh-bash-rtk 是 DeepTrial 維護的一個 DSH bash executor 插件,用來把符合條件的 shell 命令路由到 rtk(Rust Token Killer)處理,從而壓縮工具輸出、減少 token 消耗;工作目錄、超時、環境變量、退出碼和沙箱約束等執行語義保持不變。

下面介紹它的定位、能力、安裝啓用方式、典型用法,以及使用時的版本和安全邊界。

這是什麼

DeepTrial/dsh-bash-rtk 是一個 DSH bash executor 插件。

它的核心目標很具體:

  • 在 DSH 的 bash executor 中識別符合條件的 shell 命令。
  • 把簡單且白名單內的命令交給 rtk 執行。
  • 讓不適合的命令原樣透傳。
  • rtk 不可用時退化爲無操作透傳。

已覈實的基本信息如下:

  • 維護方:DeepTrial
  • 許可證:MIT
  • package.json 版本:0.1.1
  • 倉庫地址:https://github.com/DeepTrial/dsh-bash-rtk

核心功能

1. 只改寫符合條件的命令

插件會對簡單、白名單內的 shell 命令進行 rtk 包裝。已給出的示例包括:

  • git status 解析爲 rtk git status
  • cargo build --release 解析爲 rtk cargo build --release

這意味着插件只處理它認爲可以安全包裝的命令,而不是把所有 bash 命令都強制改寫。

2. 複雜命令原樣透傳

當命令包含 shell 元字符時,插件會保持原樣,不改變實際執行的命令。已給出的示例是:

git status | grep x

該命令會保持爲:

git status | grep x

原因是它屬於複雜 shell 命令,不適合由插件靜默改寫。

3. 不在白名單中的命令也保持原樣

已給出的示例是:

ls -la

該命令會保持爲:

ls -la

原因是它不在插件認定的可路由命令範圍內。完整白名單未包含在已覈實資料中,因此這裏只列 README 中已給出的示例。

4. rtk 不存在時自動退化爲透傳

如果 PATH 中沒有 rtk,插件會把命令保持原樣。已給出的示例是:

git status

rtk 缺失時,它仍然會保持爲:

git status

這避免了因爲缺少外部依賴而導致命令執行方式被改變。

5. 提供兩套 executor

插件提供:

  • RtkBashExecutor
  • RtkSandboxBashExecutor

其中還包含一個可選 overlay,用於替換默認 sandbox executor。這樣可以在不同部署方式下選擇更貼近原執行語義的 executor。

6. 支持強制開關 rtk 包裝

配置項:

rtkAvailable: boolean

該字段用於強制開啓或強制關閉 rtk 包裝。適合在測試、非標準二進制路徑部署,或明確希望繞過/啓用 rtk 的場景中使用。

7. peer 依賴全部可選

插件聲明瞭以下可選 peer 依賴:

"@deepseek-ai/dsh-bash-local"
"@deepseek-ai/dsh-bash-sandbox"
"@deepseek-ai/dsh-shell"

這些依賴全部標記爲 optional。如果它們不存在,插件仍以透傳方式運行,不會因此改變基礎 bash 執行行爲。

安裝與啓用

前提條件

使用前需要滿足:

  • Node.js >= 20.0.0
  • PATH 中存在 rtk
  • 運行 rtk --version 時退出碼爲 0

這裏有一點要特別注意:插件不會打包、安裝、固定或管理 rtk。用戶需要單獨安裝並更新 rtkrtk 的版本和插件版本相互獨立,不需要保持一一對應。

安裝插件

下面命令從 GitHub 最新 release tarball 安裝插件:

dsh plugin --profile web add \
  "https://github.com/DeepTrial/dsh-bash-rtk/releases/latest/download/dsh-bash-rtk-latest.tgz"

執行後,插件會被添加到 web profile,但此時並不會立即生效。

啓用插件

插件默認處於禁用狀態。安裝後還需要在對應 profile 的 cordis.patch.yml 中啓用:

- id: bash-rtk
  disabled: false

啓用後,重啓或啓動 DSH 使配置生效:

dsh web

經過上面的步驟,插件纔會進入 DSH 的 bash 執行鏈路。

典型用法

下面這些示例來自已覈實資料,可以直接用來理解插件的判定邊界。

輸入命令 解析後命令 原因
git status rtk git status 簡單且白名單內
cargo build --release rtk cargo build --release 簡單且白名單內
git status \| grep x git status \| grep x 複雜 shell 命令,透傳
ls -la ls -la 不在白名單內,透傳
git status,且 rtk 不存在 git status rtk 缺失,identity fallback

可以把它理解成一個執行前的命令解析層:

  1. 先判斷命令是否簡單。
  2. 再判斷命令是否屬於可路由範圍。
  3. 最後判斷 rtk 是否可用。
  4. 只有同時滿足條件,才把命令改寫爲 rtk <command>
  5. 任何一步不滿足,命令都保持原樣執行。

配置與版本邊界

rtkAvailable

rtkAvailable 是插件提供的額外配置項,用於強制控制 rtk 包裝。

它的取值類型爲:

boolean

如果不依賴自動探測,或需要固定行爲,可以顯式設置這個字段。

dsh 版本範圍

插件在 dsh.plugin.json 中聲明的 dsh 版本範圍是:

"engines": { "dsh": ">=0.1.0-rc.6 <0.2.0 || >=0.1.1-rc.1 <0.2.0-0" }

這個範圍刻意排除了 0.2.0+。也就是說,該插件目前面向的是 0.1.x 預發佈/構建線,不適用於未來可能的 0.2.0+ 主線。

適用場景與注意

適合誰

這個插件比較適合以下使用方式:

  • 使用 DSH 的 bash 工具執行常見開發命令。
  • 希望減少工具輸出帶來的 token 消耗。
  • 希望插件默認保守,只在明確符合條件的命令上生效。
  • 接受自行安裝和更新 rtk
  • 在啓用前會檢查插件源碼、依賴和許可證。

使用前要注意

  1. 插件默認禁用,安裝後不啓用就不會改變執行鏈路。
  2. 插件不安裝、不固定、不管理 rtk
  3. rtk 版本和插件版本相互獨立。
  4. 所有 @deepseek-ai/dsh-* peer 依賴都是 optional,缺失時插件仍會以透傳方式運行。
  5. dsh 版本範圍明確排除了 0.2.0+
  6. 插件會以當前 dsh 進程具備的權限執行命令,因此安裝前應檢查源碼與許可證。
  7. 本文只依據已覈實資料描述命令白名單;完整白名單未包含在已覈實材料中,不應據此推斷所有命令都會或不會經過 rtk

結尾

DeepTrial/dsh-bash-rtk 的價值在於給 DSH 的 bash 執行鏈路增加一個保守、可關閉、可透傳的 rtk 輸出壓縮入口。它只處理符合條件的簡單命令,複雜命令、非白名單命令和 rtk 缺失場景都會保持原樣,適合那些願意單獨維護 rtk、並希望減少 bash 工具輸出的 DSH 使用者。

相關鏈接:

  • GitHub:https://github.com/DeepTrial/dsh-bash-rtk
  • 目錄頁:可在 DSH 社區目錄中按 dsh-bash-rtk 檢索;社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係,也不是官方應用商店。
羽毛球分组比赛记分
小程序二维码

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

小夜