🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

本地优先路由 Luokaikai1/dsh-local-first-router

DeepSeek 客户端
Luokaikai16 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

先跑本地 Ollama,卡住再按额度策略走云端兜底

29.5/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/Luokaikai1/dsh-local-first-router.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 9 处,展示前 9 条)
  • 写入本地文件
    lib/index.js:141
    mkdirSync(dirname(logPath), { recursive: true });
  • 写入本地文件
    lib/index.js:144
    appendFileSync(logPath, `${JSON.stringify({
  • 读取本地文件
    lib/index.js:158
    if (existsSync(statePath)) Object.assign(state, JSON.parse(readFileSync(statePath, 'utf8')));
  • 读取本地文件
    lib/index.js:158
    if (existsSync(statePath)) Object.assign(state, JSON.parse(readFileSync(statePath, 'utf8')));
  • 写入本地文件
    lib/index.js:164
    mkdirSync(dirname(statePath), { recursive: true });
  • 写入本地文件
    lib/index.js:165
    writeFileSync(statePath, `${JSON.stringify(state, null, 2)}\n`, 'utf8');
  • 发起网络请求
    lib/index.js:186
    const shown = await fetch(`${root}/api/show`, {
  • 发起网络请求
    lib/index.js:195
    const created = await fetch(`${root}/api/create`, {
  • 发起网络请求
    lib/index.js:227
    const response = await fetch(`${root}/v1/chat/completions`, {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 插件:先跑本地 Ollama,本地不行再按额度策略走云端兜底(三层路由:执行体/顾问/云端兜底)

README

由 DeepSeek 最新模型翻译生成
dsh-local-first-router 一个 DeepSeek Harness(DSH)插件:先跑本地 Ollama 模型,第一次启动会询问要不要扩展上下文;本地不行才自动走云端兜底,并且云端只在谷期、额度够、且你允许付费时才会用。 一个 DSH 插件:先跑本地 Ollama 模型,第一次启动时询问一次要不要扩展上下文,只有本地路线卡住时才回退到云端——回退受谷期时段、剩余额度和你是否同意约束。 它做什么 三层路由: | 层 | 默认 | 用途 | | 执行体 | qwen2.5:7b-24k | 新会话的所有常规任务与工具调用 | | 顾问 | deepseek-r1:8b-8k | 数学/逻辑/证明类难题出思路(通过 consult_advisor) | | 云端兜底 | deepseek-flash → 可配置兜底(如 GLM) | 本地卡住或上下文超窗时,按额度策略升级 | 关键行为: - 本地优先:新会话默认落在本地执行体;手动选过别的模型的会话不会被强切。 - 上下文守卫:会话 token 超过 localContextTokens - contextReserveTokens 时不再往本地切;本地会话会升级云端,老会话保持原路由(guard 模式)。 - 升级触发:本地报错、工具失败 ≥ N、重复调用、步数 ≥ M、上下文超窗。
展开完整文档(README 剩余 1 节)
dsh-local-first-router

一个 DeepSeek Harness(DSH)插件:先跑本地 Ollama 模型,第一次启动会询问要不要扩展上下文;本地不行才自动走云端兜底,并且云端只在谷期、额度够、且你允许付费时才会用。

一个 DSH 插件:先跑本地 Ollama 模型,第一次启动时询问一次要不要扩展上下文,只有本地路线卡住时才回退到云端——回退受谷期时段、剩余额度和你是否同意约束。

它做什么

三层路由:

| 层 | 默认 | 用途 |
| 执行体 | qwen2.5:7b-24k | 新会话的所有常规任务与工具调用 |
| 顾问 | deepseek-r1:8b-8k | 数学/逻辑/证明类难题出思路(通过 consult_advisor) |
| 云端兜底 | deepseek-flash → 可配置兜底(如 GLM) | 本地卡住或上下文超窗时,按额度策略升级 |

关键行为:

- 本地优先:新会话默认落在本地执行体;手动选过别的模型的会话不会被强切。
- 上下文守卫:会话 token 超过 localContextTokens - contextReserveTokens 时不再往本地切;本地会话会升级云端,老会话保持原路由(guard 模式)。
- 升级触发:本地报错、工具失败 ≥ N、重复调用、步数 ≥ M、上下文超窗。
- 云端闸门:谷期(工作日 09:00–12:00、14:00–18:00 之外,周末/法定节假日全天)+ 余额门槛。
- 额度策略:优先用 DeepSeek 赠送余额;赠送不足时询问是否用付费余额;可配置兜底 provider(云端失败自动切)。
- 首次启动:会注入一条提示,让智能体询问你是否开启「自动上下文扩展」(自动创建 -<ctx>k 模型变体)。
- 全部本地:插件本身不联网(除你配置的 Ollama / 云端 provider),日志与状态都在 ~/.dsh/ 下。

工具

| 工具 | 作用 |
| consult_advisor | 向本地推理顾问请教思路(只返回文字,不执行工具) |
| model_quota | 展示当前接入的模型、上下文窗口、赠送/充值余额、峰谷、兜底配置 |
| set_cloud_policy | 允许/禁止付费余额、切换兜底、可持久化 |

model_quota 示例输出:

本地执行: local-ollama/qwen2.5:7b-24k (24576 ctx) 本地顾问: deepseek-r1:8b-8k 云端主用: deepseek-account/deepseek-flash 赠送余额 2.40 元 / 充值余额 0 元云端兜底: zhipu-glm/glm-5.3-flash (额度未知,按错误或询问切换) 峰谷: 谷时 付费余额使用: 需确认

安装

dsh plugin --profile <profile> add github:<owner>/dsh-local-first-router

或本地目录:

dsh plugin --profile <profile> add file:<path-to-this-repo>

安装后在该 profile 的 cordis.patch.yml 里配置(示例,不含任何密钥):

- id: local-first-router
config:
localProvider: local-ollama
localModel: qwen2.5:7b-24k
localBaseModel: qwen2.5:7b
localContextTokens: 24576
contextReserveTokens: 1024
autoContextExpansion: true
manageExistingSessions: true
cloudProvider: deepseek-account
cloudModel: deepseek-flash
fallbackProvider: zhipu-glm
fallbackModel: glm-5.3-flash
requireOffPeak: true
minBonusCny: 1
minPaidCny: 1
askBeforePaid: true
advisorModel: deepseek-r1:8b-8k

同时把本地 provider 加进 llm-pi-ai:

- id: llm-pi-ai
config:
providers:
local-ollama:
api: openai-completions
baseURL: http://127.0.0.1:11434/v1
apiKeyEnv: LOCAL_OLLAMA_API_KEY
headers:
本地 Ollama 通常不校验;这里只是占位,不要填真实云端密钥 authorization: Bearer ${LOCAL_OLLAMA_API_KEY} models:
- id: qwen2.5:7b-24k
contextWindow: 24576
- id: deepseek-r1:8b-8k
contextWindow: 8192

云端 provider(DeepSeek 账户、智谱等)用 DSH 自带的「设置 → 模型」接入即可;密钥由 DSH 凭据系统保存,插件不读取也不写入任何密钥。

聊天会话默认本地(QQ 等)

按会话 id 前缀识别聊天会话,默认只走本地;需要云端兜底时必须先征得用户同意:

- id: local-first-router
config:
localSessionPrefixes:
- onebot-group-
chatCloudApproval: true # 云端兜底需用户批准

- 命中前缀的会话默认本地,不自动升级。
- 触发升级时,插件会注入一条询问。用户同意后,调用
set_cloud_policy(allowCloud=true, scope=turn),才允许本轮云端兜底。
- 手动切换到云端模型,视为用户已同意,插件不拦截。
- 工作/编码会话不受影响,仍按「本地优先,卡住才升级」的策略走。

把任务委派给本地/免费云端模型

委派用 DSH 内置的 workflow(常驻工具,无需额外插件):给每个子任务单独指定 provider/model,子任务在独立会话里跑完,把结果带回来。

const r = await agent('把这段日志总结成三条', { provider: 'local-ollama', model: 'qwen2.5:7b-24k', label: 'local-summary', });

- 本地:local-ollama/qwen2.5:7b-24k
- 免费云端:zhipu-glm/glm-4.7-flash
- 付费云端:deepseek-account/deepseek-flash(受余额与审批约束)

subagent 工具默认继承父会话模型;它的「按调用选模型」需要额外的 host 设置服务,默认部署没有,不要依赖它做选型。

敏感信息

仓库不包含 API Key、QQ 号、个人目录;示例中的 127.0.0.1:11434 是 Ollama 的默认本地地址,可按需替换。云端密钥由 DSH 凭据系统保存,插件不读取也不写入任何密钥。

人设防丢(长会话截断)

本地窗口小于会话长度时,Ollama 会从开头截断,把系统提示连同人格一起切掉。配置一条近端提醒即可:

forceLocalPersonaReminder: '【人设】你是……,回复 1-3 句、口语化、不用 Markdown。'

上下文超过本地窗口 70% 时,插件会在本轮末尾补发这条提醒,保证截断后模型仍能看到人设。长聊仍建议定期 /new 或压缩,避免细节丢失。

本地上下文

Ollama 默认 num_ctx 往往只有 4096,而 DSH 的系统提示 + 工具定义就可能到 9k,直接截断。插件提供两种处理:

1. autoContextExpansion: true:启动时检测 localModel,不存在就用 /api/create 按 localContextTokens 创建派生模型;
2. 手动创建:

FROM qwen2.5:7b
PARAMETER num_ctx 24576

8GB 显存的经验值:16k 约 5.5GB、24k 约 6.0GB(均可 100% GPU);32k 会溢出到 CPU 且只剩约 0.7GB 显存,不建议。请按自己的显存调整 localContextTokens。

数据与日志

- 决策日志:~/.dsh/logs/local-first-router.jsonl
- 首次启动/付费策略状态:~/.dsh/local-first-router/state.json
- 本地模型对话不会上传到云端;云端调用只在你配置的 provider 上发生。

已知限制

- 没有图形化额度面板(用 model_quota 工具展示)。
- 上下文将满时不会自动 /compact;目前是提示你先压缩再切(自动总结需要确认,避免意外改写历史)。
- 顾问模型不支持工具调用,只作为「出思路」的第二意见。

License

MIT,见 LICENSE。
预览分享卡片长什么样 ↓Luokaikai1/dsh-local-first-router
分享 · DeepSeek Harness Hub
Luokaikai1/dsh-local-first-router

先跑本地 Ollama,卡住再按额度策略走云端兜底

这是你的仓库?认领条目

回到顶部