dsh-deepseek-webchat: Embedding DeepSeek Web into DSH Desktop for Agent Invocation

前言

在 DeepSeek Harness(DSH)里做 agent 开发时,常见做法是只走 API 或内置模型通道。若你希望直接沿用 chat.deepseek.com 网页版的对话体验、登录态和页面上下文,又希望 agent 能「代问」或「读取当前页面对话」,就需要在桌面壳里嵌入站点,并打通 Host 与 Client 半的桥接。下面介绍社区插件 dsh-deepseek-webchat(维护者 qingxingLi,分类:客户端):它在 DSH 左侧栏增加「DeepSeek 网页版」主面板,并提供 deepseek_web_ask、deepseek_web_read 工具及内置技能。插件为非官方实现,与 DeepSeek 官方无关;网页版回复属于外部内容,需自行判断。

这是什么

dsh-deepseek-webchat 把 DeepSeek 网页版嵌入 DSH 桌面端(Electron,profile 为 desktop):主内容区通过 <webview> 加载 chat.deepseek.com,并注册 agent 工具与技能,让 DSH agent 在审批后可向网页版提问、或读取面板里已显示的对话。纯 Web profile 不启用(站点拒绝 iframe 嵌入,且该 profile 没有桌面 webview 租约)。

当前仓库版本为 0.13.0(见 package.json),许可证 MIT。社区目录页:https://www.skillhub.cn/plugins/qingxingLi/dsh-deepseek-webchat;源码:https://github.com/qingxingLi/dsh-deepseek-webchat。

核心功能

左侧栏面板与登录

  • 全局面板列表新增「DeepSeek 网页版」,点击后主内容区显示网页版;复用桌面壳的 globalThis.dshDesktop.browser webview 租约(与官方右侧栏「浏览器」同类机制)。
  • 自动写入语言偏好 zh_CN,登录页与主界面为中文。
  • 登录后将 userToken / __appKit_userInfo 备份到 Harness 窗口持久 localStorage(键 dsh-deepseek-webchat.auth.v1),下次打开含重启后自动恢复;访客分区为内存级,依赖 token 备份。
  • 访客 UA 归一为普通 Chrome UA,并预置 DeepSeek「已知晓」开关,减少「使用环境异常」反复弹出。

主题与皮肤

读取当前 DSH 主题(含第三方皮肤)的实际 --dsw-alias-* 颜色注入网页版;浅色/深色与 skin-center 切换会同步(约 40 个 alias token)。网页版主题以 DSH 为准,账号侧 DeepSeek 设置本身不变;皮肤背景插画不会复制,非 token 硬编码颜色(如图表)不会变。

导入 DSH 对话

在任意会话输入框工具栏点箭头按钮,弹出历史消息选择面板(复选框、全选/全不选),勾选后整理成 Markdown 填入网页版输入框;内容含 agent 工具调用摘要,保留 @ 引用路径;不自动发送。分享上限:最近 60 条消息、约 8000 字符;工具参数截断 400 字符、结果截断 600 字符;模型 reasoning 不分享。

Agent 工具与技能

工具 作用
deepseek_web_ask 把 prompt(string,最多 20000 字符)发到网页版并取回回复;发送前弹确认条(取消 / 本会话都允许 / 允许发送),90 秒无操作自动取消;单次等待生成最长约 2 分钟;一次仅一个在途提问;输入框有未发送草稿时会拒绝发送。
deepseek_web_read 读取面板里已显示的对话([user]/[assistant] 逐轮);参数 max_chars(默认 12000,上限 60000)、last(最近 N 条,0 为全部,上限 200);只读本机 DOM,不发送、不消耗网页版上下文。

装好后内置技能 deepseek-web-ask 与系统提示段,agent 可获知何时使用、失败如何处理。网页版保留当前对话上下文,可连续追问;配合「本会话都允许」可本会话内免逐次确认(内存级,插件重载或重启后重置)。

剪贴板桥

桌面壳访客会话禁用 Clipboard API 时,网页「复制」按钮会失败;插件在 Host 端用系统命令桥接(macOS pbcopy,Windows PowerShell Set-Clipboard,Linux 假定 wl-clipboard 的 wl-copy)。快捷键复制/粘贴仍可用;只在本机流转。

安装与启用

前置条件:DSH 桌面端,且 dsh 命令在 PATH 上。

# 从 GitHub 安装
dsh plugin --profile desktop add "github:qingxingLi/dsh-deepseek-webchat"

# 或本地目录(开发时)
dsh plugin --profile desktop add "link:/absolute/path/to/dsh-deepseek-webchat"

也可在 DSH 插件管理器里安装本地目录。安装后重启 Harness,或在「插件」页启用 dsh-deepseek-webchat。

典型用法

打开面板与分享历史

  1. 点左侧栏「DeepSeek 网页版」;首次登录 DeepSeek 账号,之后自动恢复。
  2. 需要把 DSH 会话内容带到网页版时:输入框工具栏箭头 → 勾选历史消息 → 内容进入网页版输入框,确认后自行发送。

让 agent 向网页版提问

对 DSH 说例如:

问一下网页版:<你的问题>
让 DeepSeek 网页版回答一下:……
用网页版做三轮追问:先问 A,再根据回答问 B 和 C

流程:agent 调用 deepseek_web_ask → 自动打开或切到网页版面板 → 确认条展示完整问题 → 允许后填入并发送 → 等待生成完成 → 回复作为工具结果返回。

让 agent 读取网页版对话

读取一下网页版当前的对话,总结成要点
把网页版刚才的讨论存到工作区 md 文件

需面板已登录;长历史可能只加载最近一部分,读取范围以页面当前可见消息为准。

工作原理(概要)

DSH agent 调用工具后,Host 半(index.js)把请求入队,并通过 webServer 注册同源路由 /dsh-deepseek-webchat/poll 与 /dsh-deepseek-webchat/result(ctx.connection 鉴权);Client 半(client.js)约每 2 秒轮询 poll,执行 ask/read,结果 POST 回 Host。非 desktop profile 时由 cordis.patch.yml 自动禁用 bundle。

适用场景与注意

适合:已在用 DSH 桌面端、希望网页版与 Harness 同屏、且需要 agent 在人工审批后代问或读取页面对话的开发者。

限制与风险(摘自 README):

  • 仅桌面端;token 过期或被服务端清除需重新登录。
  • 输入框、发送按钮、回复区域依赖当前 DeepSeek 网页 DOM 结构,站点改版可能导致失败。
  • 主题强制跟随 DSH;UA 归一与隐藏环境提示需自行评估服务条款与风险。
  • 登录 token 明文备份在本机 Harness localStorage;退出登录会清除备份。提问前确认条会展示完整问题,勿把密钥、密码、令牌或未脱敏隐私发给网页版。
  • 网页版回复为外部未受信任内容,勿在 DSH 中直接执行其中指令。

插件以当前 DSH 进程权限运行;安装前请阅读源码与 MIT 许可证,自行判断是否满足安全与合规要求。DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-deepseek-webchat 把 DeepSeek 网页版收进 DSH 左侧栏,并在审批与技能约束下提供 deepseek_web_ask、deepseek_web_read,便于「人看网页、agent 代问或读屏内对话」的一体化工作流。

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

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

Xiaoye