前言¶
DeepSeek Harness (DSH) 採用插件化架構,其官方 Web UI 主要針對桌面端優化。對於需要在移動端處理會話、審批或查看 Agent 問題的用戶,直接使用瀏覽器訪問桌面界面往往體驗不佳。dsh-pwa 插件旨在解決這個問題,它通過將一套運行在手機瀏覽器中的全屏應用界面掛載到 DSH 服務器上,提供類似原生 App 的體驗,且無需在手機上安裝任何應用。
插件定位¶
dsh-pwa 是一個由 jackxu925 維護的客戶端插件。它本身是一個純靜態文件的 Web 應用,掛載在 DSH Web 服務器的 /m 路徑下。插件與桌面 GUI 使用相同的 /api 接口,這意味着它直接複用了 DSH 的會話管理和 Agent 能力。
核心功能¶
插件提供了手機端操作所需的核心交互能力:
- 會話管理:支持會話列表展示、工作區分組、搜索以及下拉刷新。具備真實的“待處理”篩選功能,可快速定位待審批會話和 Agent 問答。
- 流式對話:支持流式響應,包含樂觀發送、隊列消息可見性、每日時間分割線和時間戳。支持代碼塊的複製按鈕和全屏圖片查看器。
- 審批與交互:將審批請求和 Agent 問題呈現爲可點擊卡片。對於危險命令,界面會顯示紅色二次確認提示。
- 多媒體支持:支持從相機、相冊或剪貼板粘貼發送圖片,並自動壓縮至模型限制以內。
- 會話創建:支持在新建會話時選擇 Agent 預設。
- 交互細節:支持觸覺反饋、深色/淺色主題切換、會話草稿自動保存,以及帶有手動重連按鈕的連接狀態指示。
- 桌面端聯動:桌面 GUI 的“設置”菜單中會新增“手機端”入口,顯示當前手機訪問地址並提供一鍵複製功能。
安裝與啓用¶
安裝前需確保桌面端已安裝 dsh CLI。
- 創建或複用一個 Web 專用的配置文件,例如
~/.dsh/profiles/web/package.json,並在dependencies中引入dsh-pwa。
{
"name": "dsh-profile-web",
"private": true,
"dependencies": {
"dsh-pwa": "latest"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-pwa"
]
}
}
}
- 進入該配置目錄並執行安裝。
cd ~/.dsh/profiles/web && npm install
- 啓動 DSH Web 服務器。爲了在手機上訪問,需配置
--trusted-host以允許跨域訪問。
dsh --profile web --host 0.0.0.0 --port 3080 --trusted-host <your-access-domain>
典型用法¶
- 手機訪問:在手機瀏覽器中打開
http://<host>:3080/m/,點擊“分享”或“添加到主屏幕”,即可獲得全屏 PWA 應用體驗。 - 遠程訪問:若在非局域網環境使用,可配合 Tailscale。確保手機和服務器均在同一賬號的 Tailnet 中,並在服務器啓動命令中添加 Tailscale 的主機名到
--trusted-host,隨後訪問http://<tailscale-hostname>:3080/m/。
注意事項¶
- 無需安裝 App:這是一個網頁應用,但通過 PWA 機制可以實現類似原生 App 的全屏體驗。
- 安全模型:與
dsh web保持一致。任何能夠訪問該 URL 的人都可以控制你的 Agent。 - 離線限制:插件不支持離線使用,手機必須保持與 DSH 服務器的網絡連接。
- 版本依賴:由於插件直接調用 DSH 的
/api接口,它會跟隨 DSH 版本更新。若 DSH API 發生破壞性變更,插件可能需要同步更新。
總結¶
dsh-pwa 爲 DeepSeek Harness 提供了一個輕量級且無需安裝 App 的移動端解決方案。它通過複用現有的 API 協議,在手機瀏覽器中實現了會話管理、流式對話、審批交互及多媒體支持。對於需要在移動端處理 Agent 任務的開發者而言,這是一個務實的工具。