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