DSH-UseWebDeepseek-WhenEasyWork:輕量問題走 chat.deepseek.com 網頁端

前言

在 DSH 裏會話模型處理「一加一等於幾」這類一句話能答完的問題,往往會多佔一輪 agent 上下文,也繞不開 API Key 或額外 SDK。若你已經有 chat.deepseek.com 的網頁登錄態,更自然的做法是讓機器人在真實瀏覽器裏打字、讀字,複用網頁端自己的風控與簽名,而不是僞造請求或抓包。下面介紹的插件由社區維護者 xkzdwb 發佈,歸類爲聯網工具,在 GitHub 上開源(MIT,當前 package 版本 0.1.0,要求 Node ≥ 20)。

這是什麼

DSH-UseWebDeepseek-WhenEasyWork 把能力註冊成 DSH 工具 ask_deepseek_web:遇到輕量問題時模型可直接調用;你也可以用命令行 node src/cli.mjs 單獨提問。實現上只用 Node 內置模塊(node:http、node:child_process 及自研極簡 CDP 客戶端),不需要 npm install。主路徑是插件跑在 DSH HOST 進程裏;命令行請在普通終端或完全權限下使用,會話沙盒對 Chromium 不友好(README 實測 Edge 約 7 秒後以斷點異常退出)。

倉庫:https://github.com/xkzdwb/DSH-UseWebDeepseek-WhenEasyWork;社區目錄頁:https://www.skillhub.cn/plugins/xkzdwb/DSH-UseWebDeepseek-WhenEasyWork。目錄站點爲社區插件索引,與 DeepSeek、幻方無官方從屬關係。

核心機制

調用方(DSH 工具或 CLI)進入 src/ask.mjs,由 src/browser.mjs 啓動或複用 Edge(專用 profile、登錄態常駐),打開 https://chat.deepseek.com/。經 WebSocket 直連的 CDP:聚焦輸入框、Input.insertText 輸入、回車發送;每 400ms 取頁面快照,依據答案文本長度與是否存在「停止生成」按鈕判斷流式是否結束。當新的 .ds-markdown 出現、文本連續兩次不變且無停止按鈕時,返回純文本。插件不做 API 調用、不改頁面 JS,併發上同一頁面串行問答,並聲明 isConcurrencySafe: () => false。

主要源碼與輔助文件見倉庫 README 中的說明:src/cdp.mjs、src/browser.mjs、src/ask.mjs、src/cli.mjs、src/plugin.js,以及離線測試與 DOM 探針 tools/probe.mjs 等。

安裝與啓用

DSH 側沒有 README 裏單獨的 dsh plugin add 命令;啓用方式是把插件條目追加到 profile 的 cordis.patch.yml 的 insert 列表,並把 name 改成本機插件 src/plugin.js 的絕對路徑。完整片段見倉庫 examples/cordis.patch.snippet.yml。

    - id: tool-deepseek-web
      name: "/absolute/path/to/DSH-UseWebDeepseek-WhenEasyWork/src/plugin.js"
      config:
        toolName: ask_deepseek_web
        port: 9555
        headless: false
        timeoutMs: 90000
        promptBias: true

追加後重啓 DSH(插件在 HOST 啓動時加載)。安裝前應自行閱讀源碼與 MIT 許可證,確認以當前 DSH 進程權限運行是否符合你的安全預期。

配置字段(README 表格):

字段 默認 說明
toolName ask_deepseek_web 註冊給模型的工具名
port 9555 瀏覽器調試端口
userDataDir %LOCALAPPDATA%\dsh-web-deepseek\profile 登錄態目錄
headless false 無頭模式;首次登錄必須爲 false
timeoutMs 90000 等待答案總超時
promptBias true 是否注入「輕問題先調該工具」的系統提示

不想自動參與調度時,可將 promptBias 設爲 false,工具仍註冊,但不再偏置模型行爲。

典型用法

離線自測(無需登錄)

在插件目錄下執行離線迴歸測試,約 30 秒,不聯網:

node test/ask.test.mjs

插件裝配測試(21 項,不需瀏覽器,README 稱 CI 使用):

node test/plugin.test.mjs

注意:須在完全權限或普通終端裏跑 ask 相關測試;沙盒裏的 Chromium 會崩潰。

首次登錄(僅需一次)

第一次需要帶界面登錄 chat.deepseek.com:

node src/cli.mjs "1+1=?" --headed

瀏覽器停在 https://chat.deepseek.com/sign_in 時手動登錄;登錄態寫入 %LOCALAPPDATA%\dsh-web-deepseek\profile(或通過 userDataDir 指定的目錄)。未登錄會拋出 SignedOutError,表示需要登錄而非插件故障。

接入 DSH 後的驗證

重啓 DSH 後,在會話裏問輕問題(例如「1+1 等於幾」),模型應調用 ask_deepseek_web。可用倉庫工具檢查最近會話日誌中的工具清單與提示偏置:

node tools/inspect-session.mjs

README 示例輸出包括:ask_deepseek_web 在工具清單中,且提示偏置已注入。

適用場景與注意

適合:已有網頁端 DeepSeek 賬號、希望 DSH 把極輕量的常識或算術類問題外包給 chat.deepseek.com、且接受依賴 DOM 選擇器(.ds-markdown、停止按鈕文案等)的實現方式。

不適合或需謹慎:

  • 需要工作區上下文、代碼庫狀態的任務應留在本會話工具,網頁端不知道你本機改了什麼文件。
  • 網頁改版會導致失效,需用 node tools/probe.mjs --headed 查看結構並調整 src/ask.mjs 中的 COMPOSER_SELECTORS。
  • README 明確:自動化訪問可能觸及服務條款,勿高頻批量提問;問題原文會發送到網頁端,勿塞入不應外發的資料。
  • DeepSeek 網頁端能力與當前 DSH 會話模型上下文無關,不能替代需要本地信息的推理鏈。

排錯速查(來自 README):SignedOutError 登錄;ComposerNotFoundError 探針看 DOM;AnswerTimeoutError 調大 timeoutMs;瀏覽器秒退檢查沙盒與 profile 佔用或換 --port。

結尾

DSH-UseWebDeepseek-WhenEasyWork 用真實瀏覽器與零依賴 CDP,把輕量問題交給 chat.deepseek.com,在 DSH 裏體現爲 ask_deepseek_web 工具。細節與排錯表以倉庫 README 爲準。

羽毛球分组比赛记分
小程序二维码

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

小夜