Amouren7 / dsh-model-switch

목록에 있음

DSH Cordis 插件 — 按任务类型自动切换模型(设计/复查→deepseek-v4-pro,日常执行→deepseek-v4-flash)

master모델 소스 보기

설치

pnpm add "file:/path/to/dsh-model-switch/plugins/auto-model-switch"

이 명령은 GitHub 저장소 주소에서 생성됩니다. 실행 전에 업스트림 README와 소스를 검토하고 재현성이 필요하면 release 또는 commit을 고정하세요.

README

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

GitHub에서 보기 ↗
커밋 5937d6c동기화 2026. 8. 18.

dsh-model-switch

DSH 自动模型切换插件 —— 像 Claude Code 的 Auto Model Switching 一样,让 DSH 根据任务类型自动选择模型:关键思考用 pro,日常执行用 flash,省钱、省延迟、还不用手动切。

DSH Cordis License Tests

在 DSH(DeepSeek Harness,Cordis 插件架构)会话中,模型不再固定一个:插件监听每次请求前的路由点,按任务类型在 DeepSeek 官方双模型之间自动切换——

任务类型路由到原因
设计文档、方案评审、复查测试、检查验证deepseek-v4-pro根本性决策需要强推理
写代码、改代码、实现、跑测试、日常问答deepseek-v4-flash快、省、够用

效果

你:请输出用户登录模块的设计方案          → deepseek-v4-pro    (设计 → 强推理)
你:按上面的设计写代码                    → deepseek-v4-flash  (执行 → 快而省)
你:复查测试,检查边界条件                → deepseek-v4-pro    (复查 → 强推理)
你:继续                                  → deepseek-v4-flash  (日常 → 不抖动)

真实会话中的模型切换被记录在 DSH 的 request/header 事件里,全程可见可追溯。

特性

  • 零额外成本:任务类型判定是纯规则引擎(关键词 + 阶段信号),不调用任何额外 LLM 打分
  • 阶段化切换:模式 sticky,同一任务内不抖动——对 KV cache 友好,不浪费输入 token
  • 手动优先:你用 /model 手动选择后,插件自动让位,绝不覆盖你的显式选择
  • 按 agent 隔离:多会话并行互不干扰;subagent/workflow 独立判定
  • 全局生效:注册在 host 层,装一次,所有会话自动可用(无需在 cordis 会话里手动激活)
  • 健壮性:动态插件沙箱兼容(安全日志)、模型目录缺失自动降级、异常永不泄漏

工作原理

用户消息 → agent/pre-step(门控:仅新用户消息边界判定)
        → 判定器 decideMode(按优先级决策任务模式)
        → agent/request(路由器三分支 → 替换本次请求的 provider/model)
        → 模型请求 → request/header 事件(切换落日志)

判定优先级(先命中者胜出):

plan 模式激活        → design(最高)
复查/审查/检查/验证  → review
写代码/实现/修改/运行 → implement(实现词优先于设计词)
设计/方案/规划/文档   → design
其余                 → implement(默认)

路由器三分支

分支条件行为
显式指定会话入口/workflow 固定了模型永久让位
默认或自写基线 == 默认选择 或 == 插件上次写入接管,应用映射
UI 手动选择用户 /model 选了模型让位,尊重用户

设计细节与 DSH 源码依据:见 docs/superpowers/specs/2026-08-14-dsh-auto-model-switch-design.md

安装

方式一:全局固化(推荐)

  1. plugins/auto-model-switch 目录链接进你的 DSH profile(例如 web):
    cd ~/.dsh/profiles/web
    pnpm add "file:/path/to/dsh-model-switch/plugins/auto-model-switch"
    
  2. ~/.dsh/profiles/web/cordis.patch.yml 注册插件实例:
    - insert:
        - id: auto-model-switch
          name: dsh-auto-model-switch
          config: {}
    
  3. 重启 DSH(或等待 HMR 热应用),新会话即自动生效。

方式二:动态插件(调试用)

在 cordis preset 会话中,把 plugins/auto-model-switch/dist/code.host.js 作为 code.host 提交: cordis_definekind:"new")→ cordis_run。会话级生效,重启失效。

配置

当前模型映射与关键词表为代码常量,按需修改:

想改什么改哪里
模型映射(design/review → pro、implement → flash)src/router.jsMODEL_BY_MODE
判定关键词(评审/实现/设计词表)src/decider.jsKEYWORDS
决策优先级src/decider.jsdecideMode

改完跑 npm test(44 个单元测试)确认,然后重新 pnpm add file: 更新 profile 链接。

测试与验证

  • 单元测试:44/44 通过(cd plugins/auto-model-switch && npm test
  • 集成验证:真实 DSH 环境实测通过(实现→flash、复查→pro、连续消息不抖动、工具结果不误判、目录降级与恢复)——见 verification/verification-record-final.md
  • plan 模式进出、/model 手动选择、会话恢复等交互用例已由单测覆盖,真机待补验

项目结构

├── plugins/auto-model-switch/
│   ├── src/          # 源码:decider(判定器)/ router(路由器)/ plugin(Cordis 组装)
│   ├── test/         # 44 个单元测试(node:test,零依赖)
│   ├── lib/          # 固化安装包入口
│   ├── dist/         # 动态插件产物(code.host.js)
│   ├── observer/     # 观测插件(集成验证用)
│   └── verification/ # 验证手册、记录与驱动脚本
├── docs/superpowers/ # 设计文档(spec)与实现计划
└── AGENTS.md         # 项目规则

相关

MIT License

프로젝트 파일 및 신호

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

테스트감지됨
문서감지됨

저장소 정보

언어
JavaScript
라이선스
보고되지 않음
마지막 업데이트
2026. 8. 14. 오전 7:56

신중하게 설치하기

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