DSH WorkBuddy Connect
corrinehu/dsh-workbuddy-connect将 WorkBuddy 桌面 App 包含的模型自动接入 DeepSeek Harness,在 DSH 对话窗口里零配置使用。
模型产出文本的三个语言通道——工具调用描述(所有工具调用卡片标题,含 PTC 类预设的 run_code)、思考与回复——各自可跟随网页界面语言、强制指定语言或关闭(默认仅描述通道跟随界面语言)。host 侧注入一条全局 runtime-context 提示指示,client 半上报界面语言,设置里的插件卡片负责切换。
Agent 语言控制 —— 让 DeepSeek Harness (DSH) 里模型的工具描述、思考、回复输出三个通道的语言各自可配:跟随界面语言、强制指定语言、或关闭,支持一键全部跟随/一键全关。默认只开工具描述通道(含 PTC 模式
run_code的description,即工具卡片标题)跟随界面语言,替代永远英文。
DSH 里每一次工具调用的 description 参数都是必填的,而且原样显示在 UI 的调用卡片上(PTC 模式下它就是 run_code 卡片的标题)。但工具 schema 里对这个字段的说明全是英文措辞加英文示例("5-10 words … Examples: 'Count TODO markers…'"),所以模型默认永远写英文描述——界面是中文的用户,看每一步都在看英文。
本插件只改提示词侧:注册一条全局动态 runtime-context 指示,告诉模型当前 GUI 显示语言、并要求所有工具调用描述用该语言书写。不修改任何 preset、persona 或工具 schema(它们是部署资产,升级会覆盖)。
| 模式 / preset | 支持 | 说明 |
|---|---|---|
standard(标准模式) | ✅ | |
ptc(PTC 模式,旧名 code) | ✅ | run_code 的 description 同样覆盖 |
cordis(创造模式) | ✅ | |
用户自建 preset(含 ptc-cordis、dsh-gitbash-shell 的 gitbash 变体等) | ✅ | 挂在主机面,对进程内所有未封闭提示的 preset 生效 |
| 智能体团队队员 / 普通子代理(v0.8.0) | ✅ 默认生效 | 队员与子代理的请求同样带上指示;设置里可切「仅主代理」。fork 出的队员会继承主代理已完成回合的历史快照(含已提交的指示),开关不重写历史 |
minimal(极简模式) | ❌(设计如此) | minimal 的 persona 是 complete: true 且压制 runtime context,提示词对一切后挂贡献者封闭——任何提示级插件都无法进入,需要产品侧改动 |
dsh 0.2.1 起,bash / pwsh 工具 schema 带着「Provide description before command in the arguments」指引,让 UI 在工具调用的准备阶段就渲染已到达的描述(run_code 在 alpha.3~alpha.4 曾同样把 description 排到最前,alpha.5 反转回 code 在前并删去对应指引句)。这与本插件正交且互补:
官方 schema 里的英文示例措辞没有变,「界面中文、描述英文」的落差依旧由本插件的描述通道补齐。新工具(如 0.2.1 的 schedule_* 提醒工具)的调用描述同样自动受控:通道是全局的,按工具调用的 description 参数生效,与工具清单增减无关。已对 dsh 0.2.1-alpha.5 复核:systemPrompt.context 签名零变化;CONTEXT_ORDERS 新增 TEAM_IDENTITY: 125(0.2.1-alpha.3),本插件槽位已随之从 125 迁至 130(v0.12.0)。
浏览器(GUI) DSH Host 进程
┌─────────────────────┐ 上报当前界面语言 ┌──────────────────────────────┐
│ locale 运行时 │ ─────────────────▶ │ settings ns「agent-lang」 │
│ (显式选择,或浏览器 │ (只写 uiLocale 字段) │ .uiLocale ← 浏览器上报 │
│ navigator 匹配) │ │ .mode/.forceLocale ← 设置卡片 │
└─────────────────────┘ │ settings ns「locale」(只读) │
│ .preference ← 设置里的显式选择 │
└──────────────┬───────────────┘
│ 每次请求组装时求值
┌──────────────▼───────────────┐
│ systemPrompt.context(全局) │
│ 「用 <语言> 写工具调用描述」 │
└──────────────────────────────┘
systemPrompt.context() —— 与沙箱/审批策略同一个每轮刷新的 runtime-context 快照,渲染在请求末尾,近因盖过工具 schema 里的英文指引;切换界面语言后下一轮请求即生效,无需重启。zh、ja)/ 关闭,并显示当前检测链。dsh plugin --profile web add dsh-agent-lang # npm 公开包
# 源码与 Release: https://github.com/KannaKuron/dsh-agent-lang
纯 JS、零构建、零安装依赖(schemastery 以 peer 声明,经 profile 共享解析),安装不触发构建脚本。装完重启 DSH,打开任意会话即可;设置 → 插件 里可找到「工具描述语言」卡片。
npm pack # 出 tarball
# 在 (dsh home)/profiles/web 里:
pnpm add <tarball 路径> # package.json 的 dsh.bundle.patch 声明会自动挂载
# 重启 DSH
~/.dsh/settings.yaml 出现 agent-lang: 段(uiLocale: zh,页面加载后);ja(或自填标签),描述变日文;切「关闭」回到英文。dsh 0.1.7-rc.2 与 rc.1 已在隔离实例上逐项复核通过(rc.2 的核对记录、逐面零 diff 依据与真机证据见 CHANGELOG v0.7.1,rc.1 见 v0.7.0);0.1.6-alpha.1 的核对记录见 CHANGELOG v0.4.3:
systemPrompt.context() 契约未变:PromptContext 仍是 { name, order, text },order 125(0.2.1-alpha.3 官方占号后已迁 130,见 v0.12.0)仍在官方 CONTEXT_ORDERS 之后;interpolate: false 只作用于 sections,本插件不用。{{...}} 插值风险:三条语言来源(强制标签 / 设置里的显式选择 / 浏览器上报)全部经 BCP47 校验后才进入文本。Config + configForms」,0.1.6 及以前是注册命名空间;设置卡两个座位照旧——settings.plugin.item(≤0.1.6 宿主;0.1.7 上无 owner,静默挂起)与 plugins.bundle.config(按包名 key,0.1.6-alpha.2 起,0.1.7 上实际生效)。"@deepseek-ai/dsh": ">=0.1.0"(标为 optional,避免包管理器把只有预发布版本的 @deepseek-ai/dsh 拉进安装)。该声明让本插件真正被兼容门禁覆盖(此前没有任何这类 peer,等于永不被校验),同时不设上界:插件靠运行时探测跨版本自愈,未来 dsh 升级不会被自动停用。--dsw-radius-* 与焦点环 --dsw-focus-ring-*(指针模态下官方不画环),本插件卡片已按「新令牌 + 旧字面量回退」跟进,≤rc.1 宿主渲染不变;同时修掉一个自首版起就存在的静默缺陷——chevron 探测的 IconChevronDownOutline14 在 0.1.7 里并不存在(官方家族是 …OutlineRegular/…OutlineMedium),卡片因此一直显示文字「▾」,现在改为候选链探测。settings.yaml,0.1.7 起在 profile 的 cordis.patch.yml 用户层:上报先于剔除发生)。硬刷新(⌘/Ctrl+Shift+R)即恢复;日常重启不复发。MIT