前言¶
在 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 statuscargo 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¶
插件提供:
RtkBashExecutorRtkSandboxBashExecutor
其中還包含一個可選 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.0PATH中存在rtk- 運行
rtk --version時退出碼爲0
這裏有一點要特別注意:插件不會打包、安裝、固定或管理 rtk。用戶需要單獨安裝並更新 rtk。rtk 的版本和插件版本相互獨立,不需要保持一一對應。
安裝插件¶
下面命令從 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 |
可以把它理解成一個執行前的命令解析層:
- 先判斷命令是否簡單。
- 再判斷命令是否屬於可路由範圍。
- 最後判斷
rtk是否可用。 - 只有同時滿足條件,才把命令改寫爲
rtk <command>。 - 任何一步不滿足,命令都保持原樣執行。
配置與版本邊界¶
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。 - 在啓用前會檢查插件源碼、依賴和許可證。
使用前要注意¶
- 插件默認禁用,安裝後不啓用就不會改變執行鏈路。
- 插件不安裝、不固定、不管理
rtk。 rtk版本和插件版本相互獨立。- 所有
@deepseek-ai/dsh-*peer 依賴都是 optional,缺失時插件仍會以透傳方式運行。 dsh版本範圍明確排除了0.2.0+。- 插件會以當前
dsh進程具備的權限執行命令,因此安裝前應檢查源碼與許可證。 - 本文只依據已覈實資料描述命令白名單;完整白名單未包含在已覈實材料中,不應據此推斷所有命令都會或不會經過
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 / 幻方無官方從屬關係,也不是官方應用商店。