按任务分配模型,跨会话记住上下文
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/7 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ponm3ay/dsh-plugins该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 25 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/7) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 57 处,展示前 32 条)
- 读取本地文件plugins/dsh-provider-accent/build-client.mjs:16
const id = JSON.parse(readFileSync(join(root, 'package.json'), 'utf8')).name - 读取本地文件plugins/dsh-provider-accent/build-client.mjs:23
const source = readFileSync(join(root, 'src', 'client.js'), 'utf8') - 写入本地文件plugins/dsh-provider-accent/build-client.mjs:29
mkdirSync(join(root, 'lib'), { recursive: true }) - 写入本地文件plugins/dsh-provider-accent/build-client.mjs:30
writeFileSync(join(root, 'lib', 'client.js'), bundle) - 读取本地文件plugins/dsh-provider-accent/lib/index.js:28
const bundle = readFileSync(fileURLToPath(new URL("./client.js", import.meta.url)), "utf8"); - 读取本地文件plugins/dsh-subagent-usage/build-client.mjs:17
const id = JSON.parse(readFileSync(join(root, 'package.json'), 'utf8')).name - 读取本地文件plugins/dsh-subagent-usage/build-client.mjs:24
const source = readFileSync(join(root, 'src', 'client.js'), 'utf8') - 写入本地文件plugins/dsh-subagent-usage/build-client.mjs:30
mkdirSync(join(root, 'lib'), { recursive: true }) - 写入本地文件plugins/dsh-subagent-usage/build-client.mjs:31
writeFileSync(join(root, 'lib', 'client.js'), bundle) - 读取本地文件plugins/dsh-whale-backdrop/build-client.mjs:16
const id = JSON.parse(readFileSync(join(root, 'package.json'), 'utf8')).name - 读取本地文件plugins/dsh-whale-backdrop/build-client.mjs:23
const source = readFileSync(join(root, 'src', 'client.js'), 'utf8') - 写入本地文件plugins/dsh-whale-backdrop/build-client.mjs:29
mkdirSync(join(root, 'lib'), { recursive: true }) - 写入本地文件plugins/dsh-whale-backdrop/build-client.mjs:30
writeFileSync(join(root, 'lib', 'client.js'), bundle) - 读取本地文件plugins/dsh-whale-backdrop/entry.js:50
for (const entry of await readdir(ASSETS, { withFileTypes: true })) { - 读取本地文件plugins/dsh-whale-backdrop/entry.js:54
const info = await stat(join(ASSETS, entry.name)) - 读取本地文件plugins/dsh-whale-backdrop/entry.js:86
const info = await stat(file.absolute) - 读取本地文件plugins/dsh-whale-backdrop/entry.js:108
createReadStream(file.absolute).pipe(res) - 发起网络请求plugins/dsh-whale-backdrop/lib/client.js:73
fetch(MANIFEST, { cache: 'no-store' }) - 发起网络请求plugins/dsh-whale-backdrop/src/client.js:71
fetch(MANIFEST, { cache: 'no-store' }) - 写入本地文件plugins/dsh-whale-memory/index.js:138
mkdirSync(dir, { recursive: true }) - 写入本地文件plugins/dsh-whale-memory/index.js:150
appendFileSync(LOG_FILE, line) - 读取本地文件plugins/dsh-whale-memory/index.js:153
if (statSync(LOG_FILE).size > LOG_CAP) { - 读取本地文件plugins/dsh-whale-memory/index.js:154
const text = readFileSync(LOG_FILE, 'utf8').slice(-(LOG_CAP * 0.8)) - 写入本地文件plugins/dsh-whale-memory/index.js:155
writeFileSync(LOG_FILE, text) - 读取本地文件plugins/dsh-whale-memory/index.js:167
if (existsSync(file)) { - 读取本地文件plugins/dsh-whale-memory/index.js:170
const text = readFileSync(file, 'utf8').replace(/^ FEFF/, '') - 写入本地文件plugins/dsh-whale-memory/index.js:182
writeFileSync(file, JSON.stringify(value, null, 2)) - 读取本地文件plugins/dsh-whale-memory/index.js:443
const stat = statSync(file) - 读取本地文件plugins/dsh-whale-memory/index.js:445
const text = readFileSync(file, 'utf8') - 写入本地文件plugins/dsh-whale-memory/index.js:449
writeFileSync(file, start === -1 ? kept : kept.slice(start + 1)) - 写入本地文件plugins/dsh-whale-memory/index.js:462
appendFileSync(file, buf.join('')) - 删除本地文件plugins/dsh-whale-memory/index.js:778
unlinkSync(row.file)
扫描于 2026/11/1(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 按任务分配模型
- 跨会话长期记忆
- 子代理用量显示
DSH 插件集:按任务给不同模型派活(设置页「辅助模型」槽位面板 + 压缩槽真接线)、跨会话长期记忆(流水捕获 → 摘要注入 → 自动整理)、子代理用量显示、界面背景。本地插件源码 + 安装脚本 + 凭证规范,不改 DSH 本体源码。
README
由 DeepSeek 最新模型翻译生成dsh-model-routing
DSH 插件集:按任务给不同模型派活 + 跨会话长期记忆。 (另含两个装饰件:子代理用量显示、界面背景。)
四只插件各管一段:
| 能力 | 插件 |
| 按任务选模型(设置页「辅助模型」槽位面板,落盘机器可读的槽位表) | dsh-aux-models |
| 跨会话长期记忆(流水捕获 → 摘要注入 → 自动整理,注入前威胁扫描) | dsh-whale-memory |
| 子代理用量显示(本轮实际模型 / 推理等级 / token) | dsh-subagent-usage |
| 界面背景 + 面板半透明 | dsh-whale-backdrop |
本仓库收录「大肥鱼」为 DeepSeek Harness(DSH)写的插件(本地插件源码 + 安装/回滚脚本 + 第三方插件清单)。每个插件都能单独安装、单独卸载,不改 DSH 本体源码。
展开完整文档(README 剩余 1 节)
dsh-model-routing
DSH 插件集:按任务给不同模型派活 + 跨会话长期记忆。 (另含两个装饰件:子代理用量显示、界面背景。)
四只插件各管一段:
| 能力 | 插件 |
| 按任务选模型(设置页「辅助模型」槽位面板,落盘机器可读的槽位表) | dsh-aux-models |
| 跨会话长期记忆(流水捕获 → 摘要注入 → 自动整理,注入前威胁扫描) | dsh-whale-memory |
| 子代理用量显示(本轮实际模型 / 推理等级 / token) | dsh-subagent-usage |
| 界面背景 + 面板半透明 | dsh-whale-backdrop |
本仓库收录「大肥鱼」为 DeepSeek Harness(DSH)写的插件(本地插件源码 + 安装/回滚脚本 + 第三方插件清单)。每个插件都能单独安装、单独卸载,不改 DSH 本体源码。
- 🧩 插件源码 → plugins/
- 🔐 凭证与密钥规范 → docs/credentials.md
- 📦 第三方插件清单(不打包,只给出处与安装命令)→ docs/third-party-plugins.md
- 🛠 安装 / 卸载 / 回滚 → docs/install.md
插件一览
| 插件 | 一句话 | 形态 | 版本 |
| dsh-subagent-usage | 在对话里显示本轮实际用的模型 / 推理等级 / token 消耗,子代理会话尤其好用 | Host + Client | 0.1.0 |
| dsh-whale-memory | 长期记忆:自动捕获会话流水、自动注入记忆摘要(威胁快照扫描 + 每会话冻结)、会话结束自动用便宜模型压缩成摘要 | Host | 0.2.0 |
| dsh-whale-backdrop | 给界面铺一张背景画 + 面板半透明,每次刷新随机换图 | Host + Client | 0.1.0 |
| dsh-aux-models(独立仓) | 设置页「辅助模型」面板:按任务选模型(服务商/模型/超时),选型落盘一份机器可读的槽位表 | Host + Client | 0.1.0 |
三只插件都遵循同一条设计约束:只做加法。注册自己的服务、路由、样式与钩子,卸载即还原,不修改 DSH 本体的任何文件。
「辅助模型」面板 2026-10-06 已拆成独立仓库 ponm3ay/dsh-aux-models:它不依赖本仓任何东西,装法看那边的 README。本仓只留一行索引、不再放副本,避免两份源码各走各的。
快速开始
前置:已经装好 DSH(桌面端或 CLI),并且知道自己的 profile 目录。
1) 取得源码
git clone https://github.com/ponm3ay/dsh-model-routing.git
cd dsh-model-routing
2) 安装(自动找 $DSH_HOME/profiles/<profile> 并挂载本地插件) pwsh -File scripts/install.ps1 -Profile desktop # Windows bash scripts/install.sh -p desktop # macOS / Linux
3) 重启 DSH(或刷新页面)后生效
只想装某一个插件:
pwsh -File scripts/install.ps1 -Profile desktop -Plugin dsh-subagent-usage
手动安装的原理与每一步细节(含回滚)见 docs/install.md。
凭证与密钥
这个仓库里没有任何密钥,将来也不会有。 所有插件都遵守同一条规矩:
配置文件里只写凭证的名字(apiKeyEnv: MY_API_KEY),真值只存在于 用户级环境变量 或 DSH 凭证库($DSH_HOME/.credentials.yaml)。
正确:仓库里是引用名 config: apiKeyEnv: TOKENHUB_API_KEY # 真值在环境变量/凭证库里
错误:真值进了文件,一提交就泄露 config: apiKey: sk-xxxxxxxxxxxxxxxx
要点:
1. 复制 .env.example 得到本地 .env 时,.env 已被 .gitignore 排除;但更推荐直接用 setx(Windows)或 export(*nix)设置用户级环境变量——不落文件、不参与同步。
2. 密钥不要放进任何会被云同步的目录(OneDrive / iCloud / Dropbox 覆盖的桌面、文档、图片)。
3. 提交前先自查:pwsh -File scripts/verify-no-secrets.ps1(CI 也会跑同一套规则)。
4. 一旦密钥进过 git 历史或同步盘:吊销并重新签发,删文件不算处置。
完整规范、泄露处置流程、CI 配置见 docs/credentials.md。
仓库结构
dsh-model-routing/
├── plugins/ # 自研插件源码,一个目录一个插件 │ ├── dsh-subagent-usage/ │ ├── dsh-whale-memory/ │ └── dsh-whale-backdrop/ ├── docs/ │ ├── credentials.md # 凭证与密钥规范 │ ├── install.md # 安装 / 卸载 / 回滚 │ └── third-party-plugins.md # 第三方插件清单与出处 ├── scripts/ │ ├── install.ps1 install.sh # 安装脚本 │ ├── uninstall.ps1 # 卸载 / 回滚 │ └── verify-no-secrets.ps1 # 密钥自查(CI 同款) ├── .github/workflows/ci.yml # 密钥扫描 + 语法检查 ├── .env.example # 环境变量样板(占位符) └── SECURITY.md CONTRIBUTING.md CHANGELOG.md LICENSE
插件是怎么被 DSH 加载的(30 秒版)
DSH 的 profile 是一个 pnpm 项目:$DSH_HOME/profiles/<profile>/。
1. package.json 的 dependencies 里挂上插件包(本地插件用 link:<绝对路径>);
2. package.json 的 dsh.profile.bundles 里列出要激活的插件;
3. bundle 型插件自带 dsh.bundle.patch(cordis.patch.yml),被列出后自动挂载,改完免重启热生效;
4. 非 bundle 型插件要在 profile 的 cordis.patch.yml 里手写一行 - insert: { id, name } 才会激活。
本仓库的插件都是 bundle 型,装完刷新页面即生效。
开发
插件是普通的 ESM(Node ≥ 22.19 或 ≥ 24)。带浏览器半边的插件用自带的构建脚本产出 lib/client.js:
node plugins/dsh-subagent-usage/build-client.mjs # src/client.js -> lib/client.js
自测脚本:
node plugins/dsh-subagent-usage/verify/fold-test.mjs
node plugins/dsh-subagent-usage/verify/client-test.mjs
node plugins/dsh-whale-backdrop/build-client.mjs
pwsh -File scripts/verify-no-secrets.ps1 # 提交前必跑
改代码免重启生效的小技巧(DSH 的模块缓存按 URL 记):同时改文件名与 patch 行 id。
详见各插件 README。
第三方插件
DSH 生态里好用的插件不止这些。本仓库不打包别人的作品(版权与上游维护归原作者),而是在 docs/third-party-plugins.md 里维护一份清单:包名、用途、出处仓库、许可证、安装命令。
安全
发现安全问题请按 SECURITY.md 私下报告,不要开公开 issue。
贡献
欢迎 PR。提交前请读 CONTRIBUTING.md——最重要的一条: 不要提交任何密钥、token、真实路径或个人信息。
许可
MIT © 2026 ponm3ay
本仓库里的插件都是「大肥鱼」给自己造的零件:注释里留着它的口径、踩过的坑和当时的账。
如果你也住在 DSH 里,欢迎拿去用。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ponm3ay/dsh-plugins
按任务分配模型,跨会话记住上下文
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,462已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,848已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,246已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 4,717已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,711已汉化DSH
71.1