dsh-workbuddy-websearch

toolstested: passnpmMIT

Makes the WorkBuddy desktop app's web search the dsh web_search provider, reusing the app's existing sign-in with no extra configuration.

下载量 / Downloads
2,321
依赖体积 / node_modules
0.16 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-workbuddy-websearch

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-workbuddy-websearch

将 WorkBuddy 桌面 App 的网络搜索接入 DeepSeek Harness 的 web_search 工具(零配置、零硬依赖)

装上本插件后,dsh 内置的 web_search 会改用你 WorkBuddy 账号的登录态(积分套餐)调用云端

agentic 检索,返回带引用来源的综述文本。不需要任何 API Key,也不用改 dsh 的模型配置。

  • 零配置 —— 复用 WorkBuddy 桌面端登录态,不填任何 Key、不改账号设置。
  • 零硬依赖 —— 不装其他 dsh 插件也能完整工作;平台定位、5.6+ 加密凭据解密、

国内版/国际版双版本读取均自带。

  • 对凭据文件只读 —— token 续期只在内存中完成,不回写磁盘,与其他插件零冲突。
  • 纯 ESM,无构建步骤,无第三方依赖 —— clone 下来即可用。
  • 不锁版本上限 —— dsh 与 WorkBuddy 出了更新版本照样能装,只声明「已验证到哪」。

目录

  • [安全](#安全)
  • [安装](#安装)
  • [快速开始](#快速开始)
  • [遇到问题](#遇到问题)
  • [依赖](#依赖)
  • [卸载](#卸载)
  • [使用](#使用)
  • [CLI](#cli)
  • [配置](#配置)
  • [适用范围](#适用范围)
  • [版本策略:声明下界,不设上限](#版本策略声明下界不设上限)
  • [注意事项](#注意事项)
  • [变更记录](#变更记录)
  • [致谢](#致谢)
  • [参与贡献](#参与贡献)
  • [维护者:改一处代码并发布(最短路径)](#维护者改一处代码并发布最短路径)
  • [维护者:插件市场上架材料](#维护者插件市场上架材料)
  • [许可证](#许可证)

安全

  • 本插件对 WorkBuddy 桌面端的凭据文件只读;token 续期只在内存中完成,不回写磁盘。
  • 所有请求只发往 WorkBuddy 官方网关(国内 https://copilot.tencent.com、

国际 https://www.workbuddy.ai),不经过任何第三方中转,也不会把你的凭据发往别处。

  • 发现安全问题请不要开公开 Issue,按 [SECURITY.md](./SECURITY.md) 的渠道私下反馈。

安装

前置只有一条:本机已安装并登录 WorkBuddy 桌面 App(国内版 WorkBuddy 或国际版

WorkBuddy AI 任一)。

快速开始

从 DSH 插件市场装(最省事) —— 在 DSH 里打开插件市场,搜索

workbuddy-websearch,点安装即可。安装、升级、卸载都在界面里完成,

不用记命令、不用碰配置文件。

从 npm 装(命令行) —— 本插件已发布到 npm,不必 clone:

dsh plugin --profile web add dsh-workbuddy-websearch
⚠️ 请固定版本号,或直接用市场安装。
pnpm 11 起内置了 24 小时的「新版本冷静期」(minimum-release-age):
刚发布不久的版本会被静默降级到上一个满 24 小时的版本,
而 @latest 标签也绕不过它。想要立刻用上最新版就显式指定:
```bash
dsh plugin --profile web add dsh-workbuddy-websearch@0.3.7
```
DSH 插件市场自带这个问题的处理(安装前先把目标固定到注册表的最新版),
所以走市场安装不会有这个困扰。

从源码装 —— 想改代码、或想固定到某个提交时:

# <本插件目录>:你 clone 下来的仓库路径
dsh plugin --profile web add <本插件目录>

对每一份 dsh 副本各执行一次,用你平时启动 dsh 的方式调用它的 CLI。

重启 dsh 即生效 —— web_search 走 WorkBuddy 搜索,模型回答里会带来源链接。

核验(应看到 searchProvider: workbuddy-agentic 与 id: web-workbuddy-websearch):

dsh --profile web --dump-config | grep -i "workbuddy-websearch\|searchProvider"

若 dsh 不在 PATH 上,直接用它的绝对入口调用,效果相同:

"<node>" "<dsh 安装根>/node_modules/@deepseek-ai/dsh/lib/bin.js" plugin --profile web add dsh-workbuddy-websearch

升级(plugin 子命令就是 dsh 官方的插件管理入口):

dsh plugin --profile web add dsh-workbuddy-websearch@latest   # 升到最新版
dsh plugin --profile web add dsh-workbuddy-websearch@0.3.7    # 或固定到某一版

遇到问题

add 报错、或核验不通过时,先试一遍幂等修复脚本(可反复跑,不会重复安装):

node tools/ensure-installed.mjs "<DSH_HOME>" web

最常见的两个原因:① pnpm 没把 link: 依赖真正落地到 node_modules;

② 上一次 add 中途失败留下「半状态」(dependencies 已写、node_modules 不完整),

此时先 remove 再 add。

dsh-workbuddy-connect 是可选增强,不是前置。 装了会更稳(复用其久经验证的凭据 store),
不装也能完整工作。详见[适用范围](#适用范围)。
🔴 同一个搜索 provider id 只能有一个插件注册。 本插件注册 workbuddy-agentic;
若你还装着注册了同一 id 的其他插件(本插件的旧版本 / 前身版本、改过 id 的 fork 等),
dsh 的 ctx.web 会按 id 去重 —— 同时装只会有一个生效,另一个静默不激活
(日志里只有一行 1 entry did not activate)。撞上这个坑时,插件会直接告诉你
怎么把占用者查出来、怎么卸。
⚠️ 装之前先确认 dsh 用的是哪个数据目录。 dsh 未设 DSH_HOME 时会回落到默认
数据目录(~/.dsh)。若你平时是用某个包装脚本 / 固定数据目录启动 dsh 的,
请让安装时的 DSH_HOME 与它保持一致,否则插件会被装进另一个你并不会启动的环境。
用各发行版自带的 dsh / dsh.bat 启动可避免此问题。

依赖

依赖 · 要求 · 说明

Node · >= 20 · 实测 v22 / v24;真实下界是 AbortSignal.any(20.3+)

WorkBuddy 桌面 App · 已安装并登录 · 国内版或国际版任一

Python · 不需要 · 本插件不调用 Python(dsh 自带的 Python 是给它自己用的)

git · 运行时不依赖 · 只在 npm install 装 git 依赖、或 git clone 做开发时需要

原生构建工具链 · 不需要 · 零运行时依赖,没有需要编译的模块

其他 dsh 插件 · 不需要 · 零硬依赖,独立工作

卸载

dsh plugin --profile web remove dsh-workbuddy-websearch

remove 会同时移除 dependencies 与 bundles 登记;bundle patch 随包消失,web 行自动回到

dsh-base 默认(searchProvider: deepseek-official),无需手动改配置。

若 remove 后 node_modules 里仍残留空目录,手动删掉即可。

⚠️ 若你曾在 profile 的 cordis.patch.yml 里写过 - id: web-workbuddy-websearch 传 config,
卸载后需手动删掉该行,否则 dsh 启动会报 entry not found(仅告警)。

使用

安装并重启 dsh 后无需任何额外操作 —— 模型调用 web_search 时自动走 WorkBuddy:

你:帮我搜一下最近的 XX 进展
  └─ 模型内部调用 web_search
       └─ WorkBuddy 云端多步 agentic 检索
            └─ 返回带引用来源的综述文本

CLI

headless profile 同样可用:

dsh headless "帮我搜一下最近的 XX 进展"
注意 headless profile 的默认模型走 deepseek-official(需 DeepSeek API Key);
想让它也复用 WorkBuddy 登录态,需在该 profile 的 cordis.patch.yml 里把
agent-default-model 的 provider 改为 workbuddy。
模型配置与搜索插件是两件事,别混淆。

配置

全部为环境变量,都有默认值,不设也能用:

环境变量 · 默认 · 说明

WORKBUDDY_SEARCH_REGION · auto · 用哪一版账号:auto(选实际可用的那一版)/ global(国际版 WorkBuddy AI)/ cn(国内版 WorkBuddy)

WORKBUDDY_SEARCH_MODE · 2 · 云端 search_mode(2 = PRO,桌面 App 同款)

WORKBUDDY_SEARCH_MAX_CONTENT_CHARS · 30000 · 综述回传上限字符,0 = 不截断

WORKBUDDY_SEARCH_ENDPOINT · 按区域自动 · 覆盖网关地址

WORKBUDDY_AUTH_FILE · 自动探测 · 显式指定国内版凭据 JSON 路径

WORKBUDDY_AI_AUTH_FILE · 自动探测 · 显式指定国际版凭据 JSON 路径

WORKBUDDY_ELECTRON_BIN · 自动探测 · 国内版 App 的 Electron 二进制(解密 5.6+ 凭据用)

WORKBUDDY_AI_ELECTRON_BIN · 自动探测 · 国际版 App 的 Electron 二进制(装在自选盘符/自定义路径时必填)

两版账号不会混用。 国内版(WorkBuddy)与国际版(WorkBuddy AI)是两套账号、
两套积分。插件在首次用到时绑定其中一版,整个会话不再切换;被绑定的那一版
没登录就如实报错,不会悄悄改用另一版去扣费。
auto(默认)选实际可用的那一版,只装了一版的人无需任何配置;两版都可用时
取国际版(保持 0.2.x 的额度归属),想固定用国内版就写 region: cn。
自动探测顺序:① 上面的环境变量 → ② 平台默认布局
(Windows 国内版 %LOCALAPPDATA%\Programs\WorkBuddy\;macOS /Applications/*.app)
→ ③ macOS Spotlight 发现(按 bundle id 反查 → plutil 校验 → 可执行性检查;
装在 /Applications 之外也能找到)
→ ④ Windows 常见安装根的一层有界扫描(%LOCALAPPDATA%\Programs、%ProgramFiles%* 下
目录名以 WorkBuddy 开头的;不枚举盘符、不做全盘遍历)
→ ⑤ Windows 卸载注册表(Uninstall 三处根;DisplayName 形状匹配后取
DisplayIcon / InstallLocation,每个候选都要通过「exe 名相符 + 同级 version +
resources/app.asar」三道布局校验;多于一个就报歧义,绝不猜)。
❗ 官方安装器允许把 App 装到自选盘符或自定义目录(macOS 上则是 /Applications 之外)。
第 ③ ⑤ 步分别覆盖了这两种情形;万一仍找不到,请用环境变量显式指定。
找不到时插件抛出的错误里已包含可直接粘贴的设置命令。

适用

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::9,最后更新 2026-10-30

Links

GitHub · Homepage · npm

Same category