dsh-scnet-connect
把 SCNet 模型接入 DeepSeek Harness,可免客户端登录,使用免费模型(SCNet-Max,基座基本可确定为 DeepSeek Flash)
安裝
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Phoeky/dsh-scnet-connect說明文件
閱讀完整 README ↗使用
在 DSH 的模型选择器里选 SCNet Connect → SCNet-Max。
设置页可以:
| 功能 | 说明 |
|---|---|
| 查看账号 | 用户名、ID、脱敏手机号、登录态剩余天数 |
| 登录 / 退出 | 短信登录;退出后插件停止供 Key,可随时「恢复使用」 |
| 只显示免费模型 | 默认开启。关闭后会把目录里所有模型都注册出来(可能产生费用) |
| 刷新模型 | 重新读模型目录并用网关校验可用性 |

配置
全部有默认值,一般不用改。需要时在 profile 的 cordis.patch.yml 里给 entry 加 config:
- id: scnet-connect
name: dsh-scnet-connect
config:
freeOnly: true # 只注册免费模型(默认开)
credentialSource: auto # auto | client | login
modelIds: '' # 逗号分隔;留空 = 自动发现
contextWindow: 0 # 0 = 跟随目录/默认
maxTokens: 0 # 0 = 跟随目录/默认
全部字段
| 字段 | 默认 | 说明 |
|---|---|---|
credentialSource | auto | auto 先客户端再登录;client 只用客户端;login 只用设置页登录 |
freeOnly | true | 只注册 priceLabel=free 的模型 |
credentialDir | 空 | 默认 ~/.sclaw/agent/scnet-credentials |
apiKey | 空 | 直接指定 Key(会明文存在配置文件里) |
baseUrl | https://api.scnet.cn/api/llm/v1 | 网关地址 |
modelIds | 空 | 指定模型 id,逗号分隔 |
modelName | 空 | 自定义显示名(仅单模型时生效) |
contextWindow / maxTokens | 0 | 覆盖上下文/输出上限 |
inputImages | true | 是否声明接受图片 |
reasoning | true | 是否声明支持思考等级 |
verifyWithGateway | true | 刷新时用 GET /models 校验 |
retryOnTransientErrors | true | 把 SCNet「5xx 却标成 invalid_request_error」的瞬时抖动改写成可重试的服务端错误(见下) |
关于 retryOnTransientErrors
SCNet 在推理实例切换/回收时会返回这种响应:
HTTP 503
{"error":{"message":"The model's routing or availability changed while processing the request. Please try again.","type":"invalid_request_error","code":"10008"}}
状态码是 5xx,但响应体 type 写的是 invalid_request_error。DSH 的错误归类按正则顺序扫描文本,invalid.?request 排在 5xx → SERVER 前面,于是把它判成 INVALID_REQUEST(不可重试),一次退避都不做,本轮直接失败。
插件默认把这层归一化打开:只针对「状态码 ≥ 500 且 type 是 invalid_request_error」的响应,把 type 改写为 api_error(状态码与 message 原样保留),让归类落到 SERVER,交给 DSH 的 5 次指数退避重试。
刻意不碰的:真正的 400(如参数错误 10013)、401/403/402/429、以及 2xx 流式响应。
实测(本地假网关,前 2 次返回上述 503):
| 配置 | chat 请求数 | 结果 |
|---|---|---|
retryOnTransientErrors: false | 2(无重试) | 失败,code: INVALID_REQUEST |
retryOnTransientErrors: true(默认) | 4(2 次 503 后成功) | 正常完成 |