前言¶
在 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 服務。
* 音效採用實時合成,瀏覽器不支持時靜默降級。