在 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 环境中优化命令输出长度的开发者使用。