DeepSeek Harness plugin

dsh-workbuddy-experts

Reuse the WorkBuddy experts marketplace in DeepSeek Harness: each session picks an expert via an in-composer select; the chosen expert's persona enters that session's system prompt and its bundled

Jump to install

Source facts

Repository
me9rez/dsh-workbuddy-experts
Latest update
Aug 20, 2026
Category
Plugin Markets & Managers
GitHub stars
0
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/me9rez/dsh-workbuddy-experts
Plugin: dsh-workbuddy-experts
Author: me9rez

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer2 files
README.mdSource · read only

dsh-workbuddy-experts

在 DeepSeek Harness(dsh)中复用 WorkBuddy 专家市场。每个会话在输入框旁边都会有一个 专家 选择器;选择一个专家后,该专家的「人设(persona)」会被注入到会话的系统提示中(合并模式——dsh 工具链保持不变),且 无需为每个专家维护单独的预设。选择状态按会话持久化,刷新和完整重启后依然保留。

本项目改编自可用的 dsh-agent-teams 插件结构 (host + client 打包),并遵循 DeepSeek Harness 插件契约 (dsh.bundle.patch + dsh.client)。

工作原理

WorkBuddy 专家概念dsh 中的等价实现(本插件)
plugin.json 清单 + agents/*.md 人设扫描进内存的 ExpertEntry 目录(仅 agent)
在会话开始时注入人设全局一段 expert:personatext 为函数:每步按 context.agent.id 读内存表返回该会话所选专家的人设(order 0,非 complete,保留 harness 身份 + 全部 dsh 工具)
「切换专家」更新内存人设表 + 技能 provider invalidate()下一次模型调用步骤生效(dsh 每个步骤都重新组装 system prompt)
按会话状态在重启后保留SelectionStore~/.dsh-workbuddy-experts.json,以会话 id 为键;启动时预填人设表 + 刷技能目录
技能(该专家的 skills/全局 scope 门控 providerlist(options.scope) → 会话 → 所选专家 → 只返回其技能(按会话隔离,见 <available_skills>
Web GUI 开关ExpertSelect 注入 conversation.input.right,通过 /plugins/dsh-workbuddy-experts/* HTTP 路由与 host 通信

范围(v1):仅支持独立专家expertType: "agent")。团队(teams)和连接器(connectors)会被忽略。

更多文档

  • [docs/architecture.md](docs/architecture.md) — 最终架构
  • [docs/layout-debug.md](docs/layout-debug.md) — UI 布局/交互排查记录(下拉定位、input 槽位、portal 外点关闭)
  • [docs/debug-persona-skills.md](docs/debug-persona-skills.md) — 人设/技能"跟随切换"排障记录

目录结构

src/
├── index.ts            host 入口:配置/注入/应用 + 接线
├── catalog.ts          纯逻辑:扫描市场、解析清单、规范化人设
├── persona.ts          按 agent 的 systemPrompt.section 注入
├── state.ts            纯逻辑:按会话的选择持久化
└── client/
    ├── index.tsx       client 入口:插槽注入
    ├── ExpertSelect.tsx
    ├── ExpertSelect.module.css
    └── service.ts      host HTTP 客户端
cordis.patch.yml        将插件挂载进某个 profile 的 host 组合
scripts/verify.mjs      纯逻辑的离线冒烟测试

构建

要求:一份 DeepSeek Harness 源码检出,其 lib 构建产物为最新,以便 @deepseek-ai/* 对等类型可被解析。按照 dsh-agent-teams 开发指南,将你导入的包链接进 node_modules

npm i  # 或 pnpm install(devDependencies:typescript@^5.9、tsdown@0.22、lightningcss、react)
pnpm typecheck   # 两个 tsc 程序:host(src)+ client(src/client)
pnpm build       # tsc host → tsc client → tsdown(lib/client.js CJS 闭包工厂)
pnpm verify      # 离线冒烟测试(纯逻辑,无需 dsh 运行时)

> 开发期的类型链接针对的是 DSH 源码检出的构建产物 >(packages/<pkg>/lib/types),而不是已安装的 staging 副本。如果没有 DSH > 源码检出,你将无法对 client 包进行类型检查/构建。

安装到 profile 后重启

dsh plugin add 底层用 pnpm 安装,因此可以直接从 GitHub 仓库安装:

# 从 GitHub 仓库安装(pnpm 会解析 github: 说明符)
dsh plugin --profile <name> add github:me9rez/dsh-workbuddy-experts

# 或指定分支:github:me9rez/dsh-workbuddy-experts#master
# 重启 dsh(web 或 headless)—— 新会话会显示专家选择器

> 本地开发/离线场景也可用本地路径:dsh plugin --profile <name> add /absolute/path/to/dsh-workbuddy-experts

配置(cordis.patch.yml)

默认值含义
root~/.workbuddy/plugins/marketplaces/experts/pluginsWorkBuddy 专家市场所在的路径
stateFile~/.dsh-workbuddy-experts.json用于按会话保存选择状态的绝对/~ 文件(跨重启持久化)
logFile~/.dsh-workbuddy-experts.log插件自身诊断日志文件(追加写,含选择/注入/技能挂载/agent/created 重放等 [workbuddy-experts] 记录)
maxPersonaBytes65536人设超过该大小会被带标记地截断
personaOrder0deployment:persona 插槽的 order

已验证内容

  • pnpm build 构建通过(tsc host + tsc client + tsdown client bundle);

lib/client.js 为正确的 window.__ModuleLoader__.load(...) 形态。

  • ✅ 离线:市场扫描(仅 agent 过滤、清单/agenda 解析、人设 + 技能目录发现)、

人设规范化(去除 frontmatter、${CODEBUDDY_PLUGIN_ROOT} 展开、 未知变量标记)、选择持久化的往返测试(scripts/verify.mjsnode scripts/verify.mjs)。

  • ✅ 面向真实市场:扫描 ...\experts\plugins → 找到 5 个独立专家

(aihot、fbsir-super-partner、meituan-living-assistant、 remotion-video-generator、senior-developer);团队/不可读目录被排除。

  • 已在 dsh web 实跑验证:选中专家后,会话的 system prompt 人设

<available_skills> 技能 均跟随切换动态更新;未选专家会话看不到他人技能 (按会话隔离)。

已知边界(v1)

  • 仅单专家expertType === "agent";专家团(team)与连接器(connectors)本期忽略。
  • 人设合并注入,不 complete 接管:用一个全局段 expert:persona(order 0,

text 为函数、每步按会话读内存表返回),非完整覆盖 → 保留 harness 身份与全部 dsh 工具;切换专家下一步即生效。

  • 技能按会话隔离:全局 scope 门控 provider,list(options.scope) → 会话 → 所选专家

→ 只返回其技能;providerControl.invalidate() 刷缓存。选中专家的技能进入该会话 <available_skills>,其它会话不可见。

  • 会话 id 作为持久化键~/.dsh-workbuddy-experts.json,重启间会话 id 稳定。
  • 输入框插槽 conversation.input.rightEXPERT_SLOT 常量,输入卡内侧右侧,紧挨

模型座);不同 profile 暴露的输入座位需自行调整。

> 完整设计见 [docs/architecture.md](docs/architecture.md)。 > 人设/技能与 UI 的排障记录见 [docs/debug-persona-skills.md](docs/debug-persona-skills.md)、[docs/layout-debug.md](docs/layout-debug.md)。