dsh-router-ext-rtk 插件介绍:用 RTK 压缩 Bash 输出

前言

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 及以上。

  1. 安装插件:
dsh plugin --profile web add dsh-router-ext-rtk
  1. 安装前置工具 RTK(注意不是 Rust Type Kit):
brew install rtk
# 或
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/master/install.sh | sh
  1. 验证 RTK 安装:
rtk --version   # 应返回版本号
rtk gain        # 应显示 token 节省统计
  1. 在 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 仓库

羽毛球分组比赛记分
小程序二维码

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

小夜