前言¶
在 DeepSeek Harness(DSH)里选技能或斜杠命令时,菜单里看到的是各条目的 description。内置 office 技能、agent-preset 技能以及 /acp 等命令的说明多为英文,中文用户需要对照文档或凭记忆操作。手动改每个技能的 frontmatter 或 fork 官方 bundle 成本高,且宿主升级后容易与上游冲突。
下面介绍的 dsh-skill-desc-zh(包名 dsh-skill-desc-zh@0.6.0,维护者 zzzzyppp)只做一件事:把目标技能与命令的列表描述翻译成中文,执行逻辑与正文不变;需要时一键恢复英文。v0.6.0 起还在设置里提供 Better Skill 单入口,集中管理描述中文化、第三方插件更新与用户技能 CRUD。
这是什么¶
- 定位:DSH 客户端插件(
dsh.client.platform="web"),零额外 npm 依赖。 - 宿主要求:DSH ≥
0.2.1-rc.2(desktop profile)。 - 对外接口:单个工具
skill_desc_zh,通过action区分 8 种操作;设置页 id 为skill-desc-zh,左侧导航为 Better Skill(order 16)。
设计原则是 只改描述、不改正文:global 层 office 技能用 provider 透传 content;preset 技能在项目 .dsh/skills/ 写带标记的影子目录,只改 description;斜杠命令在 agent scope 注册描述影子,handler 仍委托原实现。
核心功能¶
描述中文化¶
安装并完成 bootstrap 后,插件会捕获 12 个目标技能 + 3 条命令(配置含 agent-teams 时还会纳入动态 agent-teams-*),批量调用宿主 LLM 翻译;失败时回落随包词典 lib/dictionary.zh.json。
| 层 | 代表技能 | 机制 | 是否写磁盘 |
|---|---|---|---|
| global | 7 个 office + 透传类处理 | global skill provider(rank 50) | 否 |
| preset | 4 个 agent-preset | 项目内影子目录 | 是(仅 .dsh/skills/) |
| runtime | browser-skill |
agent 层 provider 覆盖描述 | 否 |
| 命令 | /acp、/acp-cache、/agent-teams |
agent 菜单中文,global 视角仍英文 | 否 |
指纹未变时 apply 复用缓存,不重复调模型。restore 下架 provider、命令影子注销,preset 影子经 safe-delete-trash 进废纸篓;再 apply 即可恢复中文。
Better Skill 设置页(v0.6.0)¶
设置 → Better Skill 内三个 Tab,共用同一套 controller 与 HTTP 后端:
- 描述中文化:状态、覆盖清单、自检、应用、还原、刷新、重译。
- 插件管理(v0.4.0):列出 profile 已装第三方插件,检查 npm 最新版并一键更新;官方 bundle 与
link:本地插件不会被更新。 - 技能管理(v0.5.0):对
$HOME/.dsh/skills与<project>/.dsh/skills下可写技能做创建、编辑、禁用、删除、恢复;内置技能只读;删除只进回收站。
升级与安全边界¶
宿主版本变化时:先还原旧影子、清空旧译文,再重译;翻译失败保持英文,不写半成品。代码中删除只走 ~/.dsh/skills/safe-delete-trash/trash.mjs,无直接 rm。只有带 .skill-desc-zh.json 标记的影子目录才会被管理。
状态与日志:~/.dsh/.skill-desc-zh/state.json(v3,旧版自动迁移)、events.ndjson。
安装与启用¶
DSH desktop profile 由 Electron 应用独占管理,不要用 CLI dsh plugin --profile desktop add;应使用应用内 plugin_manager。
1、安装前预检¶
按 ~/.dsh/AGENTS.md,安装任何插件前先跑兼容性检查:
node ~/dsh-plugins/skill-desc-zh/scripts/preflight.mjs
或等价命令:
node ~/.dsh/skills/dsh-plugin-preinstall-audit/audit.mjs --profile desktop \
~/dsh-plugins/skill-desc-zh
退出码 0 可继续,2 有警告需确认,1 有阻塞项则不应安装。本地目录包在 audit 中可能显示「未验证」,需如实评估后再装。
2、应用内安装 bundle¶
本地源码需传绝对路径,宿主会记为 link: 依赖:
plugin_manager install_bundle
target: ~/dsh-plugins/skill-desc-zh
安装后确认:
plugin_manager list_plugins
→ {"entryId":"include:skill-desc-zh","enabled":true,"fiberPhase":"active"}
cordis_inspect_query(platform=host, provider=Tool, method=listTools)
→ 应看到 skill_desc_zh
Better Skill 入口与三个 Tab 需重启 DSH 后才会出现;若 link: 源码已升级,运行中进程仍可能是旧代码,同样需重启。技能目录快照有时要到下一个会话才刷新。
3、常用配置¶
在 cordis.patch.yml 的 config 中(节选):
| 键 | 默认 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
engine |
"auto" |
auto / llm / dictionary |
translatePreset |
true |
是否处理 4 个 agent-preset |
restoreOnQuit |
false |
退出时是否自动还原英文 |
targets.commands |
["acp","acp-cache","agent-teams"] |
设为 [] 可关闭命令中文化 |
llm.provider / llm.model 留空时使用当前会话默认模型;llm.timeoutMs 默认 30000。
典型用法¶
通过工具 skill_desc_zh¶
所有操作同一工具,action 必填;与 Better Skill 各 Tab 按钮语义一致。
{ "action": "status" }
{ "action": "apply" }
{ "action": "restore", "dryRun": true }
{ "action": "restore" }
{ "action": "retranslate", "names": ["office-render"] }
{ "action": "refresh" }
{ "action": "doctor" }
{ "action": "plugins" }
{ "action": "skills" }
可选参数:names(限定技能)、projectRoot(默认向上找含 .git 的根)、dryRun(restore 预演)、force(强制重译)。
status 只读,返回各技能机制、指纹、影子路径与命令层状态。日常启用中文执行 apply;要恢复菜单英文执行 restore。怀疑译文过时可 retranslate;环境异常先跑 doctor。
通过设置页¶
重启后在 Better Skill 对应 Tab 点「应用」「还原」等即可,无需记 JSON。插件管理 Tab 的更新走 HTTP 后端,与 plugins action 列表数据一致;技能管理 Tab 对应 skills action 的 CRUD 能力。
适用场景与注意¶
适合:长期在 desktop 使用 DSH、希望技能列表与 agent 内斜杠命令说明为中文,又希望随时还原英文、不在运行时改技能正文的用户;需要在同一设置页维护 $HOME/.dsh/skills 与项目技能、或检查第三方插件 npm 更新的场景。
注意:
- 插件以当前 DSH 进程权限运行,安装前应阅读源码与 MIT 许可证,确认
link:路径可信。 - preset 影子会写入项目
.dsh/skills/,若使用版本控制,需自行决定是否忽略或提交。 projectAllowlist默认[],$HOME下项目默认可写影子;其他路径需在配置中显式允许。- 社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系;星标与版本以仓库与安装时 bundle 为准。
结尾¶
dsh-skill-desc-zh 把 DSH 内置技能与常用斜杠命令的菜单描述做成可逆的中文化,并在 Better Skill 里补上插件与技能管理,减少「只看英文 description 操作」的摩擦。进一步了解实现细节与验证记录见仓库 README。