🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

本地算力池 suanlv/dsh-local-compute-pool

DeepSeek Harness
suanlv22 天前有提交已提供中文文档扫描:未发现敏感能力

把多台机器的本地模型并成算力池并派子代理并行

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/14 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add suanlv/dsh-local-compute-pool
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · other
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 22 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/11/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装;安装清单取自 plugin/package.json

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-local-compute-pool(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/14 13:14:40

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
  • 发起网络请求
    plugin/lib/tool.js:63
    const response = await fetch(url, { headers, signal: AbortSignal.timeout(PROBE_TIMEOUT_MS) });
扫描于 2026/11/3(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 插件:把多个本地推理端点汇成池,让委派的子代理分散跑在上面

README

由 DeepSeek 最新模型翻译生成
description: "DSH 插件:把多个本地推理端点并成一个算力池,让被委派的子代理按负载铺开到各台机器上,并对每个端点做并发准入控制。" kind: "package-bundle" 本地算力池 一个 DeepSeek Harness 插件:把多个本地推理端点并成一个算力池。被委派的子代理会按负载铺开到各台机器上,每个端点有独立的并发闸门与排队,失败端点会被冷却隔离、下次请求自动换机;所有本地端点都不可用时,子代理保持 harness 原本解析出的线路继续跑。 * 包名:dsh-local-compute-pool | 卡片名:本地算力池 / Local compute pool * 分发形态:裸目录束(不是 npm 包)——克隆本仓库后按下面的绝对路径方式安装 * 许可:MIT 它解决什么 本地部署的模型有三个现实约束,这个插件的每个机制都对应其中之一: | 本地推理的现实 | 本插件的做法 | | 显存/内存有限,通常一次只能服务一个会话 | 每个端点一个并发闸门(默认 1):同时最多放行 concurrency 个请求,其余排队(有深度上限、有超时) | | 上下文缓存能力弱 | 每个子代理终身黏在一台机器上,前缀缓存与工具调用方言保持稳定 | | 不擅长多发并行 | least-busy 策略把子代理铺开到不同机器,而不是堆在一台后面排队 |
展开完整文档(README 剩余 1 节)
description: "DSH 插件:把多个本地推理端点并成一个算力池,让被委派的子代理按负载铺开到各台机器上,并对每个端点做并发准入控制。"
kind: "package-bundle"

本地算力池

一个 DeepSeek Harness 插件:把多个本地推理端点并成一个算力池。被委派的子代理会按负载铺开到各台机器上,每个端点有独立的并发闸门与排队,失败端点会被冷却隔离、下次请求自动换机;所有本地端点都不可用时,子代理保持 harness 原本解析出的线路继续跑。

* 包名:dsh-local-compute-pool | 卡片名:本地算力池 / Local compute pool
* 分发形态:裸目录束(不是 npm 包)——克隆本仓库后按下面的绝对路径方式安装
* 许可:MIT

它解决什么

本地部署的模型有三个现实约束,这个插件的每个机制都对应其中之一:

| 本地推理的现实 | 本插件的做法 |
| 显存/内存有限,通常一次只能服务一个会话 | 每个端点一个并发闸门(默认 1):同时最多放行 concurrency 个请求,其余排队(有深度上限、有超时) |
| 上下文缓存能力弱 | 每个子代理终身黏在一台机器上,前缀缓存与工具调用方言保持稳定 |
| 不擅长多发并行 | least-busy 策略把子代理铺开到不同机器,而不是堆在一台后面排队 |

核心不是"跑得更快",而是让"多派几个子代理"这件事在本地模型上从不可用变成可用:本地服务收到两个并发请求时往往不是各慢一半,而是双双超时或把显存打爆。

你可能正卡在这里

试想一下:你手上有好几张性能不错的显卡,在 Strata 或 NInfer 这类框架下跑 LLM,速度和质量都还算满意。
你不缺电脑——但家用主板往往只有两条 PCIe 插槽,你没法把它们全塞进同一台机器,也就没法让它们同时为一个任务干活。

瓶颈从来不是算力不够,而是这些算力分散在几台电脑里、各自为战。

本地算力池就是为解决这件事而写的。 它让不同电脑上的模型以「子代理」的身份参与同一个任务:主代理把工作拆开,插件把拆出来的子代理分配到各台机器上并行执行,再汇总结果。

我自己就是这么用的:一台 5090 和一台双卡 4080S,两边都能以约 100 tok/s 跑 Qwen 3.8 Flash Next。
启用这个插件后,同一个任务里两个子代理分别落在两台机器上同时推进,合计有效吞吐约 200 tok/s——相当于把两台电脑拼成了一台你没插槽去拼的机器。

需要说清楚的是:这不是让单次生成变快(自回归解码没法把两路的 token 相加),而是让同一个任务里的多个子代理真正并行,总吞吐随之叠加。

设置页里那两个列表

插件设置页的核心就是两个列表,分工很明确:

1. 触发白名单——标记哪些模型允许启用本插件。只有任务自身跑在白名单里的 provider 上时,它派生的子代理才会交给本地池;没勾选的任务完全不受影响,子代理保持原有线路。
2. 子代理模型池——列出哪些机器/端点愿意提供算力。每个端点单独设置并发数,插件按负载把子代理铺开到这些端点上。

前置条件

* DeepSeek Harness 桌面端(本插件在 0.2.0-rc.2 上开发与验证)。
* 已经在 llm-pi-ai 里配好至少一个本地 OpenAI 兼容 provider(例如 local → http://127.0.0.1:8888/v1)。
插件不自己发 HTTP、不新增 provider,只负责"选谁 + 排队"。

安装

只有两步,不需要 npm、不需要构建、没有任何依赖。这个仓库是裸目录束,克隆下来就是插件运行所需的一切。

克隆本仓库:

git clone https://github.com/suanlv/dsh-local-compute-pool.git

然后用插件管理器安装 plugin 目录的绝对路径:

plugin_manager action: install_bundle
target: <克隆下来的仓库目录>\plugin

有意不发布到 npm:那要额外注册 registry 账号,而且每次改动都得改版本号重新发布一次,换来的只是替使用者省下一次 git clone。理由见 docs/DESIGN.md。

安装后:

* 包会加入 profile 的 dsh.profile.bundles,本仓库 plugin/cordis.patch.yml 作为一层 patch 插入插件行;
* 新装的 bundle 可以热生效;若提示 restart-required,重启 Harness 桌面端;
* 之后改 cordis.patch.yml 的 config 会被 HMR 实时重载;改 JavaScript(index.js / lib/ / client.js)需要重启(浏览器半边刷新页面即可)。

卸载:plugin_manager action: remove_bundle target: dsh-local-compute-pool。

第一次使用

1. 添加端点:侧栏 插件(Plugins) → 卡片 本地算力池 → 「子代理模型池」→「+ 添加本地端点」。
provider 从实时目录里选,模型 选 auto(该 provider 广告的第一个模型)或精确 id, 并发 填该机器能同时服务几个请求(单会话本地服务填 1)。
出厂端点列表是空的:指向别人机器上不存在服务的默认值只会失败,所以不预设。
2. 决定谁能用本地算力:「触发白名单」里勾选 provider——只有任务自身的模型跑在这些 provider 上时,它派生的子代理才会落到本地池;白名单为空则表示"不限制"。每行旁边的数字是该任务的子代理并行上限,它会写进该任务的提示词,并且在网关处真实限流(按任务计数,跨机器也算同一个任务的账)。
3. 验证:一条消息里起两个 subagent,它们应当落到不同端点上;或让模型调用 local_pool 工具,查看每台机器在跑几个、排队几个、哪台冷却中、有几台的名额被任务自身占着,以及每个任务持有多少子代理预算。

已知边界(提 issue 前请先读这一节)

只管子代理。默认 applyTo: children:主代理保持自己的模型。改成 all 会让主代理整段对话 落到本地模型,工具调用能力取决于那个模型本身。
* 不自己发 HTTP,也不做重试。请求走你在 llm-pi-ai 里配好的 provider;重试由 dsh-llm-retry 负责。
插件只是在每次重试经过 agent/request 时重新选端点——这正是失败后能换机器的原因。
* 它不认识"设备",只认识 provider id。当前所有端点都是 127.0.0.1 形态;远端那台靠端口转发/隧道到达。
它不区分"同一台机器的两个端口"与"两台机器",也没有设备发现、远端传输、集群成员或认证。
* 不做跨机协作:没有会话迁移、没有跨机缓存共享、没有分布式状态。每个子代理的世界就是它黏住的那台机器。
* 不是通用负载均衡:决策粒度是"子代理",不是"请求"。
* concurrency 是你声明的值,插件无法探知服务端真实并发能力。填大了会把本地服务压垮。

配置

完整字段表见 plugin/README.md(中文)与 plugin/README.en.md(English)。
出厂 plugin/cordis.patch.yml 里每一项都有注释。

测试

plugin/lib/ 只依赖 Node 标准库,没有依赖、没有构建步骤。

node plugin\test\pool.test.mjs # 23:端点池——选择/黏性/排队/冷却/任务占位
node plugin\test\plugin.test.mjs # 25:宿主半边接线——路由改写、并发闸门、白名单预算、工具输出
node plugin\test\client-page.test.mjs # 21:浏览器半边——设置页渲染、开关控件、写操作

装后自检(模拟宿主解析一遍:登记 / 入口 / Config / 客户端标识符 / locale 信封 / 补丁行 id / 工具注册):

建议用宿主自己的运行时跑,这样 app.asar 里的模块才解析得到 $env:ELECTRON_RUN_AS_NODE='1' & "<安装目录>\DeepSeek Harness.exe" tools\verify-install.mjs

纯 node 也能跑,但 Config 那条会如实报"读不了 app.asar"
node tools\verify-install.mjs

tools/probe-asar-import.mjs 演示了这个区别为什么重要:Electron 的 Node 能 import() app.asar 里的模块,纯 Node 不能。这是设置页能否出现的前提条件,也是出问题时最容易误判的一点。

开发说明

* 宿主半边(plugin/index.js、plugin/lib/)必须整代重启:模块按 URL 缓存,只改入口文件名会造成"新入口 + 旧 lib"的混合世代。
浏览器半边(plugin/client.js)是静态文件,刷新页面即可换新。
* 用 plugin_manager 安装/卸载,不要手改 profile 的 package.json。

出处

本插件最初为作者自己的一台开发机而写(两台本地端点 + 一个云端主代理),经过多轮修正才形成现在的形态。
命名决策、逐版验证记录与设计取舍见 CHANGELOG.md 与 docs/DESIGN.md; plugin/VERIFICATION.md 记录了"验证了什么"与"没验证什么"。
预览分享卡片长什么样 ↓suanlv/dsh-local-compute-pool
分享 · DeepSeek Harness Hub
suanlv/dsh-local-compute-pool

把多台机器的本地模型并成算力池并派子代理并行

这是你的仓库?认领条目

回到顶部