dsh-plugin-local-llm:把本机推理引擎注册为 Harness 模型路由

前言

在 DeepSeek Harness(DSH)里跑智能体,模型通常走云端或已配置的托管路由。若你希望 Agent 直接连本机上的 LM Studio、Ollama 或其它 OpenAI 兼容服务,往往要单独改 endpoint、或在不同工具之间切换。dsh-plugin-local-llm 由社区维护者 umerkhalid204 发布,分类为「模型推理」:它把常见本地推理引擎登记为与普通 provider 相同的路由,在 Composer 的模型选择器里像选托管模型一样选本机模型,并附带扫描、切换与连通性检查能力。

这是什么

插件全名 dsh-plugin-local-llm(npm 包名相同,当前资料中版本为 0.2.7,MIT 许可证)。定位是:在你自己机器上提供模型服务的场景下,通过 OpenAI 兼容的 /v1/chat/completions 适配层,把各引擎注册为可配置的第三方 provider,并在 Settings 的 Models 页展示 endpoint 与模型发现结果;同时提供 local_models 工具供命令行式操作。

支持的推理引擎

五种 provider id 及默认 endpoint 如下(资料以 GitHub README 为准):

Provider id 默认 endpoint 模型列表来源说明
lmstudio http://127.0.0.1:1234/v1 LM Studio,含 load state、量化、vision 等 enrichment
ollama http://127.0.0.1:11434/v1 Ollama /api/tags 及单模型 size、量化信息
strata http://127.0.0.1:8080/v1 Strata,pack 名与量化相关
lemonade http://127.0.0.1:13305/v1 Lemonade Server,标签含 chat、vision、tool-calling、reasoning
local-openai http://127.0.0.1:8081/v1 llama.cpp server、vLLM、LocalAI、TGI 等任意 OpenAI 兼容端点;默认关闭,避免多引擎抢同一端口

Strata 的列表并非稳定对外契约,因此需在配置里用 providers.strata.models 声明你实际提供的 pack 名称与 context window。五种引擎在聊天路径上均走 OpenAI 兼容接口,差异主要在「如何拉取并描述模型目录」。

核心功能

  1. Provider 路由注册:将上述引擎(在未被其它插件占用 id 时)写入 Harness 的可配置 provider 目录,与托管路由同一套选择流程。
  2. Settings 与 Models 页:安装为 npm 包(.tgz) 后,依赖 @deepseek-ai/schemastery 可解析,settings.describe() 能生成表单;endpoint 等写在 providers.<id> 下,且 providers 节点需带 meta.volatile 才能在 Models 页出现可编辑卡片(README 中有详细说明)。
  3. local_models 工具:扫描本机可用服务、设置 profile 默认模型、对指定 provider/model 做 ping、查看 settings 是否可在 UI 编辑。
  4. Provider id 互斥:全局 id 只能有一个 owner。插件在 lmstudio、ollama、lemonade 等未被占用时注册;若你已在 profile 里声明了例如 strata,原 owner 继续服务,本插件仍可 scan、ping、选用该 endpoint,若要改由本插件声明的路由接管,需删除冲突声明并重载 profile。

安装与启用

官方 README 要求从 checkout 打 tarball 再安装,而不是直接把源码目录当 bundle(目录链接会导致 Config 缺失、Settings 表单不可用,仅能改 cordis.patch.yml)。

1、在插件源码目录打包:

npm pack --pack-destination dist     # -> dist/dsh-plugin-local-llm-<version>.tgz

2、在 Harness 中:Settings → Plugins → Install bundle,指向生成的 .tgz。

若习惯在 profile 里声明条目,可在 ~/.dsh/profiles/<profile>/cordis.patch.yml 增加一行(id 固定为 local-llm,与配置命名空间及 /local-llm/api 路由一致):

- insert:
    - id: local-llm
      name: 'dsh-plugin-local-llm'

name 为包名,版本以你安装的 bundle 为准。运行环境需 Node.js >= 20(见 package.json 的 engines)。

典型用法

先确认本机对应引擎已启动且端口与配置一致,再在 Harness 会话中使用 local_models(示例来自 README):

local_models scan                       # 查看哪些服务在线、可服务哪些模型
local_models use provider=strata model=iq3_s
local_models ping provider=lemonade model=Qwen3-0.6B-GGUF
local_models settings                   # 检查是否可在 Settings 表面编辑这些引擎

use 会写入当前 profile 的默认模型,新会话将从该路由启动。任意已注册路由均可被接受,包括其它 adapter 占有的路由。

适用场景与注意

适合:已在本地跑 Ollama、LM Studio、Strata、Lemonade 或自建 OpenAI 兼容网关,希望在 DSH Agent 里统一选模、改 endpoint、做连通性探测的开发者。

注意:

  • 插件以当前 DSH 进程权限运行;安装前请阅读仓库源码与 MIT 许可证,确认 endpoint、apiKey 等配置符合你的安全策略。
  • 社区插件目录(SkillHub 等)与 DeepSeek / 幻方无官方从属关系;安装来源以你信任的 GitHub 仓库与打包包为准。
  • local-openai 默认 disabled,启用前请确认端口不与其它引擎冲突。
  • 仅链接源码目录安装时,引擎可能仍能 scan/ping,但 Models 页不会出现完整 settings 表单,endpoint 变更需走 profile patch。

链接

  • 社区目录页:https://www.skillhub.cn/plugins/umerkhalid204/dsh-plugin-local-llm
  • 源码与说明:https://github.com/umerkhalid204/dsh-plugin-local-llm

经过上面的步骤,本机推理引擎即可与 Harness 的 provider 模型选择流程对齐,减少在「本地服务」与「Agent 路由」之间手工对齐 endpoint 的成本。

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

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

小夜