dsh-we-whalegirl:自建微信/QQ「鲸鱼娘」机器人的 DSH 控制面

前言

在 DSH 里跑智能体时,常见做法是另开终端维护一套 Python 机器人:改 config.yaml、查日志、手动启停进程。微信 UI 自动化、本地 ASR、GPU 歌声合成仍应留在机器人侧;若用 TypeScript 全量重写,成本高且容易丢掉 GPU 能力。下面介绍社区插件 dsh-we-whalegirl(维护者 gzyy111):在 DSH 内提供 Host + Client 控制面,负责进程托管、同源代理、设置页与 whalegirl_* Agent 工具,不替代机器人本体。

这是什么

dsh-we-whalegirl 是 DeepSeek Harness(DSH)上的工作流类插件(当前版本 0.1.0,插件代码 MIT 许可)。它是控制面:拉起/停止机器人进程、把浏览器请求代理到本机 HTTP API、注册 9 个 Agent 工具,并在 设置 → 鲸鱼娘 提供完整设置页。不是机器人本体——微信 UI 自动化、faster-whisper、edge-tts、SoulX-Singer / ACE-Step(conda + GPU)等仍由 Python 侧承担,插件不包含也不重写它们。

社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系;安装前请自行阅读源码与许可证。插件以当前 DSH 进程权限运行。

核心功能

进程与代理

Host 半边通过 supervisor 用 subprocess 拉起机器人目录中的 web_main.py。启动序列固定为:热激活微信 UIA → 起 web 服务 → 连微信。支持启动、停止、重启;重启前会检查队列,避免打断在途回复。

同源代理将 /dsh-we-whalegirl/* 转发到 127.0.0.1:<port>/api/*,设置页通过 fetch 访问同源 API,无需处理 CORS。

功能开关与人设

设置页可管理 22 项功能开关,涵盖聊天核心、媒体与表情包、点歌三级后端、算命五术数、笑话、开机补消息、频率参数等。功能开关以机器人侧 config.yaml 为单一真源,插件不复制一份状态;多数开关需要重启机器人才生效(handler 在启动时一次性注入),人设保存则是例外。

人设支持显示名、描述、提示词、温度、token 上限、示例对话;保存即热更新,不重启、不重连微信,并提供「锁定出厂人设」开关。

回复频率与平台

回复频率提供三档预设(安静 / 正常 / 话痨)及 12 项细调,并区分「@ 必回」与「概率参与」。

平台相关包括微信通道控制、监听群列表,以及 QQ 开放平台凭证(Secret 由机器人本体 Fernet 加密)。另有语音与点歌(音色 / 音调 / 语速、真唱音色版本、混音配比、三级后端开关)、模型与高级(AI 接口、日志级别、读取日志尾、清空上下文、插件自身配置只读展示)。

Agent 工具与可选面板

注册 9 个工具:whalegirl_status、whalegirl_start、whalegirl_stop、whalegirl_restart、whalegirl_say、whalegirl_image、whalegirl_cover、whalegirl_divination、whalegirl_config。可在 DSH 对话里用这些工具指挥机器人。

配置项 enablePanel: true 时,侧栏会出现「鲸鱼娘」总览(统计、能力自检、消息流、日志)。

安装与启用

从 GitHub 安装(推荐)

dsh plugin --profile web add github:gzyy111/dsh-we-whalegirl

本地目录安装

dsh plugin --profile web add /path/to/dsh-we-whalegirl

也可在 DSH 桌面版「插件」页用本地安装入口指向插件目录。安装完成后重启一次 DSH(bundle 层需重启才会组装)。

必填配置

在 profile 的 cordis.patch.yml 中补全 botRoot,否则点击「启动」会提示未配置:

- id: whalegirl
  name: dsh-we-whalegirl
  config:
    botRoot: 'D:/bots/deepseekgirl'   # 含 web_main.py 的目录
    pythonExe: ''                     # 留空 = <botRoot>\.venv\Scripts\python.exe
    port: 8080
    mode: auto                        # auto | attach | manual
    autoStart: false
    stopOnExit: false
    allowAnyRoom: false
    automaticRestart: false
    enablePanel: false

机器人本体需满足:

  1. Windows + 已登录的微信桌面版(UI 自动化,窗口不能最小化)
  2. 机器人目录内有 .venv\Scripts\python.exe 与 web_main.py
  3. 机器人 HTTP API 只监听 127.0.0.1:<port>

本插件依赖机器人提供的 /api/settings*、/api/style*、/api/capabilities、/api/divination。若使用上游原版 linxisama/deepseekgirl,需先补齐这些接口(设置页依赖它们)。

典型用法

工作方式概览

DSH Desktop ── Host 插件 ──┬─ supervisor:subprocess 拉起 web_main.py
                           ├─ 同源代理:/dsh-we-whalegirl/* → 127.0.0.1:8080/api/*
                           └─ 9 个 whalegirl_* 工具

浏览器页面(设置 → 鲸鱼娘)──fetch──> /dsh-we-whalegirl/api/*(同源,无 CORS)

日常可在 设置 → 鲸鱼娘 启停进程、改人设与频率、开关能力;在 Agent 对话中调用 whalegirl_status 查看状态,或用 whalegirl_say 等工具下发动作。需要仪表盘时,将 enablePanel 设为 true 并重启 DSH 后使用侧栏总览。

插件自有日志路径:%USERPROFILE%\.dsh\dsh-we-whalegirl\plugin.log(2 MB 轮转)。

适用场景与注意

适合:已在 Windows 上自建微信/QQ「鲸鱼娘」类 Python 机器人(含 web_main.py 与本地 venv),希望在 DSH 内统一启停、改配置,并通过 whalegirl_* 在对话里操作,而不把微信自动化与 GPU 歌声合成搬进插件。

注意:

  • 微信通道依赖桌面 UI 自动化,机器人须在交互式桌面会话中运行。
  • 曲库、表情包、模型权重在机器人侧,插件不含这些资源。
  • 设置页字段白名单由机器人侧 settings_api.py 决定。
  • 设计原则包括:失效不拖垮宿主(Promise catch、代理与页面错误边界、注册失败降级)。

结尾

dsh-we-whalegirl 把自建「鲸鱼娘」机器人的运维收敛到 DSH:进程托管、22 项开关、人设热更新、频率与平台配置,以及 9 个 whalegirl_* 工具。机器人能力仍留在 Python 侧,插件只做控制面。

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

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

小夜