前言¶
在 DSH(DeepSeek Harness)里做智能体时,常见做法是自己在对话里拼 HTTP 请求、记端口和路径,再去调本机上的漫画翻译后端。Saber-Translator 本身提供 REST API,但「查书架、排翻译、看任务进度、取译图、改术语表」仍需要你对照文档逐项调用。下面介绍社区插件 dsh-plugin-saber(仓库 Luca-42/saber-dsh-plugin),由维护者 Luca-42 发布:它把 Saber 的 HTTP 能力注册成一组 DSH 工具,让模型在自然语言意图下完成读写,并在结果里说明实际执行了什么。
这是什么¶
dsh-plugin-saber 是面向 web profile 的 DSH 插件,npm 包名为 dsh-plugin-saber(当前资料中的版本为 0.2.0,许可证 MIT)。定位是:通过本机 Saber-Translator 的 HTTP API,驱动漫画翻译全流程,而不是在 DSH 内嵌翻译模型。插件对 Saber 3.5+(v2 后端) 提供完整链路;对 3.3.x(legacy) 则只保证只读查询,任务类工具会明确说明该版本没有任务 API。
核心功能¶
插件按工具拆分能力。写操作在符合请求时会直接执行,不逐次确认;不支持的能力返回中文说明,而不是抛出 404 堆栈。
| 工具 | 作用 | Saber 3.5+ | Saber 3.3.x |
|---|---|---|---|
saber_status |
版本线、存储版本、端口、书架、Worker/队列状态 | ✅ | ✅ |
saber_books |
书架列表(search / limit) | ✅ | ✅ |
saber_book |
书详情与章节列表 | ✅ | ✅ |
saber_pages |
章节页面列表(渲染状态、译图有无) | ✅ | ✅(需 bookId) |
saber_translate |
排翻译任务(单章 / 多章 / 整本;standard/hq/proofread/remove_text) | ✅ | ❌ |
saber_jobs |
任务队列或历史列表 | ✅ | ❌ |
saber_job |
单个任务详情(进度、失败项、产物) | ✅ | ❌ |
saber_job_control |
暂停 / 恢复 / 取消 / 重试 / 队列暂停 | ✅ | ❌ |
saber_page_image |
取原图 / 去字图 / 译图,落到临时目录 | ✅ | ❌ |
saber_terms |
读/写术语表与禁翻表 | ✅ | ❌ |
saber_backend |
启动 / 停止 / 状态(仅管理插件自己启动的进程) | ✅ | ✅ |
API 版本由插件自动探测:先访问 /api/v2/health,再访问 /api/server-info。适配层 adapters/v2.js 与 adapters/legacy.js 隔离版本差异,工具层不感知具体 API 版本。
安装与启用¶
推荐使用 npm 已发布包(资料中称安装包约 23 KB,宿主零运行时依赖)。官方安装命令如下:
dsh plugin --profile web add dsh-plugin-saber
安装后需重启 dsh,工具才会注册生效。package.json 要求 Node.js >= 22;与 DSH 的兼容记录在包的 dsh.compatibility 字段(如 0.2.0-rc.2、0.2.1-rc.2、0.2.1-rc.3 标为 compatible)。
从插件市场安装¶
在社区目录 SkillHub 插件页 对应仓库外,README 还给出了独立索引源方式:在 DSH 插件市场里 发现 → 添加索引源,粘贴:
https://luca-42.github.io/saber-dsh-plugin/index.json
然后在市场中找到「Saber 漫画翻译」并安装。
配置¶
配置文件路径:<DSH_HOME>/saber-plugin.config.json(不存在时使用默认值):
{
"baseUrl": "http://127.0.0.1:5000",
"installPath": "D:/play/Saber-Translator-3.5.15-gpu",
"dataDir": "",
"autoStart": false,
"apiFlavor": "auto",
"requestTimeoutMs": 15000
}
环境变量可覆盖:SABER_BASE_URL、SABER_INSTALL_PATH、SABER_DATA_DIR、SABER_PLUGIN_CONFIG。
当 autoStart 为 true 时,若工具发现后端未运行,会尝试在 installPath 下拉起 Saber-Translator.exe --role launcher ...,并等待 /api/v2/health。插件只停止自己启动的进程(记录 PID),不会影响你手动打开的其他 Saber 实例。
典型用法¶
安装并配置 baseUrl(或指向本机 Saber 实际监听地址)后,可在 DSH 对话中让智能体调用上述工具,例如:
- 用
saber_status确认后端版本、端口与队列状态。 - 用
saber_books/saber_book/saber_pages逐级定位要处理的章节与页面。 - 在 3.5+ 上用
saber_translate提交翻译模式(standard、hq、proofread、remove_text 等),用saber_jobs/saber_job查看进度,必要时saber_job_control暂停或重试。 - 用
saber_page_image将原图或译图落到临时目录;用saber_terms维护术语表与禁翻表。
仓库 README 中的自测命令可用于验证插件与 API 契约(非 DSH 运行时必需):
# 打真实后端(只读工具;写工具不会执行)
node test/harness.mjs
# 用进程内 mock 的 /api/v2 验证完整 P1 链路
node test/mock-v2.mjs
适用场景与注意¶
适合谁:已在本地部署 Saber-Translator,希望在 DSH web profile 里用自然语言完成「查书 → 排任务 → 跟进度 → 取图 → 改术语表」,而不想手写每一轮 HTTP 的开发者。
权限与安全:插件以当前 dsh 进程权限运行,写工具会直接改动 Saber 后端状态与术语表;安装前请阅读 GitHub 源码 与 MIT 许可证,确认 baseUrl 指向的是你自己可控的本机服务。
生态说明:DSH 社区插件目录(如 SkillHub)是独立站点,与 DeepSeek / 幻方无官方从属关系;本插件通过 npm 或上述索引源分发,并非「官方应用商店」内置应用。
结尾¶
dsh-plugin-saber 把 Saber-Translator 的 v2 完整链路与 legacy 只读能力封装成 DSH 工具,并支持可选的自动拉起本机 Saber 进程。若你需要在智能体工作流里统一管理漫画翻译任务,可按 README 安装命令启用,并用 saber-plugin.config.json 对齐本机路径与端口。
- 目录页:https://www.skillhub.cn/plugins/Luca-42/saber-dsh-plugin
- GitHub:https://github.com/Luca-42/saber-dsh-plugin
- npm:https://www.npmjs.com/package/dsh-plugin-saber