前言¶
在 DeepSeek Harness(DSH)里把模型路由指向上交 models.sjtu.edu.cn 时,分钟 Token 上限、请求频率和校内周预算都会成为硬约束。Harness 本身不会按学校侧限流规则替你排队,也不会在触发 HTTP 429 后自动续跑当前模型步骤;多轮对话或长上下文一旦估算偏大,还容易在本地毫无预警地撞限。
下面介绍社区插件 dsh-sjtu-quota(维护者 qzwn521):在 DSH 进程内对选定路由做请求 pacing、本地 Token 记账,并在可恢复的临时 429 后尝试恢复原生 agent 的模型步骤。当前版本为 0.1.1-beta.1 测试版,README 写明尚未被市场收录,且不保证完全避免 429 或反映学校账号真实余额。
这是什么¶
dsh-sjtu-quota 归类为 DSH 社区目录中的「模型推理」类插件。一句话定位:针对上交 API 的 DSH 请求排队与限流恢复——分钟额度不足时等待,临时 429 后自动恢复当前模型步骤(在插件覆盖的调用路径内)。
插件以本地账本统计为主:disclosure 标明 offlineMode: true,不自动上传数据;权限限于 DSH_HOME 下自有账本与锁(或用户配置的 stateFile),不保存 API Key 或聊天正文。项目为 MIT 许可的第三方社区作品,与上海交通大学、DeepSeek 或插件市场无隶属或背书关系。
核心功能¶
资料中列出的能力如下,安装前宜对照 GitHub README 与「边界」一节理解限制。
预设与路由识别¶
- 默认上交预设:300,000 Token/min、10 请求/min、本地七天 1,000,000,000 Token 预算。
- 按
models.sjtu.edu.cn精确识别路由;也可在配置里手动指定路由 ID 与预算,选中路由共享额度。 providers非空时仅保护手动指定的路由;为空时按接口域名识别,不要求路由名为sjtu,也不匹配域名后缀相似的其他站点。
用量估算与修正¶
- 请求前按预计输入与输出上限预留额度,返回后用真实
usage修正;缓存与推理不重复计数。 safetyRatio: 0.9将调度预算设为 270,000 Token/min(在默认 300,000 下),留出估算余量;设为1则使用完整分钟额度。fallbackOutputTokens仅用于请求未指定maxTokens时的预留,不会修改真实输出上限。
429 与恢复¶
- 临时 429:优先采用服务端相对等待时间,其次合理的重置时间,否则等待 61 秒(对应配置项
fallbackWaitMs: 61000)。 - 原生模型步骤恢复没有 README 中的默认「五次」上限说明(与部分通用重试策略不同,以插件实现为准)。
- 周额度、认证或余额耗尽等终态问题不会按临时分钟限流无限重试。
可观测与持久化¶
- 命令
/sjtu-quota显示受保护路由、分钟已用/预留、请求数、排队、冷却和本地统计。 - 等待可取消;统计跨重启保存。默认账本路径为
DSH_HOME/storages/sjtu-quota/ledger.json,未设置DSH_HOME时使用用户目录下的.dsh。
覆盖范围¶
- 只覆盖官方
llm/stream调用;自动恢复针对原生 agent 请求错误接口。直接发 HTTP 的第三方插件不在范围内。 - 一份账本仅允许一个 Host 持有;尚无多电脑协调或多 Key 独立分组。
安装与启用¶
Harness 要求 Node >=22.19.0,插件 engines.dsh 为 0.1.5-rc.2 或 0.2.0-rc.2。安装命令以 README 为准:
dsh plugin --profile web add github:qzwn521/dsh-sjtu-quota
Desktop 用户将 web 换为当前 desktop profile。启用后运行 /sjtu-quota,先确认受保护路由是否正确。
卸载(保留本地账本):
dsh plugin --profile web remove dsh-sjtu-quota
发布前开发者可从项目目录安装本地包:dsh plugin --profile desktop add .,或使用打包后的 .tgz 测试;普通用户以 GitHub 安装命令为准即可。
配置要点¶
新版 DSH 使用插件原生 Config 设置表单;旧版使用 sjtu-quota 设置命名空间。profile patch 示例:
- id: sjtu-quota
config:
enabled: true
autoDetect: true
endpointHosts: [models.sjtu.edu.cn]
providers: []
tokensPerMinute: 300000
requestsPerMinute: 10
weeklyTokens: 1000000000
safetyRatio: 0.9
maxConcurrent: 1
estimateMultiplier: 1.15
fallbackOutputTokens: 8192
fallbackWaitMs: 61000
注意:providers 填的是路由 ID,不是模型名称。stateFile 可指定账本绝对路径,修改后需重启插件;卸载不会删除账本。
典型用法¶
- 按上文命令安装并启用插件。
- 在 DSH 中配置指向上交域名的 LLM 路由(或按需在
providers中写明路由 ID)。 - 执行
/sjtu-quota,核对受保护路由、分钟用量、排队与七天本地统计。 - 正常发起 agent 对话;若遇临时 429,插件按策略等待并尝试恢复当前步骤;等待过程中可按 Harness 提供的方式取消(插件声明等待可取消)。
README 记载的真实冒烟测试:Qwen 单次固定测试输入共 22 Token,返回正文和用量;未主动制造线上 429,长期真实任务稳定性仍待 Beta 验收。
适用场景与注意¶
适合谁: 在 DSH 内稳定使用上交 models.sjtu.edu.cn、希望减少因分钟限流打断工作流、并需要在本地查看用量与排队状态的开发者。
务必知晓的边界:
- 请求前是估算,不能保证完全不出现 429;单次请求超过预算需压缩上下文或调整输出上限,等待无法解决。
- 七天统计只覆盖本插件运行后、所选路由上的本地记账,不是学校账号真实周余额;不含其他程序、电脑和安装前用量。
- 插件以当前 DSH 进程权限运行,会观察并延迟选定路由上的模型请求;安装前应自行查看 源码 与 MIT 许可证,确认与自身合规要求一致。
社区插件目录托管在独立站点(如 SkillHub 目录页),与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件是其中面向上交限流场景的一块拼图。