dsh-whale-maid-mascot:页面内 Whale-chan 伴侣与可选 Telegram 桥接

前言

在 DeepSeek Harness(DSH)里做智能体开发时,主界面往往是会话列表、工具调用和文件树;长时间盯着同一套 UI,缺少一个「常驻、可对话、又能复用同一套 DSH 能力」的入口。社区里已有以看板娘形态挂在 Web UI 角上的做法;dariodemh/dsh-whale-maid-mascot 在 yefeng7531/dsh-whale-maid-mascot(MIT)基础上扩展,把页面内角色、共享 Agent 会话、本地长期记忆,以及可选的 Telegram 长轮询桥接接到同一条会话上。下面按定位、能力、安装与配置说明如何使用,并交代权限与安全注意点。

这是什么

Whale-chan(DeepSeek 娘)是面向 DSH Web UI 的页面内伴侣插件,维护者为 dariodemh,在 SkillHub 目录中归类为「趣味换装」。它不是 DeepSeek 或幻方官方组件;DSH 生态采用「一切皆插件」,社区目录站点与上游无从属关系。插件自述为研究友好的 MIT 开源衍生项目(详见仓库 NOTICE 与 LICENSE),模型供应商与 Telegram Bot 均由使用者自行配置,不会经由此仓库共享。

浏览器角标与 Telegram(若配置)共用同一角色、同一 Agent 会话与同一记忆:手机发的一条消息会进入浏览器里同一段对话,角色在任意一端均可调用 DSH 真实工具(文件、Shell、搜索、Skills 等)。

核心功能

页面内(Web UI)

  • 看板娘:可拖拽、点击互动,四套服装与情绪姿势、 speech bubble。
  • 对话:双向可带图片,支持本地生成的卡片与涂鸦类内容。
  • Mis trabajos:工作区面板,展示近期文件与预览。
  • 长期记忆:偏好称呼、稳定偏好与项目相关事实,默认写入 ~/.dsh/whale-maid-mascot/memory.json。
  • 其它:主动 check-in、归档聊天、「解释这个术语」等 README 列出的页面能力。

Telegram(可选)

  • 与页面为同一 DSH Agent 会话(默认 session id 为 whale-maid),可读写文件、执行命令、使用 Skills;回复以单条消息流式编辑方式呈现(streamReplies 默认为 true)。
  • 命令包括:/new、/status、/memory、/models、/model <provider>/<model>、/stop、/help。
  • 配对:Bot 默认忽略所有人;首次需在 Telegram 向 Bot 发送 /pair <code>,配对码由插件写入 ~/.dsh/whale-maid.pairing.txt。
  • 无需公网 IP 或 Webhook:桥接通过 long polling 拉取 Telegram 更新。
  • 在你先向 Bot 发过消息后,可收到主动消息(例如长任务结束),符合 Telegram 侧规则。

共享会话与记忆

  • 打开页面聊天面板时会重载共享 transcript,Telegram 侧消息会出现在页面侧。
  • 通过 whale_remember 等机制在任一端写入的持久记忆会在另一端可见。

环境与依赖

  • DeepSeek Harness Desktop 0.2.1-rc.5 或兼容构建(插件为 DSH bundle:宿主侧 + 可选 Web 客户端)。
  • DSH 中已配置可用的模型 Provider(与 Profile 现有一致即可)。
  • Node:包声明 engines.node 为 >=20。
  • 可选 Telegram:向 @BotFather 申请 Bot Token;当前 package 版本为 2.3.0(以 package.json 为准)。

安装与启用

推荐从 npm 安装。在 DeepSeek Harness 中打开 Settings → Plugins,安装:

dsh-whale-maid-mascot

重启 DSH 后,Web UI 右下角出现看板娘;Telegram 相关行处于未配置 Token 的空载状态。

本地开发可从 checkout 复制到 ~/.dsh/plugins/dsh-whale-maid-mascot 并在 Profile 的 package.json 中以 file: 依赖与 bundles 引用;README 给出 Windows robocopy 示例,完成后同样需要重启 DSH。本文不展开 clone 流程,以仓库 README 为准。

配置 Telegram

  1. 在 Telegram 与 @BotFather 对话,执行 /newbot,创建 Bot 并复制 Token。
  2. 将 Token 交给插件,任选其一:
    - 写入 ~/.dsh/whale-maid.token(单行,无其它内容),或
    - 启动 DSH 前设置环境变量 TELEGRAM_BOT_TOKEN,或
    - 在 Profile 的 whale-maid-telegram 行配置中设置 token。
  3. 重启 DSH;插件生成 ~/.dsh/whale-maid.pairing.txt 中的配对码。
  4. 在 Telegram 打开你的 Bot,发送:
/pair <code>

授权完成后可删除配对文件。桥接状态(允许列表、配对码、Telegram offset、共享 session 等)保存在 ~/.dsh/whale-maid.state.json。

可选配置文件

可选文件 ~/.dsh/whale-maid.json,或与 Profile cordis.patch.yml 中 whale-maid-telegram 行使用相同键。常用项如下(默认值以 README 表格为准):

键 默认 含义
cwd ~/Documents/deepseek-harness/default-workspace 共享 Agent 会话的工作目录
personaName Whale-chan 角色自称与提示中的名称
persona — 完整替换 system prompt
permissionPreset danger-full-access 会话权限预设
sessionId whale-maid 共享会话 id;修改可另开对话
model profile 默认 可为会话固定 { provider, model, reasoningEffort }
turnTimeoutMs 900000 单轮 Agent 最长等待
streamReplies true Telegram 回复是否流式编辑同一条消息

完整键列表见 GitHub README。

典型用法

仅页面伴侣:完成 npm 安装并重启后,在右下角与 Whale-chan 对话、换装互动;需要时打开工作区面板查看近期文件。记忆与偏好会落在本地 memory.json,不依赖 Telegram。

页面 + 手机同一脑:配置 Token 并完成 /pair 后,在 Telegram 发送文字或照片;会话与工具调用走真实 DSH session。长任务可在手机端用 /stop;换模型可用 /model <provider>/<model> 或 /models 查看。页面侧再次打开聊天面板即可看到 Telegram 侧消息。

收紧权限:若不希望会话具备完整 Shell 与系统用户级写权限,可在 ~/.dsh/whale-maid.json 将 permissionPreset 设为 workspace-write;部分操作可能等待 DSH 审批,而 Telegram 聊天无法代为点选批准。

架构简述

README 中的结构可概括为:浏览器 client.js 经 HTTP 访问宿主 dsh/index.js(看板娘与 /whale-maid-mascot/* 路由);Telegram 用户经 long poll 与 dsh/telegram.js 通信;二者汇入 dsh/session.js 管理的同一个 DSH Agent 会话(工具、记忆、人设、历史一致)。

适用场景与注意

适合:希望在 DSH Web UI 角上保留轻量、可换装的角色伴侣,又希望(可选)用手机延续同一会话并调用真实 Agent 工具的用户;接受 MIT 衍生项目、自行审阅源码的开发者。

务必注意:

  • 默认 permissionPreset 为 danger-full-access:会话内可在你当前 OS 用户权限下执行命令与写文件,这是 Telegram 远程协助能力的基础,也是真实风险。安装前请阅读仓库源码与许可证;更严格隔离可考虑专用 OS 用户、虚拟机,并将 cwd 指向唯一允许的项目目录。
  • Bot Token 为凭证,只应放在本地文件或环境变量,不应写入日志或公开仓库。
  • 未授权 Telegram 用户只会收到有限回复;除 /pair 与未授权时的 /start 外,Bot 默认忽略他人。
  • 插件以当前 DSH 进程权限运行;趣味换装分类不改变其 Agent 与工具链本质。

结尾

dsh-whale-maid-mascot 把页面看板娘、共享 DSH 会话与可选 Telegram 桥接绑在一起:一套记忆、一套工具、两处界面。若要在目录页查看元信息或安装入口,可打开 SkillHub 插件页;实现细节、安全说明与开发命令以 GitHub 仓库 README 为准。

羽毛球分组比赛记分
小程序二维码

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

小夜