DeepSeek Chat Switch:在 Harness 与 DeepSeek Chat 间切换

前言

DeepSeek Harness 是一个本地运行的智能体开发与调试工具。在使用过程中,开发者常需要在 Harness 的原生工作区、会话列表,与 DeepSeek Chat 的网页版大模型之间来回切换。频繁手动跳转会打断工作流。

下面介绍 mryouyouHK/youyou-deepseek-chat-switch。这是一个 DSH 插件,在 Harness 左侧侧边栏新增模式切换,可在「HARNESS」与「Chat」之间快速切换,同时支持从 Harness 会话直接向 DeepSeek Chat 发送内容。

是什么

该插件由 mryouyouHK 维护,归类为客户端插件。GitHub 仓库地址为 https://github.com/mryouyouHK/youyou-deepseek-chat-switch。插件名称为 youyou-deepseek-chat-switch,版本 1.0.0,MIT 许可证。

核心价值是在 Harness 界面内集成 DeepSeek Chat 的访问入口,减少浏览器标签页的切换,保持上下文连续性。

会话目录模式:HARNESS / Chat

左侧会话目录(原生会话列表)顶部新增一组模式切换 Tab,固定在会话列表上方。

Tab 内容
HARNESS(默认) 当前 app 原生会话内容(Workspace / 会话树)
Chat 本插件 deepseek-chat-switch:history 里记录的 DeepSeek Chat 浏览历史:今天 / 昨天 / 更早分组
  • 切到 Chat 时原生列表只是被隐藏(display:none),组件不卸载,切回 HARNESS 会立即恢复滚动位置与展开状态。
  • 点击 DeepSeek Chat 图标打开插件时,会话目录会自动切到 Chat(写入 deepseek-chat-switch:directory-mode)。
  • Chat 列表头部右侧有「新建」与「更多」两个图标按钮。新建在插件面板打开 DeepSeek Chat 的新对话;更多展开菜单,包含「清空历史」(无历史时禁用)。
  • 每行标题前显示来源图标:DeepSeek / 元宝 / 豆包 用各自官方 logo;其他站点则用页面标题的第一个字做成字母徽标。
  • 头部筛选按钮可按模型过滤:全部 / DeepSeek / 元宝 / 豆包 / 文心一言 / 其他。选择保存在 deepseek-chat-switch:chat-filter。
  • 只显示真实对话:三个支持站点都必须带对话 id 才会显示。DeepSeek 需 /a/chat/s/<id>(或 chat_id / session_id 参数);豆包需 /chat/<id>;元宝需 /chat/<id>(/chat/naQivTmsDa 是默认空会话入口);文心一言的 URL 不含会话 id,因此不过滤。
  • 标题超宽时单行省略号截断。鼠标悬浮该行时按约 30px/s 的节奏横向滚动到标题末尾,滚动过程中用左右渐变遮罩淡出。
  • 悬浮任一行在右侧显示「更多」与「置顶」两个图标按钮。置顶按钮在鼠标停留约 500ms 后在按钮下方右对齐弹出浮层。
  • 更多菜单与行悬浮「更多」都复用 Harness 原生会话行「更多」浮层的样式。
  • 菜单包含置顶 / 取消置顶、重命名、复制对话链接、移除记录。重命名使用行内输入框,保存到 deepseek-chat-switch:history-titles。
  • 从 Chat 列表点击标题打开页面时,只同步选中态,不刷新该条目的记录时间与排序。
  • 当前页面选中态 / 悬停态:主面板里 DeepSeek 页面正在显示的地址会同步到侧栏列表,对应条目带 aria-current="true"。
  • 侧栏收起时整组 Tab 隐藏。选择写入 deepseek-chat-switch:directory-mode,默认 harness。

新会话页模式:HARNESS / Chat

点击左侧「新会话」后,Hero 标题「探索未至之境」下方新增一组模式切换 Tab,默认 HARNESS。

切到 Chat 后只保留输入框,隐藏工作区选择、代理模式、权限/模型等原生控件。Tab 与输入框之间保留 20px 间距。

  • 对话模型:Chat 输入框右下角显示当前模型及其品牌 logo。默认 DeepSeek。点击弹出 Harness 菜单样式的列表,可切换 DeepSeek / 元宝 / 豆包 / 文心一言。选择写入 deepseek-chat-switch:chat-model。
  • 记住上次选择:切到哪个 Tab 会写入 deepseek-chat-switch:hero-mode。从自动化任务页的「新建」进入新会话时,插件会先把 hero-mode 重置为 HARNESS。
  • 点击发送:文字写入所选对话站点的输入框,图片/文件写入该页面的附件区。填入完成后先倒计时 5 秒,再自动点击网页的发送按钮。浮层头部显示「N 秒后点击发送」的计时。
  • DeepSeek 的发送按钮是无文字的蓝色圆形图标,插件会先按 aria-label / title 匹配「发送 / send」,匹配不到时按特征识别。
  • 内嵌页不在所选站点时先导航到目标地址,加载完成后再重试。本轮发送浮层可重试,展示本次文字、附件和发送状态。附件可点击查看,倒计时结束自动关闭。
  • 发送计时:填入完成后显示「N 秒后点击发送」,5 秒到点自动点击发送按钮,再过 3 秒派发 Enter 作为补充发送。
  • 浮层 UI 复用 Harness 设计 token,保持与宿主一致的深浅色主题。

在其他会话里「问 deepseek」

Harness 会话头部注册了一个「问 deepseek」按钮,席位在 conversation.session.header.actions(标题行右端)。

按钮左侧复用 Harness 官方的鲸鱼标志,并设置 size: 14。

下拉菜单有两个选项:

  • 默认不带上下文:打开右侧半屏并新开一个 DeepSeek 对话,不填任何内容。
  • 带上下文(助手最后回复):打开右侧半屏,把 Harness 当前会话最后一条助手回复填入 DeepSeek 对话框。

取法:助手回复是唯一带 data-chat-group-part="response" 的流项,因此用 document.querySelectorAll('[data-chat-group-part="response"]') 取最后一个非空节点并读其 innerText。超过 4000 字保留尾部,首行为「以下是 Harness 对话中助手最后一条回复:」。

已知限制:不能截图;上下文来自已渲染的 DOM;内容读取失败时按钮旁会提示「没有可用的对话内容」。

半屏表面固定以 100% 缩放渲染,避免站点布局被放大后错位。脚本用 MutationObserver + requestAnimationFrame 节流跟随 SPA 路由变化。

安装与启用

在 Harness 客户端安装命令为:

dsh plugin add github:mryouyouHK/youyou-deepseek-chat-switch

安装后插件会自动加载,无需额外配置。

典型用法

  1. 安装插件后,在 Harness 左侧会话目录顶部会看到「HARNESS」与「Chat」两个 Tab。
  2. 切到 Chat,即可查看并打开之前访问过的 DeepSeek Chat 对话。
  3. 在新会话页切换到 Chat 模式,选择模型,输入文字或附件,插件会自动填入对应站点的输入框并触发发送。
  4. 在任意会话头部点击「问 deepseek」按钮,可选择是否携带当前会话的助手最后回复,在 DeepSeek Chat 中继续对话。

适用场景与注意

适合需要在 Harness 中频繁访问 DeepSeek Chat、希望保持上下文连续性的开发者。

插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。已知限制:附件上传与自动发送依赖 DeepSeek 站点的文件输入/拖放与发送按钮实现,站点改版可能失效;图片/文件目前限制单个 10MB、最多 10 个。

结语

DeepSeek Chat Switch 在 Harness 与 DeepSeek Chat 之间提供了快速切换的入口,减少浏览器标签页切换,提升开发与调试效率。完整文档与源码可在以下链接查看:

  • 目录页:https://www.skillhub.cn/plugins/mryouyouHK/youyou-deepseek-chat-switch
  • GitHub:https://github.com/mryouyouHK/youyou-deepseek-chat-switch
羽毛球分组比赛记分
小程序二维码

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

Xiaoye