dsh-whale-companion:把隐私安全的会话元数据变成一只桌面鲸鱼

前言

用 DSH 做智能体开发时,会话进度本身是看不见的:回合数、工具调用次数、连续使用记录,都埋在 Host 侧的事件流里。想给这些数据加一层可视反馈,常见做法要么把状态塞回模型上下文,要么把数据送到远端服务,前者浪费 token,后者有隐私代价。

dsh-whale-companion 走了另一条路:插件只在 Host 侧观察已提交的会话事件元数据,不读内容、不连网络,把「潮汐、远征、收藏」这套进度体系渲染成一只可拖动的桌面鲸鱼。下面介绍它的定位、功能、安装方式和实现边界。

这是什么

dsh-whale-companion 是一个 local-first 的 DSH 鲸鱼世界插件,由 LeemanCheung 维护,许可证为 MIT。在目录里它被归入「趣味换装」类。一句话定位:隐私安全的会话元数据,变成一只可拖动的桌面鲸鱼伴侣,附带 20 个可解锁鲸鱼精灵、可见潮汐、个人海湾(cove)、非惩罚性远征,以及 opt-in、仅本地的鲸鱼圈卡片。

版本 2.6.0 针对 DSH 0.1.2-rc.1,保留了既有的名称、外观、位置、进度、收藏、房间预设与 ImageGen 物种图鉴。

对模型侧,它不添加任何 prompt、工具、消息、token 用量或 KV-cache 内容;只在 Host 观察已提交的会话事件元数据,并暴露浏览器 UI。

核心功能

可拖动的桌面鲸鱼

插件提供一只运行在 shell.overlay 上的鲸鱼,支持指针拖拽、键盘移动、边缘吸附,位置持久化时会做视口安全校正。整份 UI 共享一个 5 秒本地刷新周期。新的潮汐时刻出现在有界的可见气泡里,只有里程碑会通知读屏器。

20 个鲸鱼精灵与 XP 体系

20 个可解锁鲸鱼精灵随 Ocean Levels 1–100 逐步解锁,每个精灵把自身故事和可见潮汐响应映射到一类安全事件,不改变模型行为。

XP 规则是明确的:

  • 每回合 10 XP(只有 user/message 计为回合)
  • 每个工具结果 5 XP
  • 每次会话开始 20 XP

等级由 XP 推导,连续记录使用 UTC 会话开始日期,缺勤不扣减进度或收藏。

潮汐、收藏与远征

潮汐时刻由 live-only 的 session/createduser/messagetool/result 元数据驱动,且是有界的。重复的工具结果仍计入既有 XP,但无法刷潮汐时刻、收藏品或远征进度。

Whale Home 页面提供七天海洋日志、当前鲸鱼故事节点、cove 可视化预览,以及一份基于真实字段的 Privacy Ledger。另有潮汐时间线、本地 PNG 明信片导出、24 项收藏品目录、8 个固定房间槽位、3 套房间预设,以及一套非惩罚性远征。6 套 cove 主题调整背景、界面强调色和环境光,鲸鱼美术保留自身配色;12 个成就全部包含。

分享:漂流瓶与鲸鱼圈卡片

访客漂流瓶是隔离的只读房间预览,不会合并或覆盖接收者的进度。

鲸鱼圈卡片是 opt-in 的、仅基于本地文件的交换:只包含预设别名、物种、皮肤、粗粒度活跃分桶和共鸣星,没有账号、网络、排行、自由文本、提示词摘录、任务名或工具数据。

呈现模式与动画

安静、标准、活泼三种呈现模式存于浏览器本地偏好,系统 reduced-motion 始终优先,存储被拒绝时安全回退且不影响进度。

2.6.0 带来一段 2.4 秒的墨鲸跃出动画:96 帧、40 fps,原生 WebP 采用 25ms 均匀帧间隔。系统或产品内 reduced-motion 开启时切换为对应 PNG 静帧,且不替换原有的 Dive/Classic 状态动画。

安装与启用

安装到 DSH Web profile:

dsh plugin --profile web add github:LeemanCheung/dsh-whale-companion

安装后重启现有 DSH Web 进程并刷新页面即可看到鲸鱼。

开发验证与美术管线

如果要自己构建或验证,在仓库根目录执行:

corepack pnpm typecheck
corepack pnpm verify:minke
corepack pnpm test
corepack pnpm build
corepack pnpm pack:check

美术管线需要先装依赖:

python -m pip install -r requirements-art.txt

管线固定于 Python 3.12、NumPy 2.3.3、Pillow 12.3.0。corepack pnpm art:minke 重建透明 sprite,corepack pnpm art:species 规范化仓库内置的 20 物种 ImageGen 图鉴。视觉快照基线在 Ubuntu CI 维护,其他平台仍运行交互、动效、reduced-motion 和窄布局断言,但不生成 RC 截图基线。生产客户端内嵌这些栅格资产,不含运行时矢量鲸鱼绘制。

隐私与实现边界

这是这个插件最值得写清楚的部分:

  • Host 只读取 session id、事件序号、事件类型和时间戳,从不读取、存储、导出或渲染提示词、助手输出、代码、路径、工具参数或工具结果。
  • 内存回执摘要使用不离开 Host 进程的 HMAC 密钥;持久化回执窗口上限 4,096 条,只防近期重复投递,不防跨 Host 重启的永久重放。备份刻意不含回执摘要、session id 或事件数据。
  • 后台写入失败不会中断 DSH 会话,可能只丢失该次进度更新,后续更新仍被接受;显式的用户保存仍会报告失败。
  • 文本导入在 JSON 解析前统一限制 512 KiB;持久化写入全部做 schema 校验。
  • 进度存于单一 DSH 存储后端,不跨设备同步。
  • overlay 每 5 秒轮询一次,原因是当前 host Remote 事件允许列表没有包内鲸鱼状态推送路由。
  • 鲸鱼圈卡片刻意只支持本地导入/导出;要做托管社区,需要另行拥有、鉴权并审核的传输提供方。

适用场景与注意

适合的读者:在 DSH Web 环境里长期工作、想要一份本地优先的进度可视化,同时不希望插件触碰提示词内容、不给模型增加任何开销的人。它也适合作为「Host 侧只观察元数据」这类插件形态的参考实现。

注意以下几点:

1、该插件以当前 dsh 进程的权限运行,安装前建议先阅读仓库源码与 LICENSE(MIT)确认可接受。
2、进度不做跨设备同步,换机器不会带走进度。
3、回执机制防的是近期重复投递,不是跨重启的永久重放,这一点 README 写得很明确。

结尾

dsh-whale-companion 展示了一种克制的插件形态:只用事件元数据、全部计算和存储留在本地、对模型零开销,把日常会话变成一个可积累的鲸鱼世界。如果你在做 DSH 插件或想给工作环境加点趣味,值得一试。

  • 目录页:https://www.skillhub.cn/plugins/LeemanCheung/dsh-whale-companion
  • GitHub:https://github.com/LeemanCheung/dsh-whale-companion
羽毛球分组比赛记分
小程序二维码

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

小夜