在 DeepSeek Harness (DSH) 的插件化架构中,dsh-router-loomy 插件提供了一个将讯飞 Loomy 办公助手云端通道作为供应商接入 dsh-router 的方案。该插件参照 dsh-router-traework 的同构范式编写,将 Loomy 的接口封装为 OpenAI 兼容的格式,供 DSH 核心统一管理。
核心功能¶
本插件主要解决将本地 Loomy 客户端登录态接入云端通道的问题,核心能力如下:
- OpenAI Chat Completions 兼容:提供单一端点
POST /chat/completions,完全兼容 OpenAI 的请求与响应格式,支持 SSE 流式响应。 - 自动获取登录态:凭证无需手动粘贴,插件会自动读取本机 Loomy 客户端登录后落盘的
userData/auth-session.json文件。 - 统一路由管理:插件只暴露差异化逻辑(如
status、listModels、generateLoginUrl等),选号、冷却、换号、别名、模型启用状态、积分缓存等通用能力由 dsh-router 核心统一管理。 - 上游截断检测:针对上游静默截断(发送
[DONE]但不返回finish_reason)的问题,插件实现了guardUpstreamStream收尾校验逻辑。
安装与启用¶
安装插件需要使用 npm。
npm install dsh-router-loomy
安装完成后,需要在 Profile 的配置中注册该插件。在 Profile 的 package.json 的 dsh.profile.bundles 字段中添加 'dsh-router-loomy':
{
"dsh": {
"profile": {
"bundles": [
"dsh-router-loomy"
]
}
}
}
重启 DSH 进程后,日志中若出现 [dsh-router-loomy] registered router.suppliers: loomy,表示安装成功。
登录与凭证获取¶
Loomy 的凭证不在网页中,而是存储在本机客户端登录后生成的文件里。本插件通过启动本地客户端并读取文件来实现登录态获取。
- 在 dsh-router 面板的 Loomy 卡片点击 「添加链接」。
- 插件会自动启动本机 Loomy 客户端,并给出一个指向「客户端状态页」的链接。
- 在弹出的客户端窗口中完成登录。
- 回到面板点击 「完成添加」。插件会读取
auth-session.json并完成账号注册。
如果客户端之前已登录,面板会自动扫描该文件并显示账号,无需重复操作。对于无法自动探测客户端路径的情况,可以通过设置环境变量 LOOMY_CLIENT_EXE 指定路径。
上游契约与截断处理¶
插件对接的上游端点为 POST https://loomyad.xunfei.cn/api/v1/chat/completions。请求必须携带特定的追踪头(如 traceparent、chatid、msgid、loomy-version、invokeorigin)。
上游响应采用 SSE 流式格式,末尾帧包含 usage 信息(含 points_consumed)。需要注意的是,上游有时会在生成未结束时静默发送 data: [DONE] 而不提供 finish_reason。插件对此进行了如下处理:
- 正常收尾:有
finish_reason且有正文或工具调用,直接放行。 - 检测截断:无
finish_reason且completion_tokens < max_tokens,插件会拦截[DONE],触发核心报错并自动重试(重试会重发整段上下文,成本较高)。 - 长度截断:无
finish_reason但completion_tokens >= max_tokens,直接补一帧finish_reason: "length"放行。
注意事项¶
- 依赖环境:插件依赖
@deepseek-ai/cordis和cordis(由宿主注入),Node.js 版本要求为 20 及以上。 - 重试成本:由于截断检测的重试逻辑会重发整段上下文,可能导致较高的积分消耗。同一账号连续截断 2 次后,插件将停止重试并标记为长度截断。
- 许可证:本插件采用 MIT 许可证。
相关链接¶
- 插件目录:https://www.skillhub.cn/plugins/2404723600/dsh-router-loomy
- GitHub 仓库:https://github.com/2404723600/dsh-router-loomy