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

子代理小鱼头像 CharTyr/DSH-SubAgent-Fish

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

给每个子代理生成会游动的专属小鱼头像

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 33 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

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

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

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 20:00:04

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

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

扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 生成子代理专属头像
  • 头像会游动

小鱼!现在会成为你的Deepseek Harness 子智能体...的头像!

README

由 DeepSeek 最新模型翻译生成
DSH SubAgent Fish 给 DSH 的每个子代理一条会游动的小鱼头像 同一条鱼由子代理的 ID 决定 —— 同一个子代理永远是同一条鱼,不同子代理自然分成不同的鱼形、颜色与花纹。子智能体运作时会游动,停止时鱼也会停止游动。 哦——小鱼————! PolyForm Noncommercial 1.0.0 · 非商业使用 · LICENSE 样图 安装 插件是一个普通的 DSH 组合包(bundle)。装之前先确认两件事: - 有一个能跑的 DSH(下面以 web profile 为例); - 需要搭配 dsh-better-sidebar 使用 直接从 GitHub 装(推荐) dsh plugin --profile web add github:CharTyr/DSH-SubAgent-Fish lib/ 是构建产物,但已经提交进仓库,所以不会触发构建、也不需要 npm install,装完即用。
展开完整文档(README 剩余 1 节)
DSH SubAgent Fish

给 DSH 的每个子代理一条会游动的小鱼头像

同一条鱼由子代理的 ID 决定 —— 同一个子代理永远是同一条鱼,不同子代理自然分成不同的鱼形、颜色与花纹。子智能体运作时会游动,停止时鱼也会停止游动。

哦——小鱼————!

PolyForm Noncommercial 1.0.0 · 非商业使用 · LICENSE

样图

安装

插件是一个普通的 DSH 组合包(bundle)。装之前先确认两件事:

- 有一个能跑的 DSH(下面以 web profile 为例);
- 需要搭配 dsh-better-sidebar 使用

直接从 GitHub 装(推荐)

dsh plugin --profile web add github:CharTyr/DSH-SubAgent-Fish

lib/ 是构建产物,但已经提交进仓库,所以不会触发构建、也不需要 npm install,装完即用。

想固定在某个版本而不是跟着默认分支走,在仓库名后面加 # 加标签:

dsh plugin --profile web add github:CharTyr/DSH-SubAgent-Fish#v0.1.0

或者从本地克隆装

git clone https://github.com/CharTyr/DSH-SubAgent-Fish.git
cd DSH-SubAgent-Fish
dsh plugin --profile web add link:$PWD

如果被拒绝了

这不是你的问题:pnpm 在装的时候可能顺手把你 profile 里别的插件升到与当前 dsh 不兼容的版本, DSH 的兼容检查就会拒绝整次安装并回滚。这种情况下手工加两处即可,完全不碰 pnpm:

1. 打开 ~/.dsh/profiles/web/package.json,在 dependencies 里加一行(github: 或 link: 按你上面用的那种):

"dsh-subagent-fish": "github:CharTyr/DSH-SubAgent-Fish"

2. 同一个文件的 dsh.profile.bundles 数组末尾追加一项:

"dsh-subagent-fish"

必须在 dsh-better-sidebar 之后 —— 本插件要向它注册页面,得先有它。

3. 在 profile 目录里装上去:

cd ~/.dsh/profiles/web
pnpm install

确认挂上了(可选)

dsh --profile web --dump-config | grep -A1 subagent-fish

应该看到:

- id: subagent-fish
name: dsh-subagent-fish

同时确认输出里没有 skipped bundle。

重启

先停掉正在跑的 dsh web,再重新启动
dsh web

插件在启动时组合进插件树,所以必须重启才会加载。

核对

重启后应该看到:

- better-sidebar 侧边栏里多出一页「子代理 · 小鱼」
- 同一个子代理反复进出,鱼始终是同一条;不同子代理是不同的鱼。

还想更确定一点,可以对着 dsh web 启动时打印的那个 URL 跑一次自检:

node tools/verify-live.mjs 'http://127.0.0.1:3080/?token=…'

它会兑换 cookie、读回服务端真正组合出来的客户端模块图,核对本插件的 bundle 确实被送到浏览器。

卸载

dsh plugin --profile web remove dsh-subagent-fish

手工加的话,把上面加的两处删掉,重启即可。

它做什么

只做两处,都是「加」而不是「换」:

| | 位置 | 做法 |
| D | 右侧栏的子代理对话标签 | 替换该标签标题的画法(sidebar.right.pane.tab.title)。子代理对话的类型没有占用这个位置,所以标签上写什么由本插件决定,而标签正文一个字都不碰。 |
| E | dsh-better-sidebar「任务管理」页里已有的子代理行 | 把鱼挂到它每一行的状态点左边。它没留行级扩展口,同 id 接管又会直接抛错,所以只能等它渲染完再插进去 —— 这是全插件唯一碰别人 DOM 的地方,见下。没装 better-sidebar 时这部分自动不生效,D 照常。 |
| F | DSH「智能体团队」的成员行 | 同 E:团队插件只注册了会话标题栏的一个按钮,名单面板是它自己画的,也只能等它渲染完再插进去。名单取自会话投影 agentTeam。 |

整条插件没有主机侧逻辑:鱼的身份是子代理 id 的纯函数,数据本来就在客户端。

什么时候会游

子代理在跑,鱼就游;不在跑,鱼就静着。

这不是随手加的规则,是让「动」本身带上信息:一屏几十条鱼全在扭只会晃眼,而现在扫一眼就知道谁还在干活。

实现上不带游动标记的鱼引擎根本看不见(fishSvg 的 still 选项),所以静止的鱼不占动画开销,也不会有「半动」的中间状态。状态一变,那一条鱼会被换成对应的版本。

关于 E / F 为什么是「插进 DOM」而不是插槽

better-sidebar 的 subagent 标签(中文名「任务管理」)渲染的是它自己的 SubagentView, 每一行没有留任何扩展口;想用同 id 顶掉它也不行 —— 它的 registerTab 遇到重复 id 会直接抛错,内置标签走的是同一个注册表。

所以 E / F 只能在它们渲染出来的行上挂,并且写得尽量防守:

- 锚点用 role="treeitem" + aria-level 这组 ARIA 语义,不是会随构建变化的 CSS 类名;
- 必须同时找得到子代理行专有的标签元素才动手,因此不会误伤文件树等别的 treeitem;
- 从行里的文字反查子代理 id,查不到就什么都不做,绝不猜;
- 它升级把这套结构改掉时,最坏结果是鱼不出现,不会把它的页面弄坏;
- 插件卸载时断开观察、并把自己插进去的鱼收干净。

许可

PolyForm Noncommercial License 1.0.0

preview/dsh-theme.css 是从 DSH 自己的主题包里原样提取的,而 DSH 以 MIT 发布。该文件仍按 MIT 分发,不受本仓库协议约束

Friendly Links

LINUX DO
预览分享卡片长什么样 ↓CharTyr/DSH-SubAgent-Fish
分享 · DeepSeek Harness Hub
CharTyr/DSH-SubAgent-Fish

给每个子代理生成会游动的专属小鱼头像

这是你的仓库?认领条目

回到顶部