← 返回列表
✓ 可直接安装
🤖 dsh-local-ai
自动检查通过:npm 包已发布且 engines 声明满足基线(声明 Node ^22.19.0 || >=24.0.0);该结论来自程序自动检查,未经人工实机验证。 · 最近上游提交 2026/9/19 · 已提供中文文档
DeepSeek Harness 的本地模型(Ollama)集成:发现、拉取、删除和检查本地模型,按任务类型或关键词将请求路由到这些模型,并在失败时自动回退到云端,还可通过 /ollama 获取一次性状态概览。
综合分
39.1
GitHub 分
39.1
用户评分
—
★ Stars
12
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add dsh-local-ainpm 包 dsh-local-ai 已校验归属本仓库,走 npm 安装最省事
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查✓ 自动检查通过
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-local-ai @ 0.2.10
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/12 22:11:26
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-util-values@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-attachment@deepseek-ai/dsh-agent@deepseek-ai/dsh-commands@deepseek-ai/dsh-invariants@deepseek-ai/dsh-llm@deepseek-ai/dsh-scope@deepseek-ai/dsh-session@deepseek-ai/dsh-subprocess用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
🤖 dsh-local-ai
- 1024 商店频道:先执行一次 npm i -g dsh1024,然后执行 dsh1024 plugin --profile web add dsh-local-ai(会计入 deepseek1024.com 的安装排名)。
Gitee
面向 DeepSeek Harness 的本地模型(Ollama)集成。
发现、拉取、移除和检查本地模型,按任务类型或关键词将请求路由到这些模型,并自动回退到云端,还可通过 /ollama 获取一次性状态概览。
官方仓库。 这是 dsh-local-ai 唯一的官方仓库,由 PerryLink 维护。其他账号下的同名仓库均无关联。
License
DSH plugin
dsh-doctor
Node
CI
Version
npm version
npm downloads
English · 简体中文 · Español · Português · हिन्दी
兼容性
| 层面 | 状态 |
|---|---|
| Harness | DeepSeek Harness dsh-v0.1.6-alpha.2(已于 2026-09-18 验证:双类型检查标尺 + 133 项测试 + 自包含/产物门禁)。peer 范围涵盖所有受支持的产品线:>=0.1.2-rc.1 =0.1.5-alpha.1 =0.1.6-0 =24.0.0 |
| 后端 | Ollama(本地 HTTP API + CLI 探测) |
| 模型 | 纯文本路由(inputModalities: ['text']);支持工具调用和工具结果 |
你将获得
dsh-local-ai 让 Ollama 成为 DeepSeek Harness 中的一等本地提供方:
- 发现与管理 — ollama_list(已安装模型、运行中的模型、磁盘占用)、ollama_show(参数量、量化方式、上下文长度)、ollama_pull 和 ollama_remove。
- 健康检查 — 进程存活状态(通过 ollama CLI)和 API 响应能力(通过 /api/version),作为两个独立信号报告。
- 官方适配器 — ollama 提供方路由通过 ctx.llm.registerAdapter(LlmAdapter)注册,支持可配置的模型映射以及 temperature / max-tokens / stop 转换。
- OpenAI 兼容后端 — LM Studio、vLLM 和 llama.cpp --server 各自通过同一个 LlmAdapter 接缝注册为独立的 openai: 提供方,复用同一个 OpenAI /v1/chat/completions 适配器(纯文本路由)。
- 本地路由 — model_route 规则按任务类型(purpose)、不区分大小写的关键词或 always 将请求路由到本地模型,并在本地路由于生成内容之前失败时自动回退到云端。
- /ollama 命令 — 一次性状态概览:模型、磁盘占用、健康状况和建议。
- 零依赖,HTTP 优先 — 一切都通过 Ollama 的 HTTP API 通信(CLI 仅用于进程探测);不捆绑任何模型文件。
request (loop)
│ llm/stream waterfall
├─ rule matches? ──▶ route to ollama ──▶ Ollama /api/chat (NDJSON stream)
│ └─▶ route to openai: ─▶ /v1/chat/completions (SSE)
│ └─ fails first ─▶ fall back to cloud (next())
└─ no match ──▶ cloud provider
tools ──▶ /api/tags · /api/ps · /api/show · /api/pull · /api/delete
health ──▶ /api/version (API) + ollama list (process)
快速开始
1. install the bundle into your profile
dsh plugin --profile web add "github:PerryLink/dsh-local-ai#main"
or from npm (published releases)
dsh plugin --profile web add dsh-local-ai
2. configure routing in your profile patch (cordis.yml) and restart
dsh --profile web
最小路由配置(该规则在 cordis.patch.yml 中以注释形式提供):
- insert:
- id: dsh-local-ai
name: dsh-local-ai
config:
route:
- model: llama3.2
keywords: ["confidential", "offline"]
然后验证该行已挂载:
dsh --profile web --dump-config | grep -A2 'id: dsh-local-ai'
安装与卸载
- git 渠道(最新的 main):dsh plugin --profile web add "github:PerryLink/dsh-local-ai#main" — prepare 脚本仅使用生产依赖进行构建。
- npm 渠道(已发布的版本):dsh plugin --profile web add dsh-local-ai。
- tarball 渠道:在本仓库中运行 pnpm pack,然后执行 dsh plugin --profile web add ./dsh-local-ai-.tgz。
- 卸载:dsh plugin --profile web remove dsh-local-ai(或从 profile patch 中移除该行)。
如果 pnpm 针对此包报告 ERR_PNPM_IGNORED_BUILDS,请将 allowBuilds: { esbuild: true } 添加到你的 pnpm-workspace.yaml — dsh CLI 会打印确切的代码片段。
配置
所有可调项都是 Schemastery Config 字段(可从 cordis.yml 更改)。针对 id 的覆盖会替换整行 — 请重新声明你需要的每个键。cordis.patch.yml 以内联方式记录了每个键。
| 键 | 默认值 | 含义 |
|---|---|---|
| baseURL | http://127.0.0.1:11434 | Ollama HTTP API 基础 URL;会追加 /api/ 路径 |
| requestTimeoutMs | 30000 | 每个请求的 HTTP 超时时间(毫秒) |
| graceMs | 15000 | 健康检查 CLI 探测的子进程终止宽限期 |
| defaultContextWindow | 8192 | 当模型没有精确值时使用的上下文容量 |
| maxTokens | 4096 | 当模型没有精确值时使用的每请求输出上限 |
| temperature | (无)* | 默认采样温度(0..2);省略则保留提供商默认值 |
| vision | true | 当模型报告支持视觉时,声明并序列化图像支持;false 则保持该路由仅文本 |
| visionCacheTtlMs | 30000 | /api/show 能力探测保持缓存的毫秒数(0 禁用缓存;拉取或移除会使该模型缓存失效) |
| models | [] | 对 Harness 可见 → Ollama 模型映射 |
| models[].name | (必填) | 对 Harness 可见的模型名称(GenerateOptions.model) |
| models[].model | = name | Ollama 模型 id |
| models[].contextWindow | (无) | 每个模型的上下文容量 |
| models[].maxTokens | (无) | 每个模型的输出上限 |
| models[].temperature | (无) | 每个模型的采样温度 |
| backends | [] | 兼容 OpenAI 的本地后端(LM Studio / vLLM / llama.cpp) |
| backends[].name | (必填) | 后端名称;注册提供商 id openai: |
| backends[].baseURL | (必填) | 后端基础 URL,包含 /v1,例如 http://127.0.0.1:1234/v1 |
| backends[].apiKey | (无) | 可选的 bearer API 密钥(大多数本地服务器留空) |
| backends[].models | [] | 对 Harness 可见 → 后端模型映射 |
| backends[].maxTokens | 4096 | 当模型没有精确值时使用的每后端输出上限 |
| backends[].temperature | (无) | 每个后端的采样温度 |
| route | [] | 本地模型路由规则(首个匹配生效) |
| route[].model | (必填) | 目标本地模型名称 |
| route[].provider | ollama | 目标提供商 id:ollama 或 openai: |
| route[].purpose | (无) | 任务类型匹配:compaction / session-title |
| route[].keywords | [] | 不区分大小写的请求关键词 |
| route[].always | false | 将所有符合条件的请求路由到此模型 |
工具与界面
| 界面 | 类型 | 功能 |
|---|---|---|
| ollama_list | 工具 | 列出已安装模型、运行中模型和磁盘使用情况 |
| ollama_show | 工具 | 显示参数规模、量化、上下文长度、系列、格式 |
| ollama_pull | 工具 | 拉取(下载)模型 |
| ollama_remove | 工具 | 移除模型 |
| ollama_health | 工具 | 进程存活 + API 响应能力 |
| /ollama | 命令 | 一次性状态概览(模型 + 健康 + 建议) |
消费公共宿主服务 ctx.llm(registerAdapter)、ctx.tools、ctx.subprocess(CLI 探测)以及 ctx.commands。默认情况下,它不注册任何 llm/stream 短路——除非有规则匹配,否则路由监听器会直接放行(next())。
权限与数据
- 权限:对你所配置的 Ollama 端点具有 network:outbound;无原生代码、无文件系统访问、无存储。
- 数据:向模型或用户展示的每个模型列表/详情、健康状态事实以及错误消息都会经过净化处理(丢弃端点 userinfo 和机密查询参数、剥离控制字符、限制长度)。工具和命令结果由宿主自身的工具/命令接缝记录日志。
- 凭据:该插件不存储也不读取任何凭据。它仅向你配置的端点发起 HTTP 请求,外加本地 ollama list 进程探测。
安全边界
- 默认不重新路由——除非你主动选择启用,否则 route 列表为空;请求只有通过显式规则或显式选择 ollama 提供方才能到达本地模型。
- 展示前先净化——端点地址和本地路径在到达工具输出、/ollama 命令或错误消息之前都会经过净化处理。
- 零捆绑模型——下载和存储由 Ollama 自行负责;包中不附带任何内容。
- 失败要响亮,失败要可控——无效配置会导致挂载失败;在产生内容之前失败的本地路由会回退到云端(next()),因此 Ollama 宕机绝不会让对话瘫痪。一个例外: 携带 IMAGE_OFFLOAD_REQUIRED 的失败会被重新抛出,而不会在云端重试——该代码是官方卸载回路在要求这条本地路由丢弃保留的图像,若回退则会跳过该回路,同时将仅限本地的请求静默发送给远程提供方。
- 模型可见 ⟺ 已记录——路由只改变由哪个提供方来服务请求(助手消息会连同其 ollama 来源一起记录);不会凭空产生新的模型可见输入。
已知限制
- npm 0.1.5-rc.2——针对 @deepseek-ai/dsh@0.1.5-rc.2 开发和测试;更新的宿主基线预期可以工作,但由每月兼容性工作流进行验证。
- 模型报告支持时才有视觉能力——/api/show 能力中包含 vision 的模型会声明 inputModalities: ["text","image"],并在用户消息中携带 base64 图像载荷(可通过 vision: false 选择退出);纯文本模型仍会拒绝图像内容(UNSUPPORTED_CONTENT)。
- 流中途回退——一旦本地路由已开始产生内容,后续失败会被转发(而非撤回);只有首个 token 之前的失败才会回退到云端。
开发
pnpm install # node ^22.19 || >=24
pnpm run typecheck # tsc: src + tests against the published 0.1.5-rc.2 types
pnpm run typecheck:ci # strict tsc against published rc.2 types (skipLibCheck off)
pnpm test # vitest:真实的 Context/LlmRuntime/ToolRuntime/CommandRuntime/子进程接缝
pnpm run test:coverage # 覆盖率门槛(90/80/90/90)
pnpm run build # tsdown 打包 + tsc 声明文件(lib/)
pnpm run verify:self-contained # 依赖规格可从注册表解析
pnpm run verify:artifacts # 构建后的 ESM 入口 + 打包补丁已就位
node scripts/check-readme-sync.mjs # 五语言 README 同步门禁
node scripts/check-endpoints.mjs # M3 端点存活探测(Ollama /api/version)
pnpm pack # 发布的 tarball
主题
dsh、dsh-plugin、deepseek-harness、deepseek、cordis、ollama、local-llm、local-models、offline、privacy、model-routing
贡献者
- @PerryLink — 创建者与维护者:适配器、路由、工具、健康检查、净化处理,以及五语言文档。
- @LABEST-IA — 工具调用 CallId 修复(PR #2),以及工具调用槽位与视觉支持报告(issue #1、#3、#5)。
PerryLink DSH 插件家族
本项目是由 PerryLink 维护的 40 个 DeepSeek Harness 插件之一。如果这个对你有帮助,其他的很可能也一样:
| 插件 | 一句话简介 |
|---|---|
| dsh-auto-review | 审批链上的第二模型自动审查,默认失败即关闭 | |
| dsh-background-agents | 持久化后台子代理,带 Web UI 侧边栏、消息传递与中断 | |
| dsh-budget | DeepSeek Harness 的成本治理:预算、碳排与延迟集于一个面板。 | |
| dsh-checkpoint-rewind | 等同于 Claude Code /rewind:快照、会话分叉、一次性恢复 | |
| dsh-claude-move | 将 Claude Code 的会话、记忆、技能与 CLAUDE.md 迁移到 DSH | |
| dsh-click | DeepSeek Harness 的跨平台原生桌面控制——Windows 优先。 | |
| dsh-composer-history | Web 输入框的终端风格输入历史:方向键、Ctrl+R 搜索 | |
| dsh-data-quality | 数据集质量检查与引用交叉核对(此处消费的可选数值桥接) | |
| dsh-defend | DeepSeek Harness 的提示注入、越狱与密钥泄露防御。 | |
| dsh-doublecheck | 工程纪律守卫:需求拷问、测试门禁、对抗式审查 | |
| dsh-draw | DeepSeek Harness 的统一静态图像生成路由。 | |
| dsh-fast | DeepSeek Harness 的只读性能诊断。 | |
| dsh-fund-research | 面向中国公募基金的确定性研究报告 | |
| dsh-github | 面向 DSH 的 GitHub PR/issue 集成,每次写入均需审批把关 | |
| dsh-industry-research | 行业研究编排,通过本插件的 ctx.researchReport.assemble 封存其交付物 | |
| dsh-library | DeepSeek Harness 的本地文档知识库。 | |
| dsh-lsp-actions | 基于语言服务器的 LSP 诊断、格式化、补全、代码操作与重命名 | |
| dsh-mask | PII 脱敏中间件:在模型边界匿名化,在展示层还原 | |
| dsh-mcp-panel | 只读 MCP 运行时面板:/mcp 命令 + 设置标签页,含状态、工具与错误 | |
| dsh-memento | 需审批的跨会话记忆:ctx.memory 接缝 + SQLite + memory 工具 | |
| dsh-observe | DeepSeek Harness 的 OpenTelemetry 与 Langfuse 可观测性导出器。 | |
| dsh-output-styles | 等效于 Claude Code outputStyles 的运行时风格切换 | |
| dsh-permission-rules | Claude Code 风格的声明式 allow/deny/ask 权限规则,带审计 | |
| dsh-personal-directive | 带顶栏开关的个人指令注入器(框架版) | |
| dsh-plugin-guide | 以按需智能体技能形式提供的插件开发知识库 | |
| dsh-plugin-doctor | 面向 DSH 插件的零依赖静态 + 沙箱冒烟检测器 | |
| dsh-reach | 多渠道审批/提问桥接:微信/Telegram/飞书,会话控制台 | |
| dsh-research-report | 可验证的研究报告引擎:内容寻址的证据账本与封存版本 | |
| dsh-score | DeepSeek Harness 插件的多维度质量评分。 | |
| dsh-session-pin | 在 Web 侧边栏中固定会话,并保持持久排序 | |
| dsh-session-sync | DeepSeek Harness 的跨设备会话同步——你的会话存储的专用 git 镜像。 | |
| dsh-skill-pack-security | 安全审计技能包:密钥扫描、依赖与供应链审查 | |
| dsh-talk | DeepSeek Harness 的语音优先会话循环:与它对话,聆听它的回答。 | |
| dsh-test-drive | 针对 DeepSeek Harness 插件的隔离式安装与冒烟测试试驾。 | |
| dsh-ticktick | TickTick/滴答清单任务桥接:会话头部面板 + 11 个工具 |
| dsh-translate | 面向 DeepSeek Harness 的供应商参数转换与确定性 JSON 修复。 | |
| dsh-wechat | 微信 ↔ DSH 桥接(腾讯 iLink 机器人):文本/图片/文件/语音,在聊天中审批 |
| dsh-autotier | 自动进行强/廉价模型层级路由,具备确定性风险防护和 /tier 命令 | |
| dsh-catalog | PerryLink 系列的 DSH Desktop Market 标准目录源 | |
| dsh-cert-mcp | 只读 MCP 服务器,公开认证注册表:评级、快照和五维证据 | |
| dsh-kit | 一键安装核心系列插件的入门包 | |
| dsh-plugin-certification | 社区认证注册表,具备可复现检查的评级和徽章 | |
| dsh-plugin-kit | 面向 PerryLink DSH 插件的共享零运行时依赖工具包 | |
| dsh-plugin-portal | 零依赖静态门户,将整个插件系列渲染为单个页面 | |
| dsh-plugin-upgrade-015 | 合并的 0.1.3-alpha.1 → 0.1.5-rc.1 升级通道卡片,外加零依赖接缝扫描器 | |
| dsh-team-rooms | 跨会话团队房间:共享消息总线、任务板和时线 | |
从 DSH Desktop Market 安装
所有 PerryLink 插件均可在内置的 DSH Desktop Market 中浏览:Market → Sources → add source → 粘贴 https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → 选择它。安装仍需经过 Market 的 npm 身份验证和你的确认。
许可证
Apache License 2.0 © 2026 dsh-local-ai contributors扫码进群