Hed1an / dsh-bring-local-llm

Listed

让本地 LLM(Ollama/KoboldCpp/LM Studio/任意 OpenAI 兼容端点)接入 DeepSeek Harness,本地优先处理一部分信息,难点交给云端主模型:省在线 token、用上本地冗余算力。

masterModel View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:Hed1an/dsh-bring-local-llm

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 26b23ecSynced Aug 18, 2026

dsh-bring-local-llm

你本机的任意本地大模型接入 DeepSeek Harness(DSH Desktop)。 本地优先处理一部分信息(文本批量劳动 + 视觉/OCR),难点才交由云端主模型 —— 充分利用本地冗余算力、节省在线 token

可连接任意本地模型(不限于某个具体模型):通过 Control Plane 的 Provider 抽象,Ollama / KoboldCpp / LM Studio / 任意 OpenAI 兼容端点(vLLM、LocalAI、llama.cpp server 等)都可一键接入;模型文本/视觉能力按 models.catalog.yaml 声明即可。默认示例用 qwen3.5:9b,但不是唯一可选

综合实践:dsh-koboldcpp-hands(DSH 工具插件规范)· local-agent-vision-team(你自研的 DSH 桥接 + Control Plane + Ollama)· OpenHarness(provider 抽象 / 多角色 / 冗余算力思路)。


它能做什么

在 DSH 主模型(云端,如 DeepSeek)的工具清单里注册一组工具,全部委托给你本地部署的 Control Plane(FastAPI 后端,默认 127.0.0.1:8765):

工具作用
local_llm_run在本地文本模型跑一次(批量改写/翻译/抽取/去重/格式化/结构化输出)→ 省在线 token
local_llm_route本地优先分流:先试本地冗余算力;全失败 → needs_cloud=true,请主模型(云端)接管难点
local_vision_read本地多模态看图(OCR/分析),传图片文件路径

0.2.0 起为标准 Cordis 工具插件(inject:["tools"] + ctx.tools.register(defineTool(...))),与 DSH 生态工具插件一致;不再用动态插件/粘贴桥接,依赖更少、加载更稳。

实测 token 节省率(真实数据,多维度)

本地模型 qwen3.5:9b 跑 5 类任务、每类 40 条真实文本(全部 used_local=true, needs_cloud=false),Control Plane 实测:

任务本地 in本地生成 out(=云端省掉)云端直接做基线走本地后云端在付节省 token节省率
英译中468433901~46843348%
改写·友好46715742041~467157477%
抽取·JSON4665921058~46659256%
分类47520002475~475200081%
摘要463466929~46346650%
合计233950657404~23395065≈ 68%
  • 在线 token 节省率 ≈ 68%;生成的 output token 100% 由本地产出、不入云端(共省 5065 在线输出 token)。
  • 走本地委派后云端仅付「工具调用入参 ≈in」(无论本地/云端都过主模型上下文,不可避免)。
  • output 越大的任务(改写/分类)节省率越高(77–81%);output 小/输入占比大则低(48–56%)——节省主要来自输出侧。

说明:本地做不动的难点会升云端,此时节省趋近 0。可归因节省不包含 DSH 主模型每次对话固定的历史上下文注入开销(与是否用本地工具无关)。

架构

DSH Desktop(云端主模型 = 规划/难点)
   └── [dsh-bring-local-llm 插件]   local_llm_run / local_llm_route / local_vision_*
        │  Loopback HTTP
        ▼
LocalHost Control Plane (FastAPI, 127.0.0.1:8765)     ← 你自己部署的后端
   ├─ /api/llm/run   本地文本(executor 角色)
   ├─ /api/llm/route 本地优先分流(多本地后端 → 冗余算力)
   └─ /api/vision/read  本地视觉(vision 角色)
        │  Provider 抽象
        ▼
   本地后端(三选/多选):Ollama · KoboldCpp · LM Studio/任意 OpenAI 兼容

安装

前置:DSH Desktop + 一个本地部署的 Control Plane(FastAPI,暴露 /api/llm/run/api/llm/route/api/vision/read)。

# 把插件装进 DSH profile(web / desktop 任选)
dsh plugin install <本包路径> --profile web
# 或作为本地依赖在 profile package.json 添加后重启

插件默认通过 Loopback 调 http://127.0.0.1:8765

// profile cordis.patch.yml 覆盖(按 id / name)
{ "endpoint": "http://127.0.0.1:8765", "llm_tool_name": "local_llm_run", "route_roles": ["executor", "vision"] }

本地后端配置(三种,皆由 Control Plane 定义)

在你本机的 Control Plane 配置文件(如 config/config.yamlconfig.local.yaml):

providers:
  ollama:
    type: ollama
    endpoint: http://127.0.0.1:11434
  koboldcpp:                 # KoboldCpp 暴露 OpenAI 兼容 /v1
    type: openai_compatible
    endpoint: http://127.0.0.1:5001/v1
  lmstudio:                  # 任意 OpenAI 兼容本地端点
    type: openai_compatible
    endpoint: http://127.0.0.1:1234/v1

models:
  executor:                  # 本地文本:分流优先用
    provider: ollama
    model: qwen3.5:9b
    fallback:
      - provider: koboldcpp
        model: <你的 GGUF>
  vision:
    provider: ollama
    model: qwen3.5:9b

fallback 就是 冗余算力:一个本地后端忙/挂了,自动切下一个本地后端;全失败才 needs_cloud。模型能力见 config/models.catalog.yamltext:true / vision:true)。

使用

  • 让主模型「本地处理」:local_llm_run {prompt, json_schema?}
  • 「本地优先、不行交给云端」:local_llm_route {prompt} → 返回 {ok,text}{needs_cloud:true}
  • 贴图/看图:粘图 → local_vision_read(OCR/分析),或 image_paths 传本地文件路径

主模型可通过工具描述里的提示习得:能本地就本地,难点才上云端

开发 / 测试

npm test            # node --test(31 cases:llm/vision/paste)
npm run typecheck   # node --check 插件入口 + src 语法

目录

dsh-bring-local-llm/
├─ package.json / cordis.patch.yml   DSH bundle + 插件行
├─ src/index.js       标准 Cordis 插件入口(apply + 注册 3 工具)
├─ src/llm.js         本地 LLM 调用 + 分流归一化(可单测)
├─ src/vision.js      图片校验 + 本地视觉调用(复用自 local-agent-vision-team)
├─ docs/              预设与提示词模板
└─ tests/             llm / vision 单测(31 cases)

预设 / 文档

开箱即用地把本工作流做成一个「智能调度」Agent 预设(先拆分、本地优先、代码等必须给 DSH),含可直接粘贴进 DSH 创造模式的 System Prompt 与落盘模板:

Credits & 免责声明

  • 非官方:这是第三方插件,与 DeepSeek 及其产品无隶属、背书或关联关系dsh / DeepSeek Harness 系各自权利人的商标,本项目中仅作名称指代。
  • 致谢src/vision.jssrc/paste.js 的图片校验/视觉链路逻辑复用自 local-agent-vision-team(你自研的项目);工具插件/引擎参考 dsh-koboldcpp-handsOpenHarness 的设计思路。
  • 本项目仅打包插件本身;本地推理后端(Control Plane)需你自行部署,未随本仓库一同发布。

License

MIT。

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

TestsDetected
DocumentationDetected

Repository information

Language
JavaScript
License
MIT
Last updated
Aug 15, 2026, 9:17 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.