按名字启停本地推理服务器并取回模型引用
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add miloye7711-dotcom/dsh-local-model该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 3 处,展示前 3 条)
- 发起网络请求src/index.ts:173
const response = await fetch(url, { signal: AbortSignal.timeout(timeoutMs) }) - 写入本地文件src/index.ts:380
mkdirSync(join(homedir(), '.dsh', 'local-model'), { recursive: true }) - 写入本地文件src/index.ts:381
appendFileSync(DIAG_LOG_PATH, `${new Date().toISOString()} ${text}\n`, 'utf8')
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-commands@deepseek-ai/dsh-llm@deepseek-ai/dsh-subprocess@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-local-model
DeepSeek Harness 插件,让模型能启动、停止、查看本地推理服务器——Strata、Ollama、llama.cpp,或任何能响应 OpenAI 兼容模型列表的服务。
智能体按名字请求服务器,拿回 provider/model 引用,可以在该服务器前面的模型路由上选用。中间没有 shell 脚本,插件里也没有针对每台机器的硬编码:服务器就是部署配置。
帮我把本地的 ollama 拉起来,用 qwen2.5:7b
local_model start ollama
→ ollama: answering on port 11434 - ollama-local/qwen2.5:7b
安装
还没上 npm。把它放进 harness 的检出目录,或从配置档里链接:
git clone https://github.com/miloye7711-dotcom/dsh-local-model.git
cd dsh-local-model
pnpm install
pnpm run build
然后按绝对路径挂载构建好的包,或用 pnpm link 链到要加载它的 harness 里。
file: 依赖会把包复制进配置档的 node_modules;改完源码后,重新构建,再把 lib/ 和 client/ 复制过去,或者重装配置档。
展开完整文档(README 剩余 1 节)
dsh-local-model
DeepSeek Harness 插件,让模型能启动、停止、查看本地推理服务器——Strata、Ollama、llama.cpp,或任何能响应 OpenAI 兼容模型列表的服务。
智能体按名字请求服务器,拿回 provider/model 引用,可以在该服务器前面的模型路由上选用。中间没有 shell 脚本,插件里也没有针对每台机器的硬编码:服务器就是部署配置。
帮我把本地的 ollama 拉起来,用 qwen2.5:7b
local_model start ollama
→ ollama: answering on port 11434 - ollama-local/qwen2.5:7b
安装
还没上 npm。把它放进 harness 的检出目录,或从配置档里链接:
git clone https://github.com/miloye7711-dotcom/dsh-local-model.git
cd dsh-local-model
pnpm install
pnpm run build
然后按绝对路径挂载构建好的包,或用 pnpm link 链到要加载它的 harness 里。
file: 依赖会把包复制进配置档的 node_modules;改完源码后,重新构建,再把 lib/ 和 client/ 复制过去,或者重装配置档。
配置
声明这套组合可以启动哪些服务器。command、args、cwd 原样交给子进程服务商——不走 shell,所以任何 shell 风格的写法都得自己展开。
- id: local-model
name: 'dsh-tool-local-model'
config:
default: strata # what the bare toggle and the composer chip act on
exclusive: true # starting one engine stops the others
servers:
ollama:
command: 'ollama'
args: ['serve']
cwd: '%USERPROFILE%'
port: 11434
provider: 'ollama-local'
strata:
command: 'D:\Strata\.venv\Scripts\python.exe'
args:
- 'D:\Strata\serve\server.py'
- '--engine'
- 'strata'
- '--config'
- 'D:\Strata\strata-iq2_xs.json'
- '--port'
- '8080'
cwd: 'D:\Strata'
port: 8080
provider: 'strata-local'
startTimeoutMs: 900000 # cold start budget (default 15 min)
probeTimeoutMs: 5000 # one readiness probe (default 5 s)
| 字段 | 含义 |
| command | 可执行文件名或绝对路径 |
| args | 参数,原样传入 |
| cwd | 子进程的工作目录 |
| env | 额外环境变量,合并到服务商的环境上 |
| port | 服务器监听的端口 |
| provider | provider/model 引用里的路由名;默认取配置键 |
| modelsPath | 返回模型列表的 HTTP 路径;默认 /v1/models |
servers 表为空也合法:工具照常注册,只是没有可启动的服务器。
动作
| action | 行为 |
| list | 只列出正在响应的服务器 |
| status | 列出所有已配置的服务器,无论是否在响应 |
| start | 进程没起来就拉起,然后等到模型列表能应答为止;已经起来时重复调用无副作用;预算耗尽就终止子进程;server: "all" 启动所有已配置的服务器 |
| stop | 终止进程并等待退出——只针对本插件启动的服务器;server: "all" 停掉它拥有的所有服务器 |
| toggle | 翻转单个服务器:能应答就停掉,没起来就启动;不给名字时作用于 default |
启动一个服务器会停掉本插件拥有的其他服务器,因为 exclusive 默认为 true:两个本地引擎通常抢同一块显存。设 exclusive: false 可让多个服务器同时驻留。
就绪判定只有一次 HTTP GET <modelsPath>:服务器至少列出一个模型就算起来了。这条规则对 OpenAI 兼容服务器和 Ollama 形式的列表都成立(data[].id 或 models[].name)。
斜杠命令
/local-model [status | list | start [server|all] | stop [server|all] | toggle [server] | diag <text>] —— 在输入框里执行同样的操作。diag 会往 ~/.dsh/local-model/client-diag.log 追加一行带时间戳的记录。
输入框控件与快捷键
客户端部分在 conversation.composer.dock 注册两个 11px 的 chip:本地模型 只翻转 default 服务器,▾ 打开一个 272px 的面板,里面有 状态、每个已配置服务器一个 ● name / ○ name chip、每个对外公布的 ref 一个 用 <provider/model> 按钮,以及最近一次结果文本。面板只在打开时存在,所以 dock 行保持正常宽度;状态文本也会通过宿主命令输出落到会话记录里。
Ctrl+Shift+L(macOS 上是 Cmd+Shift+L)在页面任意位置执行同样的翻转。默认绑定按平台配置档写在 SHORTCUT_DEFAULTS 里,改键走 harness 的快捷键设置。
本插件不做什么
它只管进程生命周期,不管路由。要把模型请求真正发到它启动的服务器,得加一条 LLM 适配器路由,baseURL 指向那个服务器的端口——比如一个 @deepseek-ai/dsh-llm-pi-ai 服务商:
- id: llm-pi-ai
name: '@deepseek-ai/dsh-llm-pi-ai'
config:
providers:
ollama-local:
api: openai-completions
baseURL: http://127.0.0.1:11434/v1
headers: { Authorization: 'Bearer ollama' } # placeholder: keyless server
models:
- id: qwen2.5:7b
name: 'Qwen2.5 7B (Ollama)'
contextWindow: 32768
maxTokens: 8192
结果里的 refs 给出的正是那里要选的 provider/model 写法。
设计说明
- 不新增能力接缝。 这是现有 subprocess 能力上的一个 Consumer;再定义一份服务也不会有第二个消费者。
- 终止覆盖整棵进程树,因为它走的是 harness 其余部分也在用的同一个 subprocess 服务商——被杀的服务器不会留下孤儿工作进程。
- 不折腾 KV 缓存。 工具描述和参数 schema 都是固定文本,轮次之间这里什么都不变。
- 归属校验是强制执行的,不靠假设。 如果某个服务器在端口上有响应,但它是在别处启动的,stop 会拒绝处理,而不是去杀掉一个并非本插件创建的进程。
开发
pnpm install
pnpm run typecheck # strict, no emit
pnpm test # 7 tests over a real ToolRuntime
pnpm run build # lib/ + declarations
测试里按接缝的形状伪造了子进程服务商,因此实际发布的插件主体未经改动,就能跑在真实的 ToolRuntime 和真实的 HTTP 监听器上。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
miloye7711-dotcom/dsh-local-model
按名字启停本地推理服务器并取回模型引用
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1