dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
[!IMPORTANT] 本仓库已归档,不再维护。 开发已迁到 Yurzi/dsh-tool-web-enhanced。npm 包名
dsh-web-search-enhanced不变,0.2.0 起由新仓库发布,作为 dsh-tool-web-enhanced-profile 的一部分安装,不再单独安装。从 0.1.x 升级:先在同一个 profile 里移除本插件(
dsh plugin --profile <profile> remove dsh-web-search-enhanced),再安装dsh-tool-web-enhanced-profile。0.1.x 的设置不会被读取或迁移:设置页会提示并提供“恢复默认设置”;会话的连接选择与模型记忆照常可用。详见从 0.1.x 升级。下文描述的是 0.1.x,仅供存档。
dsh-web-search-enhanced 是 DeepSeek Harness (DSH) 的插件。它接管 DSH 原生的 web_search 工具,让每个会话独立选择搜索连接和内容实时性;对话模型和工具调用方式都不变,web_fetch 也不受影响。
/setup-search 中切换,每个会话记住自己的连接和实时性,fork 出的会话之后独立变化。输入框中的搜索菜单:
插件设置页:
要求 DSH >=0.2.1-rc.2 <0.3.0,Node.js ^22.19.0 || >=24.0.0。
从 npm 安装:
dsh plugin --profile web add dsh-web-search-enhanced@0.1.10
或安装本地构建的包(例如用 pnpm pack 生成),路径需为绝对路径:
dsh plugin --profile web add /absolute/path/to/dsh-web-search-enhanced-0.1.10.tgz
也可以在 Web 界面的 插件 页安装第三方插件时填入包名 dsh-web-search-enhanced。安装后刷新 Web 页面。
升级:DSH 默认开启热更新(HMR),这时不能在已安装的版本上直接再装一次,需要先卸载再安装:在插件页卸载本插件后重新安装,或执行 dsh plugin --profile web remove dsh-web-search-enhanced 后再 add。设置、密钥和各会话的选择都会保留。从 0.1.8 及更早版本升级前请先阅读升级指南。
/setup-search。选择只作用于当前会话。缺少密钥的连接会注明原因,点击它可直接打开设置页。| 连接 | 访问方式 | 内容实时性 | 说明 |
|---|---|---|---|
| Exa(默认) | 免密钥 / 个人密钥 | 仅个人密钥 | 语义检索,个人密钥时返回页面正文片段,可选搜索类型 |
| Firecrawl | 免密钥 / 个人密钥 | 两种方式都支持 | 可按国家、位置筛选;非自动模式下返回新抓取的正文 |
| Tavily | 免密钥 / 个人密钥 | — | 可选搜索深度和主题(通用、新闻、财经) |
| Tinyfish | 免密钥 / 个人密钥 | — | 可按地区、语言筛选;学术论文类型需要个人密钥 |
| DeepSeek | DeepSeek 账号登录,或 DEEPSEEK_API_KEY | — | 使用 DeepSeek 账号登录的会话直接用账号;其他会话使用 API Key(与 DSH「模型」页共用) |
| OpenAlex | 免密钥 / 个人密钥 | — | 开放学术图谱,附作者、引用数、开放获取链接和摘要 |
| Semantic Scholar | 仅个人密钥 | — | 学术检索,附 TL;DR、引用数和开放获取 PDF |
| 自定义搜索服务 | 个人密钥 | 同所用服务 | 复用以上任一服务的接口格式,可指向团队网关等自定义地址 |
| 固定搜索模型 | 个人密钥 | — | 通过 Anthropic Messages、OpenAI Responses 或 Chat Completions 的服务端搜索工具检索 |
| 跟随会话模型 | 会话模型的密钥 | — | 用当前会话的模型搜索;provider 配置需写明 api,不支持 OAuth 和订阅登录 |
免密钥连接使用服务的公共接口,额度与其他用户共享,可能因网络或高峰被拒绝或限流。完整的参数、地址和规则见配置参考。
搜索菜单中的「内容实时性」按会话保存:
只有 Firecrawl 和 Exa(个人密钥)会据此调整请求;选中其他连接时,菜单中的实时性选项不可用。实时性控制的是内容缓存,不是按发布日期筛选;越新的内容通常越慢、消耗越多额度。
在设置页对应服务的配置中填入密钥并保存,密钥写入 DSH 凭据(例如 EXA_API_KEY),不会出现在设置文件里。保存密钥后还需把该服务的访问方式切换为个人密钥,插件不会自动切换。
DSH 0.2.1 起,凭据存储中的值优先于环境变量。如果你习惯用环境变量提供密钥,而凭据存储中已有同名的旧值,环境变量不会生效。
当前会话在搜索菜单中选择了「不使用搜索」。点输入框的地球按钮或输入 /setup-search,选择一个连接即可。新会话的默认连接可在设置页修改。
WEB_KEYLESS_UNAVAILABLE 表示服务拒绝了来自你所在网络的匿名访问,WEB_PROVIDER_RATE_LIMITED 表示限流。先在菜单里换一个免密钥连接;经常遇到时,为常用服务配置个人密钥并切换访问方式。
保存密钥不会改变访问方式,这是为了避免意外消耗付费额度。在设置页该服务的配置中把访问方式切换为个人密钥。
不会。每个会话单独保存连接和实时性。fork 出的会话第一次使用时继承父会话当时的选择,之后两边各自修改,互不影响。
输入栏空间不足时,按钮先隐藏实时性,再隐藏连接名,最后只保留地球图标,点开后的菜单不变。也可以随时用 /setup-search 切换。按钮只有在设置中关闭「在输入框显示搜索按钮」时才会完全隐藏。
可以,两种安装顺序都行。两个插件各自占用 DSH 原生 provider 的 ID(本插件是搜索的 deepseek-official,dsh-web-fetch-enhanced 是抓取的 http),只停用被替换的原生条目,都不改动共享的 web 条目。用 dsh --profile web --dump-config 检查时,web 条目应保持 searchProvider: deepseek-official 和 fetchProvider: http。
本插件替换了 DSH 自带的 DeepSeek 搜索(web-search-deepseek),所以 插件 → 内置插件配置 → 网页搜索 页面不再显示。DeepSeek 搜索可以改用本插件的 DeepSeek 连接;确实要保留原生搜索时,见配置参考的共存说明。
web_search 没有经过本插件时,插件设置页顶部会提示原因和改法。
如果以前在那个页面打开过「启用新版 Web 搜索 API」,用户配置的 web 条目中会残留 searchProvider: deepseek-search-api 和 fetchProvider: deepseek-fetch-api:搜索和抓取都由 DeepSeek Search / Fetch API 完成,本插件和抓取插件都不参与,输入框中选择的连接不生效。用 dsh --profile web --dump-config 查看 web 条目,删除用户层中的这两个字段即可。
插件无法从模型配置推导出搜索路由,错误信息会写明缺少什么。最常见的原因是 provider 配置没有写 api。DSH 自带的 DeepSeek 路由不支持跟随,请改用 DeepSeek 连接。规则见配置参考。
| 文档 | 内容 |
|---|---|
| 配置参考 | 所有字段、内置连接、参数白名单、自定义连接、跟随模型规则、错误码 |
| 升级指南 | 版本对应关系、升级到 0.1.10 的变化、旧配置迁移、回退 |
| 架构 | 模块划分、请求流程、如何新增搜索服务 |
| 开发 | 本地开发、测试、在真实 DSH 中验证、发布 |
| 更新日志 | 各版本的变化 |
| AGENTS.md | 给编码代理的仓库说明(英文) |
pnpm install
pnpm run check
详见开发指南。
问题反馈请到 GitHub Issues,附上 DSH 与插件版本;不要粘贴密钥或私密对话。