EVA Unit-01 桌宠插件:NERV 同步率 HUD 与 Web Audio 合成音效

前言

在 DSH Web GUI 中进行智能体开发时,长时间面对控制台与对话窗口容易产生视觉疲劳。本插件通过挂载到 shell.overlay 插槽,在桌面层提供一个 Q 版 EVA 初号机桌宠。它不依赖外部音频文件,而是使用 44 种 Web Audio 合成音效,并根据 DSH 的 shell.overlay props 和 sessions 服务实时驱动 NERV 同步率 HUD。

核心功能

  1. Q 版桌宠与渲染层
    桌宠注册在 shell.overlay,渲染内容通过 react-dom 的 createPortal 投到 document.body > div.eva01-portal。容器设置 pointer-events:none,桌宠本体设置 pointer-events:auto,z-index 设为 60。这既保证了桌宠压过常驻面板(如侧边栏),又使其保持在模态 UI(如报错弹窗)之下。

  2. NERV 同步率 HUD
    HUD 状态由当前会话的 ConversationSnapshot 驱动,支持六种情绪与对应的同步率目标值:

    • IDLE:同步率 60%
    • ACTIVE:同步率 88%(当前会话或存在任意 running 会话)
    • STANDBY:同步率 71%(存在 pendingInteraction)
    • OPERATE:同步率 94%(存在正在执行的工具调用)
    • ALERT:同步率 33%(出现新的 agent 错误)
    • BERSERK:同步率 400%(双击触发)
  3. 26 个离散动作
    插件内置 26 个离散动作,包括 wave、nod、deny、look、stretch、hop、walk、stomp、charge、roar、salute、shiver、slash、unbind、guard、shutdown、turn、crouch、scan、tapcore、tiptoe、rebound 等。动作优先级互斥,基于情绪门控和优先级表触发。

  4. Web Audio 合成音效
    音效通过振荡器与共享白噪 buffer 实时合成,无音频文件依赖。支持 44 种音效 kind,例如 prog(振动刀)、jaw(撕开口枷)、s2(S² 機関)等。

  5. 暴走模式
    双击桌宠触发 8 秒 Berserk 模式,包含蓄力、咆哮、红眼、剧烈抖动、红色 AT 场和同步率 400% 的视觉反馈。

安装与启用

安装命令如下:

dsh plugin --profile web add link:E:/DSH/plugins/eva-unit01

该命令会将包名追加到 profile 的 package.json 的 dsh.profile.bundles。更改 bundle 列表后需要重启 DSH 才能生效。

典型用法

  1. 移动:按住桌宠拖动,限制在窗口内;窗口缩放后自动钳回视口;跨过屏幕中线会整体镜像。
  2. 交互:
    • 单击:触发随机台词 + 机体回弹 + blip,34% 概率点头。
    • 双击:触发 8 秒 Berserk 模式。
  3. 音效控制:悬停右上角 ♪ 切换音效开关。
  4. 收集:悬停右上角 – 收集紫色球体。
  5. 调试触发:在浏览器控制台调用 window.__eva01.play('hop') 触发指定动作。

技术实现细节

  • 状态源:情绪状态不依赖宿主事件,而是直接订阅 sessions 服务获取 ConversationSnapshot,确保刷新页面后计数不丢失,并能显示当前正在执行的工具名。
  • 资源嵌入:机体通过参考图片切片生成 16 层 data URI,眼睛与脐带电缆保留矢量绘制。
  • 依赖:插件依赖 @deepseek-ai/cordis peer dependency。

适用场景与注意事项

该插件适合希望在 DSH Web GUI 中获得实时状态反馈和桌面级交互体验的开发者。使用时需注意:
* 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(MIT)。
* 依赖宿主环境提供的 shell.overlay 与 sessions 服务。
* 音效采用实时合成,浏览器不支持时静默降级。

生态链接

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

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

小夜