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 與鏡像/代理說明)。

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

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

小夜