dsh-answer-pet:DSH Web 可擴展回答狀態寵物框架

前言

在 DeepSeek Harness(DSH)Web 界面裏跑多會話智能體時,常見問題是:模型正在思考、流式輸出還是調用工具,頁面上往往缺少統一、可讀的反饋。刷新頁面或切到別的標籤頁後,更難判斷當前有哪些會話在跑、進度到哪一步。

dsh-answer-pet 面向這一場景:在 Web GUI 角落掛一隻可拖拽的「回答狀態寵物」,用動畫和狀態卡把會話進度、輸出速率和模型執行軌跡可視化。外觀通過聲明式 PetTheme v1 與進度核心解耦,默認藍鯨,也內置橘貓與銀漸層貓主題。

這是什麼

dsh-answer-pet 是 DSH Web bundle 插件,由 Nanki-nn 維護,當前版本 0.6.0,MIT 許可證。插件分 Node half 與瀏覽器 client:前者監聽 session/event 維護進度與軌跡,後者渲染寵物、狀態卡和交互。

目錄頁:SkillHub - dsh-answer-pet
源碼:github.com/Nanki-nn/dsh-answer-pet

核心功能

可擴展寵物主題

主題通過 PetTheme v1 契約定義 SVG、動畫、寬高比和階段文案,與回答進度邏輯分離。當前內置三個可信主題,隨插件構建加載,不執行第三方任意 JavaScript,也不注入未經清理的外部 SVG。

主題 id 名稱 說明
blue-whale 藍鯨 默認主題
orange-cat 橘貓 PetTheme v1 示例
silver-shaded-cat 銀漸層貓 構建時注入內嵌 PNG,不加載外部圖片

未知主題 id 會安全回退到 blue-whale。自定義主題開發見倉庫內 docs/PET_THEME.md

回答進度與狀態卡

插件按 DSH 會話事件驅動階段機,即時映射到寵物動畫和進度百分比:

階段 主題接口 狀態卡進度
空閒 idle 不顯示運行會話卡
turn/start turn 2%
思考(step/start think 5% → 10%
輸出(assistant/chunk stream 10% → 90%
工具(tool/call tool 凍結當前進度
完成(turn/end done 100%

進度優先使用 assistant/chunkusage;有 maxTokens 時按 outputTokens / maxTokens 填充,否則用飽和曲線估算,同一回合內單調不減。狀態卡還顯示輸出 token、token/s、耗時和文本片段。

多會話與模型軌跡

多個會話併發時,每個運行中的會話對應一張獨立進度卡,縱向排列;無運行會話時不顯示卡片,也不顯示數量 0

每張卡內展示最近模型軌跡,例如分析任務、推理與規劃、組織回答、工具調用及結果。工具失敗在軌跡中標紅。軌跡最多保留 6 條(卡片顯示最近 4 條)。工具名會顯示(如 readgrep),參數只從白名單字段提取簡短摘要,不展示完整 Shell 命令或原始 JSON。

交互與數據更新

  • 拖拽寵物:位置持久化到 localStorage
  • 單擊寵物:觸發主題定義的眨眼,不移動位置。
  • 狀態卡可摺疊;收起後僅在存在運行會話時顯示數量按鈕。
  • 輪詢與 SSE 結合:流式數據平滑更新,階段切換即時刷新。

安裝與啓用

插件需安裝到 Web profile。在終端執行:

dsh plugin --profile web add github:Nanki-nn/dsh-answer-pet

安裝後停止並重新啓動當前的 dsh web 進程,再刷新 Web GUI 頁面。升級插件時重複同一條命令即可。

從舊版本升級到 0.6.0 後必須重啓 dsh web;僅刷新瀏覽器不會加載新的配置 schema 和 Node half 邏輯。

典型用法

切換寵物主題

<dshHome>/settings.yamlanswer-pet 段配置主題。主題更新會在下一次配置刷新時掛載。

answer-pet:
  theme: silver-shaded-cat # blue-whale / orange-cat / silver-shaded-cat

調整尺寸、位置與顯示項

同一 section 下可配置寵物尺寸、停靠角、透明度、輪詢間隔,以及是否顯示進度卡和狀態氣泡。

answer-pet:
  theme: blue-whale
  size: 96          # 寵物高度 px(48–200)
  corner: br        # 停靠角:br / bl / tr / tl
  opacity: 1        # 透明度(0.2–1)
  pollMs: 800       # /state 輪詢間隔
  showBar: true     # 顯示會話進度卡
  showBubble: true  # 顯示狀態氣泡

恢復默認位置

若拖拽後想恢復寵物默認停靠位置,在 DSH Web 頁面打開開發者工具執行:

localStorage.removeItem('answer-pet:pos')
location.reload()

同時恢復狀態卡展開狀態:

localStorage.removeItem('answer-pet:bar')
location.reload()

適用場景與注意

適合誰

  • 經常在 DSH Web 界面跑多會話智能體,需要一眼看到哪些會話在跑、當前階段和工具調用情況。
  • 希望在角落放輕量狀態指示,而不是反覆切會話頁查看日誌。
  • 想基於 PetTheme v1 做自定義寵物主題(需閱讀倉庫開發指南並按構建流程接入)。

使用前注意

  • 插件以當前 dsh web 進程權限運行;安裝前建議查看 源碼 與 MIT 許可證,確認符合你的環境要求。
  • 模型軌跡依賴 Node half 監聽 session/event;安裝或升級後務必重啓 dsh web,單獨刷新頁面只能更新瀏覽器端樣式。
  • 進度百分比是插件根據階段、token 和 maxTokens 估算的,多數模型接口不會提供精確完成百分比。
  • SkillHub 是 DSH 社區插件目錄,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-answer-pet 把 DSH Web 裏的回答過程拆成可讀的寵物動畫、多會話進度卡和模型軌跡時間線,並通過 PetTheme v1 把外觀與核心邏輯分開。若你已在用 DSH Web 跑智能體,可按上文命令安裝到 Web profile,重啓服務後刷新頁面即可試用。

  • 目錄頁:https://www.skillhub.cn/plugins/Nanki-nn/dsh-answer-pet
  • GitHub:https://github.com/Nanki-nn/dsh-answer-pet
羽毛球分组比赛记分
小程序二维码

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

小夜