dsh-webask: Forward Single-Line Questions to the Web to Save DSH Context

前言

DeepSeek Harness (DSH) 在每次对话轮次中都会重发整个对话历史。这意味着,即使你确定只会问一个非常简短的单行问题,它也依然会消耗掉整个上下文窗口的 token。如果是为了验证一个简单的概念或获取一个快速定义,这种成本是不必要的。

WebAsk 插件用于解决这个问题:它将那些确定会非常简短的问题,直接转投到 DeepSeek 的免费网页聊天中,而不是让它们进入 DSH 的模型对话流。

插件简介

dsh-webask 是一个专注于上下文节省的联网工具插件。

  • 定位:将单行问题发送到 DeepSeek 的网页聊天,避免消耗 DSH 上下文。
  • 维护者:DanZai233
  • 协议:MIT
  • 核心机制:通过插件提供的按钮或全局热键,将文本从 DSH 草稿区提取,复制到剪贴板,并在新标签页打开对应的网页聊天。

核心功能

插件通过三个主要机制实现上述功能:

1. Composer 按钮

在 DSH 的编辑器旁边会出现一个按钮。点击它,插件会执行以下操作:
1. 提取:将你正在编辑的文本从草稿中取出。
2. 清除:通过官方的输入动作清除草稿,确保文本从未进入模型。
3. 复制:将文本复制到系统剪贴板。
4. 跳转:在新标签页中打开配置好的目标网站并带上参数。

2. 全局热键调色板

按下 mod+shift+k 可以在任何地方唤起一个居中的输入框。
* 输入问题后按 Enter 发送。
* 按 Shift+Enter 换行。
* 按 Esc 关闭调色板。

唤起的调色板带有本地历史记录,记录中的每一条问题都可以:
* 重新打开:在网页端重新发送。
* 复制:再次复制到剪贴板。
* 插回编辑器:将答案插入回 DSH 的编辑器,用于后续追问。

3. 设置与多站点支持

在设置中,你可以配置:
* 目标站点与模板:默认支持多种主流大模型网页端。
* 全局热键:自定义唤起快捷键。
* 剪贴板行为:是否自动复制。
* 历史记录:开关本地历史记录及数量限制。

支持列表包括:DeepSeek, Kimi, Qwen, 豆包, 腾讯元宝, 智谱 GLM, Gemini。

安装与启用

使用官方插件命令安装。插件会修改包图,安装后需要重启对应 profile。

dsh plugin --profile web add dsh-webask

重启 profile 后,插件生效。你可以通过以下命令验证配置是否加载成功:

dsh --profile web --dump-config | grep -A2 webask

典型用法

  1. 在 DSH 中输入一个简短的确认性问题,例如“DeepSeek 的最新版本号是多少?”。
  2. 点击 Composer 旁边的 WebAsk 按钮,或按 mod+shift+k。
  3. 浏览器会自动打开对应网页聊天的标签页,并将问题填入(通过 ?q= 参数)。
  4. 在网页端查看结果后,如果需要,可以将答案复制并插回 DSH 的编辑器中继续提问。

注意事项与原理

在使用前,需了解以下事实:

  • ?q= 是社区约定:网页端通常不会自动读取 URL 中的 ?q= 参数,这是社区约定。WebAsk 插件同时处理了“复制到剪贴板”和“打开 URL”两步,以确保无论如何都能让问题到达网页。
  • 纯本地存储:历史记录和设置仅保存在浏览器的 localStorage 中,不会上传到任何服务器。
  • 无模型交互:插件作为“空挂载行”存在,不会向模型发送任何数据。
  • 无构建链:插件不依赖复杂的构建工具,直接使用 React.createElement 渲染。

总结

dsh-webask 是一个轻量级、注重隐私且实现简单的插件。它通过将非核心对话转投网页端,有效解决了 DSH 在处理短问答时的上下文浪费问题,适合希望精细控制 token 消耗的开发者使用。

  • GitHub 仓库:https://github.com/DanZai233/dsh-webask
  • 社区目录:https://www.skillhub.cn/plugins/DanZai233/dsh-webask
羽毛球分组比赛记分
小程序二维码

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

Xiaoye