前言¶
DeepSeek Harness (DSH) 生态强调模块化,dsh-router-ext-rtk 是为 dsh-router 设计的扩展。智能体在执行 bash 命令时,输出往往包含大量冗余信息,导致 Token 消耗巨大。该插件通过将 bash 命令改写为 rtk <cmd>,利用 Rust Token Killer 压缩输出,将发给 LLM 的 bash 输出削减 60-90%。
是什么¶
该插件由 CARVIN94 维护,遵循 MIT 许可证。它注册了一个命令重写扩展,让 dsh-router 在每次调用 bash 工具时通过 rtk rewrite 运行命令,从而压缩输出。单独安装它没有作用,它依赖 dsh-router 核心提供面板和开关存储。
安装与启用¶
使用前请确保 DSH 版本在 0.2.0 及以上。
- 安装插件:
dsh plugin --profile web add dsh-router-ext-rtk
- 安装前置工具 RTK(注意不是 Rust Type Kit):
brew install rtk
# 或
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/master/install.sh | sh
- 验证 RTK 安装:
rtk --version # 应返回版本号
rtk gain # 应显示 token 节省统计
- 在 Web 界面启用:
进入「设置 → 路由 → 扩展」页面,打开 RTK 开关。如果 RTK 未安装或不可用,核心会拒绝开启并返回 API 409。
核心功能¶
- 真实代理:每条 bash 命令经
rtk rewrite改写后执行,LLM 读取的是压缩后的输出。 - 降级安全:rtk 缺失、无等价改写或执行失败时,命令会原样执行,绝不报错。
- 只拦 bash:仅拦截 bash 工具,不影响其他工具(如 run_code)。
- 开关自检:启动时探测 rtk,不可用时核心拒绝开启并给出描述。
- 开关持久化:状态存储在核心的配置文件中(
<profile>/data/ext.json),默认关闭。
配置¶
如果 rtk 不在默认路径中,可以通过环境变量 DSH_RTK_BIN 显式指定可执行文件路径。
工作原理¶
核心负责管理面板、渲染界面、开关持久化以及裁决能否开启。本插件负责执行重写、拦截 bash 调用、处理退出码。插件是无状态的,它通过 router.extStore 与核心进行交互,不自己进行文件 IO。
关键点:在代码中调用 tools.get('bash', exec.agent) 时,agent scope 不能省。不带 scope 只查全局视图,查不到就会静默走原样,不报错也不改写。
RTK 退出码处理¶
RTK 权限默认最低,极少命令返回 Allow(0)。常见命令(如 git status)都返回 Ask(3)。在用户开启开关授权后,退出码 3 也会采用 stdout:
- 0 (Allow):有等价改写,采用 stdout。
- 1 (无等价):放行,原样执行。
- 2 (Deny):放行,不做阻断。
- 3 (Ask):有等价改写但默认需确认,采用 stdout(用户已授权)。
- Spawn 失败/超时:放行。
适用场景¶
该项目仅用于学习与技术研究,请勿用于商业用途。
总结¶
该插件通过将 LLM bash 输出减少 60-90% 来提高效率。核心提供管理,插件负责执行。更多细节请查看项目目录:
- 插件目录
- GitHub 仓库