dsh-open-model:在 DeepSeek Harness 里跑通本地开源模型全流程

前言

在 DeepSeek Harness(DSH)里做智能体或本地对话,常见做法是手动找 HuggingFace 仓库、用独立 CLI 下载 GGUF 或 MLX,再单独起 llama-server 或 mlxcel,最后在 profile 里填 OpenAI 兼容端点。步骤分散,镜像、代理和空闲释放在各工具里各管各的。下面介绍社区插件 dsh-open-model(维护者 yorelog),它把 搜索 → 下载 → 发现/注册 → 启动推理 → 空闲释放 收进一个 Host Bundle,并附带 Web 设置页与 open-model LLM 适配器。

这是什么

dsh-open-model 是 DSH 的本地开源模型中枢:在 Host 侧统一管理 Windows 上的 llama-server(GGUF)与 Apple Silicon 上的 mlxcel-server(MLX、safetensors),支持 HuggingFace、hf-mirror、ModelScope 等可配置端点,以及镜像与代理。当前版本 1.3.1(见仓库 package.json 与 SkillHub 目录页),要求 Node >= 20.11。

社区目录 SkillHub 与 GitHub 仓库相互独立,并非 DeepSeek / 幻方官方应用商店;安装前请自行阅读源码与许可证。

平台支持

插件不会在所有平台上猜测运行时路径,不支持的组合会在工具里明确报告。

平台 运行时 模型格式 说明
Windows x64 llama-server GGUF 来自 ggml-org/llama.cpp 发布包;CPU / CUDA(含 cudart)/ Vulkan
macOS arm64 mlxcel-server MLX、safetensors 优先 Homebrew,其次 GitHub 归档,源码构建仅文档说明
macOS x64 — — runtime_status 报告 mlxcel 不支持
Linux — — 不在此插件内管理 llama-server,工具报告平台不支持

核心功能

工具一览

Host 暴露 10 个与模型相关的工具(名称以 README 为准):

工具 作用
model_search 搜索 HuggingFace / hf-mirror / ModelScope;返回 repo id、统计、标签、主页、精简文件列表与 downloadHint
model_download 经 Hub CLI(SDK 兜底)下载,支持镜像端点、代理、进度、断点续传与可选后台模式
model_download_status 字节进度、速度、ETA、取消
model_scan 扫描模型根目录;格式与量化来自文件头或同目录元数据
model_register 按路径或扫描 id 写入注册表
model_load 启动平台运行时,记录 PID/端口/时间并等待健康检查
model_unload 优雅停止,超过 stopGraceMs 后强制结束
model_infer OpenAI 兼容 chat/completions;刷新 lastUsedAt
runtime_status 运行时可用性、路径、版本、缺失 CUDA DLL、已注册模型
runtime_install Windows 安装 llama-server,Apple Silicon 安装 mlxcel

已注册模型会以 id · 格式 · 量化 · 是否已加载 的清单进入系统提示词,无需额外工具往返即可让模型知道本地有哪些权重;会话语言为中文或英文时,工具结果、错误与空闲释放通知会跟随 locale 配置(auto/zh/en,默认 auto 跟会话)。

LLM 提供商与设置页

Host 通过 ctx.llm.registerAdapter() 注册名为 open-model 的 OpenAI 兼容提供商。已注册模型会出现在界面模型选择器 Open Model Hub 分组中,选中后可直接对话或跑 Agent,而不必每次手动调用 model_infer;首次使用时会自动加载,并将 llama-server 的 SSE 转为 Harness chunk 协议。

Web 端路径为 设置 → 开源模型中枢,含总览、模型(搜索/下载/扫描/注册/启停)、运行时安装与 设置 表单(搜索与下载、网络与镜像、推理与资源等)。状态与部分操作经同源 JSON 桥 POST /api/open-model/status、POST /api/open-model/tool 访问 Host,仅允许本插件白名单内的工具名。

配置要点

配置字段均可省略,经 Schemastery 或 Standard-Schema 校验;全部字段为 volatile,保存后立即作用于运行中的插件,不会仅因改配置而重启插件行或停掉已加载模型(修改 profile 里该行的普通选项仍会重启并 teardown 自有服务)。

常用项示例:

字段 默认 含义
modelRoots 空则 ${DSH_HOME}/models model_scan 额外根目录
idleTimeoutMs 300000 空闲后释放模型
idleCheckIntervalMs 30000 空闲扫描周期
defaultSource hf-mirror 工具未指定 source 时使用
hfMirrorEndpoint https://hf-mirror.com source=hf-mirror 时注入 HF_ENDPOINT
modelscopeEndpoint https://modelscope.cn ModelScope 站点
proxy {} URL 字符串或 { http, https, all, noProxy }
backend auto Windows llama.cpp:auto/cpu/cuda/vulkan
serverHost 127.0.0.1 推理绑定地址

profile 片段示例(来自 README):

- id: dsh-open-model
  name: 'dsh-open-model'
  config:
    idleTimeoutMs: 300000
    proxy:
      https: http://127.0.0.1:7890
    githubProxyPrefix: https://gh-proxy.com/
    modelscopeEndpoint: https://www.modelscope.ai

持久化目录包括 ${DSH_HOME}/model-hub/registry.json(注册表与运行时状态)、runtimes.json、downloads.json、state.json;插件安装的运行时位于 ${DSH_HOME}/runtimes/,默认下载根为 ${DSH_HOME}/models/。写入采用临时文件加 rename;注册表损坏时会回退为空并告警,不阻止插件加载。

安装与启用

方式一:社区目录。 打开 SkillHub 上的 yorelog/dsh-open-model,按页面说明把安装请求发给 DeepSeek Harness(例如:请安装 DSH 插件 yorelog/dsh-open-model),由 Harness 读取后端安装计划后执行。

方式二:本地 Bundle。 若已拿到插件目录(例如从 GitHub 发布或解压后的文件夹),README 给出的安装方式为:

plugin_manager install_bundle  target: <absolute path to this directory>

说明:安装以本地目录为 target,README 写明无额外 runtime 依赖。

安装后可用 Cordis 查询验证工具与配置 schema 是否就绪:

cordis_inspect_query  Service.Tool.listTools        # 10 个 model_* / runtime_* 工具
cordis_inspect_query  Config.listConfigs            # 本插件行的 schema

自测脚本(开发/本地验证):在插件目录执行 node test/selftest.mjs。

典型用法

下面步骤与 README「快速上手」一致,可在设置页完成,也可在对话中让助手调用同名工具。

  1. 搜索:设置 → 开源模型中枢 → 模型,输入如 qwen2.5 gguf,选择来源后搜索(或调用 model_search)。
  2. 下载:在「文件过滤」中填写如 *Q4_K_M.gguf,只拉取需要的量化,再点下载。默认路径为 ${DSH_HOME}/models/<repoId>/<文件名>。
  3. 已有文件:将权重放到模型根目录(或在设置中追加 modelRoots),点「扫描目录」,对新条目点「注册」。
  4. 推理:在本地模型列表点「启动」;或在顶部模型选择器选 Open Model Hub 下的模型直接对话。空闲超过 idleTimeoutMs(默认 5 分钟)会自动释放进程,不会删除已下载文件。

首次在 Windows 或 Apple Silicon 上推理前,可在 运行时 页查看 runtime_status,必要时调用 runtime_install 安装对应 server。

适用场景与注意

适合谁: 已在 DSH 上开发 Agent、希望把 HuggingFace / ModelScope 模型与本地 GGUF(Windows)或 MLX(Apple Silicon)推理收拢到 Host 工具链里的开发者;需要 hf-mirror、代理或 ModelScope 国内/国际站分端点配置的用户。

务必注意:

  • 插件以当前 DSH 进程权限运行,会拉起子进程、读写 ${DSH_HOME} 下目录并访问配置的 Hub 端点;安装前应审阅 GitHub 源码 与许可证。
  • Linux 上本插件不管理 llama-server;若你主要在 Linux 本地跑 GGUF,需另备运行时,不能指望 runtime_install 在此平台生效。
  • CUDA 版 llama-server 需要匹配的 NVIDIA DLL;runtime_status 会列出缺失项,不会静默下载。
  • ModelScope token 通过环境变量 MODELSCOPE_API_TOKEN 提供,且与配置的 modelscope.cn / modelscope.ai 站点一一对应,不跨站复用。
  • 空闲释放只停推理服务;Hub 限流与网络策略仍适用,失败时会返回当前语言的错误与 URL。

结尾

dsh-open-model 把 DSH 里本地开源模型的搜索、下载、注册、加载与空闲释放在一套 Bundle 里闭环,并对接设置页与 open-model 提供商。进一步细节见仓库 README(含英文 Platform matrix 与镜像/代理说明)。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye