Eligahyu / deepseek-peak-valley-router

목록에 있음

DeepSeek Harness 峰谷定价自动模型路由插件:高峰自动用 deepseek-v4-flash 省钱,空闲自动用 deepseek-v4-pro 提质量,用户显式选择始终优先

main모델 소스 보기

설치

npx -y @deepseek-ai/dsh plugin --profile web add github:Eligahyu/deepseek-peak-valley-router

이 설치 명령은 GitHub 저장소 주소에서 생성된 확인되지 않은 시작점입니다.

README

유지 관리자가 작성한 문서 스냅샷입니다.

GitHub에서 보기 ↗
커밋 6e1ee9f동기화 2026. 8. 18.

deepseek-peak-valley-router

English | 简体中文

DeepSeek Harness 的峰谷定价自动模型路由插件:自动识别 DeepSeek API 当前处于高峰还是空闲时段,并据此自动选择模型——高峰时段用便宜的 deepseek-v4-flash 省钱,空闲时段用更强的 deepseek-v4-pro 提质量。你显式选择的模型始终优先,插件绝不剥夺你的选择权。

背景:DeepSeek 自 2026-08-17 起对 V4 系列 API 实行峰谷定价——高峰时段价格为空闲时段的 2 倍。官方高峰时段按北京时间定义为 09:00-12:0014:00-18:00,其余为空闲时段。本插件据此自动调度,无需手动换模型。

功能

  • 自动识别峰谷:参考时区(默认 Asia/Shanghai,可配置)换算任意系统时区/夏令时下的当前时刻,判定高峰/空闲
  • 自动路由:高峰 → deepseek-v4-flash;空闲 → deepseek-v4-pro
  • 用户选择优先:你在模型选择器里显式选择的模型会被直接路由到(同一 provider 下,无论请求当前配置是什么),通过监听 agent-default-model 设置的变更事件识别
  • 不越界:非 DeepSeek 官方 provider、非这两个 V4 型号的请求一律不动
  • 可审计:每次切换都是 agent/request 瀑布的正式返回,记录进会话 request/header 事件,不是静默漂移
  • 对话级工具:
    • peakvalley_status — 查询当前时段、参考时区时间、目标模型、路由模式(auto / respect)、你显式选择的模型
    • peakvalley_reset — 恢复自动路由(清除内存中的用户选择记录,直到你再次在界面选模型)
  • 健壮性:非法 timeZone 配置自动回退默认时区并告警,绝不会让请求失败;启动兜底采用懒加载,与宿主服务加载顺序无关
  • 边界处理:从 pro 切到 flash 时自动丢弃 reasoningEffort(flash 可能仅支持 off),避免请求被拒绝

时段规则(官方)

时段北京时间定价自动路由
高峰09:00–12:00、14:00–18:00全价(空闲的 2 倍)deepseek-v4-flash
空闲其余时间半价deepseek-v4-pro

价格以 DeepSeek 官方公告为准,见文末参考链接。若官方调整时段,修改 lib/timezone.js 中的 PEAK_WINDOWS 即可。

安装

方式 A:动态插件(推荐试用,无需重启)

在 Harness 对话里用 cordis_define 工具创建插件,把 dynamic/host-code.jsHOST_CODE 的完整内容粘贴到 code.host 参数,然后 cordis_run 激活即可。

方式 B:组合插件(官方 bundle 安装,永久生效,需要重启)

本包是标准 DSH bundle(声明了 dsh.bundlecordis.patch.yml),用官方安装路径即可:

# 本地 checkout
dsh plugin --profile web add ./deepseek-peak-valley-router

# 或从 GitHub
dsh plugin --profile web add github:Eligahyu/deepseek-peak-valley-router

# 发布到 npm 后(推荐,无需构建授权):
dsh plugin --profile web add deepseek-peak-valley-router

dsh --profile web   # 重启生效

时区配置(可选,默认 Asia/Shanghai):在 profile 自己的补丁层覆盖即可:

# ~/.dsh/profiles/web/cordis.patch.yml 追加
- id: deepseek-peak-valley-router
  config:
    timeZone: 'America/New_York'

依赖:运行在 DeepSeek Harness 内,@deepseek-ai/dsh-tools 由宿主提供(见 package.json 的 peerDependencies),经 launcher 维护的扁平模块回退自动解析,无需手动安装。

行为规则(优先级从高到低)

  1. 用户显式选择的模型 —— 永远优先。你在模型选择器里选的每个模型都会写入 agent-default-model 设置,插件监听该设置的变更事件;一旦检测到,同一 provider 下的所有请求都直接路由到你选择的模型(请求当前配置来自会话/子代理的冻结值时也不例外)。插件启动后首个请求若发现默认模型已是 pro(非出厂默认 flash),也会视为你的历史选择。
  2. 自动路由(默认)。未检测到显式选择时,按参考时区自动切换。
  3. 不越界。非 DeepSeek provider 或非 V4 双型号的请求原样放行。

工作原理

  • 时区换算:lib/timezone.jsIntl.DateTimeFormat(IANA 时区,hourCycle: 'h23')把机器墙钟时间换算到参考时区,任何系统时区/夏令时下都正确;非法时区回退默认时区,Intl 不可用时回退 UTC+8 偏移(Asia/Shanghai 无夏令时)——请求路径上绝不抛错。
  • 路由缝:挂接 agent/request 瀑布事件——next() 产出冻结的 LlmCallConfig,返回替换对象即完成切换,循环会把切换记录进 request/header
  • 选择权:用户显式选择由 Harness 自身的会话模型选择机制(installModelSelection)保证优先;插件在自身 respect 检查里主动路由到用户选择,双保险。

已知运行时说明:插件激活之前就已创建的会话,其模型由会话自身的"选择冻结"机制主导——你手动选模型立即生效且插件尊重;自动路由在下次页面刷新/重连(agent 重建)后对该会话生效,对新会话和所有子代理立即生效。这是 Harness 模型路由架构(冻结配置 + 会话选择优先)的既定行为。

双版本差异:动态版额外暴露 harness.handle('peak-valley-status') Host 通道(供后续 Client UI 查询);组合版没有 Host 通道,状态查询通过对话级工具 peakvalley_status 完成。其余行为完全一致。

验证

  • 运行测试:npm test(Node ≥ 20,node --test,21 个用例:时区纯逻辑 + 路由行为)
  • 启动后看日志:进入高峰/空闲时打印 peak-valley: 进入高峰时段(...),DeepSeek 模型路由 -> deepseek-v4-flash;每次切换打印 peak-valley: deepseek-v4-flash -> deepseek-v4-pro (...)
  • 对话中调用 peakvalley_status 查看当前状态
  • 会话日志的 request/header 事件记录每个请求实际使用的模型

目录结构

deepseek-peak-valley-router/
├── .github/workflows/test.yml # CI:Node 20/22/24 上自动跑 node --test
├── cordis.patch.yml           # bundle patch(官方 dsh plugin add 安装入口)
├── lib/
│   ├── index.js               # 组合安装版插件(ESM,配置文件读 config.timeZone)
│   └── timezone.js            # 纯逻辑:时区换算 + 峰谷判定(零依赖,可独立测试)
├── dynamic/
│   └── host-code.js           # 动态安装版(cordis_define code.host 原文)
├── test/
│   ├── timezone.test.js       # 时区换算、边界时刻、跨午夜
│   └── router.test.js         # 路由行为:自动路由/用户选择优先/时区容错/工具
├── package.json
├── CHANGELOG.md
├── README.md                  # 中文文档
├── README.en.md               # English docs
└── LICENSE

免责声明

  • 峰谷时段、价格以 DeepSeek 官方公告 为准;本插件按公告实现,不保证与未来价格政策一致。
  • 自动切换模型可能改变回答质量/行为;重要任务请留意实际使用的模型(会话 request/header 可查)。
  • 本插件与 DeepSeek 官方无任何隶属关系,非官方作品。

参考

License

MIT

프로젝트 파일 및 신호

표시된 항목은 디렉터리 스냅샷에서 감지된 공개 저장소 신호입니다.

테스트감지됨

저장소 정보

언어
JavaScript
라이선스
MIT
마지막 업데이트
2026. 8. 17. PM 4:01

신중하게 설치하기

소스 코드, 권한, 수명 주기 스크립트, 의존성 및 네트워크 접근을 검토하고 신뢰하지 않는 플러그인은 격리 환경에서 테스트하세요.