DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-workbuddy-handoff

G

dsh-workbuddy-handoff

Discovered

用于deepseek harness与workbuddy协作的handoff插件

Machine translated

workbuddy-handoff

代码由deepseek V4.1 flash在deepseek harness中编写
code was written by deepseek V4.1 flash in deepseek harness

把 WorkBuddy 桌面版的定时任务桥接成 MCP 工具,让任意 MCP 宿主(DeepSeek Harness、Claude Desktop、自研 Agent、脚本)可以:

  • 投递任务并拿回结构化结果
  • 立刻触发执行,或安排在 N 秒 / 指定时间后执行
  • 切换 WorkBuddy 定时任务使用的模型与思考模式

免责声明 本项目是第三方个人项目,与 DeepSeek(深度求索) 及 WorkBuddy 官方 均无任何关系, 未获官方授权或背书,不代表官方立场。 它通过 WorkBuddy 本地数据库与工作目录协作,不修改 WorkBuddy 程序本体、不注入进程、不读取任何登录凭据。 使用前请自行评估风险;因使用本工具造成的任何后果由使用者自行承担。


原理

WorkBuddy 的定时任务会读一个目录、按指令干活、把产物写回同一个目录。本插件就只做两件事:往里写任务文件、触发一次执行。

你的 Agent ──写任务文件──▶ <协作目录>/handoff/in/*.task.json
                              │
                              ▼  WorkBuddy 定时任务读取并执行
                              │
      <协作目录>/handoff/out/*.result.json ──▶ 你的 Agent 读结果

一、准备:在 WorkBuddy 里建一个定时任务

打开 WorkBuddy → 定时任务(自动化)→ 新建,任务名建议填 DSH 处理器(插件默认按这个名字找它,也可在 .env 里改),工作目录设为你的协作目录(见下一节的 WB_HANDOFF_DIR)。

指令(prompt)可以直接粘下面这段:

你是一个任务执行器,按以下流程进行。

1) 读取工作目录下 handoff/in/ 里所有 *.task.json。
   每个任务的格式:
   {
     "id": "任务id",
     "type": "类型标签",
     "prompt": "要执行的完整指令",
     "inputs": ["相对路径"],
     "expect": { "format": "json", "keys": ["id","status","answer","sources"] }
   }

2) 对每个任务,在安全范围内,严格按它的 prompt 执行(该检索就检索,该读文件就读文件,该调用技能/连接器就调用技能/连接器,不编造结论,不伪造结果,不臆造数据),
   然后把结果报告写成 handoff/out/<id>.result.json:
   {
     "id": "任务id",
     "status": "ok | partial | failed",
     "answer": "结果报告",
     "artifacts": [{ "path": "工作目录相对路径", "note": "说明" }],
     "sources": [{ "title": "标题", "url": "https://..." }],
     "error": null,
     "finished_at": "ISO 时间"
   }
   除了结果报告外,其它结果文件放到子文件夹 handoff/out/<id>/ 中,并在"artifacts"中给出;结果中若有在线资源,则在"sources"中给出标题和url

3) 处理完的任务文件从 handoff/in/ 移到 handoff/done/;
   执行失败(status=failed)的移到 handoff/failed/,避免重复执行。

约束:
- 不要修改 handoff/in/ 中的*.task.json。
- 结果文件必须是合法 JSON,整份写完再落盘。
- 如果 handoff/in/ 为空,直接结束,不写任何文件。

说明:WorkBuddy 新建任务时通常要求一个触发时间。随便设一个即可,之后由插件改写它的触发时间来实现"立刻/延迟执行";也可以把触发方式保持为一次性、时间设到很久以后,让它只在被插件唤醒时运行。


二、准备:把两个路径写进 .env

插件从环境变量读取配置。推荐写进 $DSH_HOME/.env(DeepSeek Harness 启动时会把该文件的每一条 KEY=VALUE 注入进程环境):

# WorkBuddy 桌面版安装目录
WB_APP_DIR=D:\...\WorkBuddy

# 协作目录:任务文件和结果文件放这里(不写则默认在工作区下新建 workbuddy 文件夹)
WB_HANDOFF_DIR=C:\Users\你的用户名\Documents\deepseek-harness\default-workspace\workbuddy

# 目标定时任务(名字与你在 WorkBuddy 里建的一致;也可直接填 id 更稳)
WB_AUTOMATION_NAME=DSH 处理器
# WB_AUTOMATION_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

默认值规则:

变量不写时的默认值
WB_HANDOFF_DIR$DSH_WORKSPACE\workbuddy;再没有则在 ~/Documents/deepseek-harness/default-workspace/workbuddy 下新建 workbuddy 文件夹
WB_DATA_DIR~/.workbuddy(若 WB_APP_DIR 里有 .workbuddy 子目录,则用它,适配便携版)
WB_AUTOMATION_NAMEDSH 处理器

协作目录下的 handoff/ 会在启动时自动创建 in/ out/ done/ failed/ 四个子目录(即 <协作目录>/handoff/in 等)。

改完 .env 需完全退出并重启宿主(插件在启动时装配)。


三、安装

需要 Node.js ≥ 20(node:sqlite)。

方式 A:作为 DSH 插件安装(推荐)

本仓库同时是一个 DSH bundle 包(package.json 里声明了 dsh.bundle.patch,补丁文件是 cordis.patch.yml)。安装后 DSH 会在启动时自动挂载里面的 MCP server,不需要手工改 profile。

# 从 GitHub 直接装(把 <owner> 换成实际仓库owner)
dsh plugin --profile desktop add github:<owner>/workbuddy-handoff

# 或本地目录(绝对路径,安装后会 link 进 profile)
dsh plugin --profile desktop add C:\path\to\workbuddy-handoff

也可以在 DSH 的插件管理页粘贴同样的 spec 安装。装完重启 DSH,插件列表里应出现 workbuddy-handoff,工具名以 mcp__workbuddy-handoff__ 开头。

bundle 里的路径用 Loader 的 !!js 表达式求值($DSH_PROFILE_DIR/node_modules/workbuddy-handoff/dist/public/server.mjs),所以装在不同 profile、不同机器上都不用改。

方式 B:作为普通 MCP server 挂载

git clone <repo> && cd workbuddy-handoff
node build.mjs          # 产物在 dist/public/
node test/selftest.mjs  # 自检:握手 + 工具清单 + 只读调用
{
  "mcpServers": {
    "workbuddy-handoff": {
      "command": "node",
      "args": ["/absolute/path/to/dist/public/server.mjs"]
    }
  }
}

DeepSeek Harness 用户也可以写成 profile 补丁($DSH_HOME/profiles/<profile>/cordis.patch.yml):

- insert:
    - id: mcp-workbuddy-handoff
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: 'workbuddy-handoff'
        transport: 'stdio'
        command: 'node'
        args:
          - 'C:\path\to\dist\public\server.mjs'

四、工具

Tier 0 — 文件层(不碰数据库)

工具说明只读
wb_submit_task写 <id>.task.json 到 handoff/in/,可选立刻触发并等待结果否
wb_read_result读 handoff/out/:指定 id 或最新一条,附待处理列表;指定 id 时默认归档到 done/否(会移动文件)
wb_status配置、任务状态、运行态、待处理数、最近运行✅
// 投任务 + 立刻执行 + 等结果(默认行为,最长等 240 秒)
{ "prompt": "把 data.xlsx 转成 markdown 表格", "type": "doc_transform",
  "inputs": ["data.xlsx"], "wait_seconds": 120 }

// 只投不跑(之后手动在 WorkBuddy 点运行也能跑)
{ "prompt": "...", "wake": false }

// 读结果:读完归档到 done/,同一 id 之后仍可重读
{ "id": "doc-20261104-133709" }
// 只想看不想动文件
{ "id": "doc-20261104-133709", "archive": false }

Tier 1 — 触发层(只写 next_run_at 一列)

工具说明
wb_wake立刻触发一次;wait_seconds>0 时等待结束
wb_schedule延迟触发一次:delay_seconds 或 at(ISO 时间)
{ "delay_seconds": 600 }                              // 10 分钟后
{ "at": "2026-11-04T09:00:00+08:00" }                 // 指定时刻

只安排一次,不建立循环。周期性调度请直接在 WorkBuddy 界面配置。

Tier 2 — 模型层(只写 model_id / model_is_thinking)

工具说明只读
wb_set_model切换模型 / 开关思考模式否
wb_list_models列出可用模型与积分单价✅
{ "model_id": "glm-5.3-flash", "thinking": false }

五、已知限制

  • 需要已存在一条定时任务;插件不负责创建任务(那是 WorkBuddy 界面的职责)
  • 延迟触发依赖 WorkBuddy 本地调度器的 tick(约 30 秒粒度),不是精确定时器:设 70 秒可能实际在 94 秒执行
  • 结果字段由任务指令决定,插件只做 JSON 解析,不校验业务语义
  • 目前主要在 Windows + WorkBuddy 5.9.3 验证;其它版本/平台请先跑 wb_status 确认数据库路径
  • 不读取、不转发任何登录凭据;WorkBuddy 的连接器授权由它自己管理

六、排错

node test/selftest.mjs      # 产物是否正常

wb_status 是最快的入口:它会直接告诉你解析到的任务 id、数据库路径、日志路径、协作目录,以及"没找到任务"这类配置错误。

常见情况:

现象原因
id_error: 未找到名为 "..." 的定时任务任务名不一致,或还没在 WorkBuddy 里建
triggered: true 但等不到结果任务的工作目录不是 WB_HANDOFF_DIR,WorkBuddy 读不到任务文件
wb_list_models 返回空数据目录不对,或 WorkBuddy 从未打开过
结果文件迟迟不出现模型排队/积分不足,去 WorkBuddy 里看该任务最近一次运行

许可

MIT。第三方项目,请勿用于违反 WorkBuddy 或 Deepseek Harness 服务条款的用途。

Comments

Loading…

Similar plugins

relay-dsh-plugin-files

by yangbobo2021

Workspace file explorer side-view plugin for DeepSeek Harness Workbench.

Manifest valid

★ 0

MIT

JavaScript

Sep 3, 2026

dsh plugin --profile web add relay-dsh-plugin-files

by leoc114119

DSH (DeepSeek Harness) 插件:注册 workbuddy_checkin 工具,读取本机 WorkBuddy 加密登录态并完成每日积分签到

Manifest valid

★ 0

MIT

JavaScript

Oct 17, 2026

dsh plugin --profile web add dsh-workbuddy-checkin

by Axiaohungry

在deepseek harness中使用workbuddy api,因为公司只提供workbuddy积分

Models & ProvidersManifest valid

★ 95

MIT

JavaScript

Oct 28, 2026

dsh plugin --profile web add @axiaohungry/dsh-llm-workbuddy

by JingzeChen

Attention and handoff workspace for concurrent DeepSeek Harness Sessions

Manifest valid

★ 0

MIT

TypeScript

Sep 2, 2026

dsh plugin --profile web add @jingzechen/dsh-beacon

by a2d2-dev

Standalone WorkBuddy account and model provider plugin for DeepSeek Harness

Manifest valid

★ 3

↓ 62/wk

Apache-2.0

TypeScript

Oct 19, 2026

dsh plugin --profile web add dsh-workbuddy

by zdk119746

可以在 DSH 中使用 WorkBuddy 里面的模型

Development & InfrastructureManifest valid

★ 3

↓ 441/wk

MIT

JavaScript

Oct 12, 2026

dsh plugin --profile web add dsh-llm-workbuddy