先跑本地 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🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Luokaikai1/dsh-local-first-router
先跑本地 Ollama,卡住再按额度策略走云端兜底
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目