在使用 DeepSeek Harness 進行智能體開發時,需要實時感知當前會話是否正在運行或是否出現錯誤。現有的 Web UI 可能無法直接提供這種直觀反饋。traffic-light 插件通過在聊天輸入框區域增加一個三色信號燈,提供即時的狀態可視化。
這是一個 DeepSeek Harness Web UI 插件,由 aliuguofa 維護。它位於 conversation.composer.dock 插槽,顯示紅、黃、綠三色信號燈,反映會話狀態。點擊可查看詳情。這是一個純 UI 插件,宿主半爲空 apply()。
核心功能¶
該插件主要包含以下能力:
- 三色狀態指示:在聊天輸入框區域顯示紅、黃、綠三色信號燈。信號燈會根據當前會話狀態自動切換顏色。
- 實時狀態反映:綠燈表示會話空閒(就緒);黃燈表示助手正在思考或調用工具(生成中);紅燈表示出錯或中斷。
- 詳情面板:點擊信號燈會彈出詳情面板,顯示狀態說明、錯誤文本與排查提示(出錯時),以及實時吞吐量(生成中時)。
- 數據源可靠:無輪詢,無猜測。所有信號均來自 DSH 客戶端會話快照與官方 projection。
- 無障礙與國際化:支持 ARIA 屬性和鍵盤交互,支持中英文 i18n。
- 可定製性:支持自定義位置順序、燈色樣式與文案。
安裝與啓用¶
將插件目錄作爲 npm 包加入當前 DSH profile:
dsh plugin --profile desktop add ./traffic-light
安裝完成後刷新 Web GUI,信號燈會自動出現在輸入框區域。
狀態判定邏輯¶
插件依賴 DSH 框架注入的 useSession 和 useProjection hooks。狀態判定邏輯如下:
- 綠燈:
running === false且無錯誤。 - 黃燈:
running === true。 - 紅燈:
promptError !== null或openState === "error"。
優先級爲:出錯(紅) > 生成中(黃) > 就緒(綠)。
自定義配置¶
修改位置順序¶
插件默認插入到輸入框停靠區(conversation.composer.dock)的特定位置。若需調整順序,需編輯 lib/client.js 中的 slots.register,修改 order 值(數值越大越靠後)。
修改燈色樣式¶
編輯 .tl-lamp-on.tl-* 相關的 CSS 規則,修改 background 或 box-shadow 屬性。
修改文案¶
編輯 lib/client.js 頂部的 zh / en 字典對象。
兼容性與依賴¶
- 依賴環境:DSH Desktop 0.1.1-rc.1。
- 依賴接口:
conversation.composer.dock插槽、會話快照字段(running/promptError/openState/openError/composerPhase)、liveTokenUsageprojection。 - 運行權限:僅讀取官方穩定字段,不寫入任何設置,不發起網絡請求。
- 健壯性:當框架未注入必要 hooks 時,插件會安全降級渲染,不會破壞輸入框功能。
文件結構¶
插件採用自包含模式,文件結構如下:
traffic-light/
├── package.json # 聲明 dsh.bundle + dsh.client
├── cordis.patch.yml # Profile 層掛載配置
├── lib/
│ ├── index.js # 宿主半:空 apply()
│ └── client.js # 瀏覽器半:組件邏輯、狀態判定、i18n、CSS
├── LICENSE
└── README.md
插件遵循 MIT 許可證。