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 为准。

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

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

Xiaoye