前言¶
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
典型用法¶
- 在 DSH 中输入一个简短的确认性问题,例如“DeepSeek 的最新版本号是多少?”。
- 点击 Composer 旁边的 WebAsk 按钮,或按
mod+shift+k。 - 浏览器会自动打开对应网页聊天的标签页,并将问题填入(通过
?q=参数)。 - 在网页端查看结果后,如果需要,可以将答案复制并插回 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