前言¶
在 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「快速上手」一致,可在设置页完成,也可在对话中让助手调用同名工具。
- 搜索:设置 → 开源模型中枢 → 模型,输入如
qwen2.5 gguf,选择来源后搜索(或调用model_search)。 - 下载:在「文件过滤」中填写如
*Q4_K_M.gguf,只拉取需要的量化,再点下载。默认路径为${DSH_HOME}/models/<repoId>/<文件名>。 - 已有文件:将权重放到模型根目录(或在设置中追加
modelRoots),点「扫描目录」,对新条目点「注册」。 - 推理:在本地模型列表点「启动」;或在顶部模型选择器选 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 与镜像/代理说明)。