deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
dsh-model-router 是一个 DSH 插件,向 harness 注册一个虚拟模型提供商 model-router:它汇聚用户已添加的所有提供商及其模型(按 model id 严格归并),并在每次 LLM 请求发出时把请求实时路由到该模型当前激活的提供商。配套的设置卡片(设置 → 插件 → 插件配置 → 模型路由)支持按模型对提供商拖拽排序(供后续自动切换使用)与点击切换当前提供商;切换后全局立即生效——下一次发出的该模型请求即走新提供商。
model-router:出现在输入框下方的模型选择器(含默认模型设置等所有选择入口)中,列出全部已配置提供商的所有模型,模型条目副文本标注当前激活的提供商(如 via OpenCode Go)。model-router 模型时,输入栏模型选择器右侧显示当前 provider 按钮;点击打开 provider 面板,可直接切换该模型的激活 provider。切换对所有会话的后续请求生效,完整排序和全量管理仍在设置 → 插件 → 插件配置 → 模型路由中完成。可在设置 → 插件 → 插件配置 → 模型路由中通过「在输入栏显示快速路由切换按钮」开关控制该按钮是否显示。当 router 全局只有一个提供商、或当前模型仅由一个提供商服务时,按钮自动隐藏(无可切换对象)。deepseek/deepseek-v4-flash 与 deepseek-v4-flash 视为同一模型,统一显示不带前缀的模型 id;请求时传入带前缀的 id 也能命中同一路由。每个提供商条目保留自己的原始 id,委派时按原始 id 发给真实提供商。可在设置 → 插件 → 插件配置 → 模型路由中通过「匹配时忽略模型 ID 前缀」开关控制。provider=model-router,每次请求发出时进程内解析当前激活提供商并委派给真实 adapter(凭据解析、重试、流式、计量全部走原管线),主 agent、子代理、工具 LLM 调用一视同仁。settings.yaml 的 model-router: 段)。路由配置持久化在 settings 文档的 model-router 命名空间(~/.dsh/settings.yaml):
model-router:
showQuickSwitch: true # 是否在输入栏显示快速路由切换按钮(默认 true)
ignoreModelIdPrefix: true # 匹配时忽略模型 ID 前缀(默认 true)
models:
deepseek-v4-flash:
order: # 优先级顺序(供后续自动切换使用)
- opencode-go
- deepseek-official
active: opencode-go # 当前实际使用的提供商
order 与 active 分开维护:点击切换只改 active,拖拽排序只改 order。
dsh plugin --profile web add @fonlan/dsh-model-router
在仓库目录下构建出 lib/ 产物后以本地目录方式添加:
pnpm build
dsh plugin --profile web add .
安装后插件通过 cordis.patch.yml 自动挂载到目标 profile:服务端注册 model-router 提供商与路由配置,web 端注册 settings.plugin.item 设置卡片(键 = model-router 设置命名空间,即设置 → 插件 → 插件配置 → 模型路由)。重启 profile 后生效(web profile 重启后,输入框下方的模型选择器即出现 Model Router 分组)。
pnpm install # 安装依赖
pnpm build # 构建 lib/(tsc 声明 + tsdown 双端产物)
pnpm test # vitest 单测(归并/路由解析/委派等纯逻辑)
pnpm typecheck # server + client 双 tsconfig 类型检查
pnpm run dev:web 同启时生效。MIT — 详见 LICENSE。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。