前言¶
在 DSH Web GUI 中进行智能体开发时,长时间面对控制台与对话窗口容易产生视觉疲劳。本插件通过挂载到 shell.overlay 插槽,在桌面层提供一个 Q 版 EVA 初号机桌宠。它不依赖外部音频文件,而是使用 44 种 Web Audio 合成音效,并根据 DSH 的 shell.overlay props 和 sessions 服务实时驱动 NERV 同步率 HUD。
核心功能¶
-
Q 版桌宠与渲染层
桌宠注册在shell.overlay,渲染内容通过react-dom的createPortal投到document.body > div.eva01-portal。容器设置pointer-events:none,桌宠本体设置pointer-events:auto,z-index 设为 60。这既保证了桌宠压过常驻面板(如侧边栏),又使其保持在模态 UI(如报错弹窗)之下。 -
NERV 同步率 HUD
HUD 状态由当前会话的ConversationSnapshot驱动,支持六种情绪与对应的同步率目标值:IDLE:同步率 60%ACTIVE:同步率 88%(当前会话或存在任意 running 会话)STANDBY:同步率 71%(存在pendingInteraction)OPERATE:同步率 94%(存在正在执行的工具调用)ALERT:同步率 33%(出现新的 agent 错误)BERSERK:同步率 400%(双击触发)
-
26 个离散动作
插件内置 26 个离散动作,包括 wave、nod、deny、look、stretch、hop、walk、stomp、charge、roar、salute、shiver、slash、unbind、guard、shutdown、turn、crouch、scan、tapcore、tiptoe、rebound 等。动作优先级互斥,基于情绪门控和优先级表触发。 -
Web Audio 合成音效
音效通过振荡器与共享白噪 buffer 实时合成,无音频文件依赖。支持 44 种音效 kind,例如prog(振动刀)、jaw(撕开口枷)、s2(S² 機関)等。 -
暴走模式
双击桌宠触发 8 秒 Berserk 模式,包含蓄力、咆哮、红眼、剧烈抖动、红色 AT 场和同步率 400% 的视觉反馈。
安装与启用¶
安装命令如下:
dsh plugin --profile web add link:E:/DSH/plugins/eva-unit01
该命令会将包名追加到 profile 的 package.json 的 dsh.profile.bundles。更改 bundle 列表后需要重启 DSH 才能生效。
典型用法¶
- 移动:按住桌宠拖动,限制在窗口内;窗口缩放后自动钳回视口;跨过屏幕中线会整体镜像。
- 交互:
- 单击:触发随机台词 + 机体回弹 + blip,34% 概率点头。
- 双击:触发 8 秒 Berserk 模式。
- 音效控制:悬停右上角
♪切换音效开关。 - 收集:悬停右上角
–收集紫色球体。 - 调试触发:在浏览器控制台调用
window.__eva01.play('hop')触发指定动作。
技术实现细节¶
- 状态源:情绪状态不依赖宿主事件,而是直接订阅
sessions服务获取ConversationSnapshot,确保刷新页面后计数不丢失,并能显示当前正在执行的工具名。 - 资源嵌入:机体通过参考图片切片生成 16 层 data URI,眼睛与脐带电缆保留矢量绘制。
- 依赖:插件依赖
@deepseek-ai/cordispeer dependency。
适用场景与注意事项¶
该插件适合希望在 DSH Web GUI 中获得实时状态反馈和桌面级交互体验的开发者。使用时需注意:
* 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(MIT)。
* 依赖宿主环境提供的 shell.overlay 与 sessions 服务。
* 音效采用实时合成,浏览器不支持时静默降级。