muse_vtuber: Adding an "Avatar" Tab to Agents in DSH

前言

在 DeepSeek Harness(DSH)里做带界面的智能体时,对话和轨迹页签往往够用,但一旦你希望会话里能「看见」一个虚拟形象——LIVE2D 口型、侧边栏里的摄像头与麦克风状态、TTS 时的气泡——把这些都塞进同一个单体插件,升级和维护都会变重。自 4.0.0 起,Stella-Mira 的 muse_vtuber 把职责收窄为「画」:只负责 GUI 上的 「形象」 页签、LIVE2D 舞台与五个形象工具;摄像头、麦克风、ASR、识图与 TTS 分别交给 mira_device、mira_media。下面介绍它是什么、怎么装、怎么用。

这是什么

muse_vtuber 是 DSH 插件,维护者为 Stella-Mira,在 SkillHub 社区目录中归类为 趣味换装。当前 package 版本为 4.2.0(MIT 许可证,Node >=18)。

它在宿主 GUI 中注册 conversation.view(id: "muse-avatar",order: 20),在 「对话」「轨迹」之后 增加 「形象」 页签;设置里对应 「形象」 分区,只管 LIVE2D 模型与画布。插件本体 零 npm 第三方依赖,LIVE2D 运行库在 assets/lib/;宿主侧还需已注入 tools、webServer、miraMedia、miraDevice。

依赖关系可以概括为:

muse_vtuber(本插件)──→ mira_device ──→ mira_media
   画 LIVE2D、右侧栏、    摄像头/麦克风/       TTS/ASR/VAD/凭据
   表情/动作/模型          采集器/自动推帧       (唯一一份阿里云 key)

核心功能

界面

  • 主位:LIVE2D;说话时口型跟音量;未选模型时 频谱环 兜底(麦克风频谱 / TTS 播放器频谱 / 空闲呼吸波形)。
  • 右侧栏(自上而下):视频、音频、LIVE2D 表情;视频与波形数据来自 window.__miraDevice__,形象本身不直接操作硬件。
  • 说话与插话:TTS 由 mira_media(工具 device_say)播放;形象只订阅 say 做气泡与口型,避免双重出声。语音识别插话在 mira_device 完成。

落盘与配置

配置与状态写在 $DSH_HOME/mira_config/muse_vtuber/:

$DSH_HOME/mira_config/muse_vtuber/
  config.json             配置(schemaVersion 1),首次运行自动创建
  state.json              形象实况(可见性/模型/表情/开关/动作)
  model/                  可选本地模型目录

config.json 修改后下次读取即热加载;更换插件宿主代码需重启 dsh web(Loader 会缓存已解析模块)。DashScope 凭据与采集器配置已迁至 mira_media、mira_device,不再落在本目录。

常用配置项:

键 默认 说明
enabled true false 时不注册工具与路由
live2d.modelsDir "" 留空则依次找 muse_vtuber/model、mira_live2d/model
live2d.model "" 留空则不显示模型(仅频谱环);设置页保存后立即切换
live2d.width / height 420 / 560 画布初始 CSS 尺寸
legacyNode.enabled false 2.x 外部 stella 节点桥,默认关闭

工具(5 个,4.1.0 起无账号/权限模型)

工具 作用
vtuber_status 只读状态、模型清单、缺失资源,并转述声音/输入插件状态
vtuber_expression 互斥表情 / 叠加开关
vtuber_motion 播放动作或列清单
vtuber_visible 显示/隐藏形象主体
vtuber_model 切换模型;clear:true 仅留频谱环

旧版工具名 vtuber_say、vtuber_camera 等已分别改为 device_say、device_camera 等,预设里若仍写旧名需要一并更新。

HTTP 与事件

同源路由前缀 /vtuber/api/*,例如 GET /vtuber/api/bootstrap、GET /vtuber/api/events(SSE:hello / state)、GET /vtuber/api/health。TTS、ASR、识图、采集流已拆到 /media/api/*、/device/api/*。

安装与启用

DSH 社区目录 SkillHub 与 GitHub README 均未给出 dsh plugin add github:… 形式的 CLI;安装方式以目录页 「发送给 DeepSeek Harness 安装」 的自然语言说明为准。页面可见文案以如下句子开头(安装时请复制目录页上的完整段落,避免截断):

请安装 DSH 插件 Stella-Mira/muse_vtuber。

README 验收步骤写明需 三件套一起装好:除 muse_vtuber 外,还需 mira_device、mira_media,否则 /vtuber/api/health 里依赖未就位、侧边栏视频/音频与说话链路不完整。安装包名须与 package.json 的 name: muse_vtuber 一致,不要用别名,否则前端 dsh.client 模块可能无法加载。

插件安装位置约定为 PluginDSH/muse_vtuber。

典型用法

手工走通界面(README §11)

  1. 打开会议话界面,确认页签顺序为:对话、轨迹、形象。
  2. 进入 形象:主位为 LIVE2D 或频谱环;右侧为视频 / 音频 / 表情。
  3. 在输入区点 摄像头(控件属于 mira_device):侧边栏视频有画面;再关则黑屏。
  4. 开 麦克风 说话:波形动;停顿后出现「听到:…(已插话)」及会话中的 [感知·语音]。
  5. 用 device_say 或 设置 · 声音 试听:形象口型、气泡与 TTS 同步。
  6. 设置 · 形象 选模型并保存:立即切换;留空则只显示频谱环。

智能体调形象

先 vtuber_status 看模型与缺失贴图;换模型用 vtuber_model;演表情 vtuber_expression、动作 vtuber_motion;需要收起主体时用 vtuber_visible。发声、开摄像头、识图等请调用 mira_media / mira_device 对应工具,而不是已删除的 vtuber_say 等旧接口。

适用场景与注意

适合:希望在 DSH Web GUI 里固定一块 LIVE2D 展示面、又让会话工具能程序化改表情/模型/显隐的开发者;可与同作者的 mira_device、mira_media 组成完整 VTuber 式交互。

注意:

  • 插件在 当前 DSH 进程权限 下运行,安装前请自行阅读 GitHub 源码 与 MIT 许可证。
  • SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系;版本与说明以仓库 README、package.json 为准。
  • 从 ≤3.1.0 单体升级时,README §8 列了配置与工具迁移表;迁移只读旧文件,回滚需停用三件套并启用旧版 muse_vtuber 3.1.0。
  • mira_device 默认 vision.autoIntervalMs: 0,自动识图需显式配置,避免持续消耗额度。

结尾

muse_vtuber 把 DSH 里的「长什么样」从「怎么听、怎么说、怎么采输入」里拆出来:形象页签、LIVE2D、五个 vtuber_* 工具与 /vtuber/api 面专注展示与状态;声音与设备交给配套插件。若要安装或跟踪更新,可看目录页 Stella-Mira/muse_vtuber 与仓库 github.com/Stella-Mira/muse_vtuber。

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

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

Xiaoye