前言¶
DeepSeek Harness (DSH) 的核心设计理念之一是「一切皆插件」。通过插件,用户可以扩展模型来源。Nous Portal 提供了包含 Hy3、Ox Alpha 等在内的免费模型层。jiesou/dsh-nous-portal-free-provider 这个插件的作用,是将 Nous Portal 的免费层级接入 DSH 的 web profile,通过 OAuth device code 登录流程使用这些模型。
核心功能¶
本插件实现了以下功能:
* OAuth Device Code 登录:通过独立的 CLI 完成授权登录。
* 模型动态发现:启动时从上游 /v1/models 接口抓取模型列表,过滤出价格为 $0 的模型作为目录,不写死 ID。
* Reasoning Effort 支持:暴露上游支持的档位,默认不发送字段,提供 Off 开关。
* 图片 Offload 机制:当图片超过配置大小时,触发 IMAGE_OFFLOAD_REQUIRED,由 DSH 将最旧图片存入 image/offload 并重试。
* Refresh Token 轮换:支持单次使用的 Refresh Token,通过 modifyRecord 锁机制确保并发安全。
安装与启用¶
在终端中执行以下命令安装插件:
dsh plugin --profile web add @jiesou/dsh-nous-portal-free-provider
安装完成后,运行插件自带的 CLI 进行登录:
node ~/.dsh/profiles/web/node_modules/@jiesou/dsh-nous-portal-free-provider/lib/cli.js
登录过程中,请根据终端提示使用 device code 登录。运行中的 dsh 会热加载,无需重启。
CLI 选项¶
登录 CLI 支持以下参数,用于覆盖默认配置:
--portal-url <url> Portal 地址(默认 https://portal.nousresearch.com)
--client-id <id> OAuth client id(默认 hermes-cli)
--scope <scope> 申请的 scope(默认 inference:invoke)
--dsh-home <dir> 凭据文档所在 home(默认 $DSH_HOME 或 ~/.dsh)
--path <file> 凭据文档完整路径,优先于 --dsh-home
配置与机制¶
插件使用 ctx.credentials 统一接口管理凭据。存储结构支持普通 API Key 和 OAuth Grant 两种来源。
插件提供以下 Settings 配置项:
* retryPolicy:模型请求重试策略,默认 always(每次失败都重试)。
* maxRequestImageBytes:单次请求内联的 base64 图片上限,默认 2097152(2 MiB)。
* requestImageMaxBytes:单张图片重编码后的上限,默认 1048576(1 MiB)。
注意事项¶
- 依赖版本:需要 DSH 版本
>=0.2.0-rc.2。 - Token 单次使用:Portal 的 Refresh Token 每次刷新都会生成新 Token,旧 Token 立即作废。若重复提交已用过的旧 Token,服务端会判定令牌被盗并吊销整条会话。因此插件在刷新 Token 时使用了锁机制。若看到
Refresh token reuse detected提示,需按上述步骤重新登录。 - UI 渲染 Bug:Portal 端的 device-code 审批页曾存在渲染 Bug(Issue #47950)。如果授权卡住,请先确认浏览器已登录 Portal 再重试。
- 协议变更:Portal 已下线旧版铸造端点,本插件已适配新版 hermes-cli 的登录流程。
结语¶
该插件为 DSH 用户提供了接入 Nous Portal 免费模型的途径。更多细节与源码可参考:
* GitHub: https://github.com/jiesou/dsh-nous-portal-free-provider
* 目录页: https://www.skillhub.cn/plugins/jiesou/dsh-nous-portal-free-provider