前言¶
用 DeepSeek Harness(DSH)做智能体开发时,常要对照 DeepSeek、豆包、ChatGPT 等不同站点的回答或界面。系统浏览器多窗口切换、登录态互相干扰,和 Harness 里的会话、插件面板也不在同一块工作区里。社区插件 dsh-chat-embed(维护者 poluce,分类:客户端)在 DSH 桌面版里增加一个多标签「聊天」面板:每个标签对应一家服务的官方网页,各自用桌面 webview 与独立存储分区登录,不代发请求、不落库聊天内容,只是把站点嵌进常驻界面。
这是什么¶
dsh-chat-embed 的定位是:给 DSH 桌面端补一个「多服务 AI 聊天」的常驻 UI。左侧导航有「聊天」入口,点开后中央主面板即为聊天页;也可以在任意会话标题栏点「⧉」,在右栏以 tab 形式打开同一套界面。左栏与右栏互斥,哪边被点开就由哪边承载,并回到上次激活的标签与会话状态。
内置七个服务标签:DeepSeek、豆包、ChatGPT、MiniMax、Kimi、Gemini、Grok。插件无第三方运行时依赖,client.js 由 DSH 模块加载器直接执行。npm 包当前版本为 0.5.4,许可证 MIT。GitHub 仓库:https://github.com/poluce/dsh-chat-embed;社区目录页:https://www.skillhub.cn/plugins/poluce/dsh-chat-embed(独立社区站点,与 DeepSeek / 幻方无官方从属关系)。
核心功能¶
下面能力均来自项目 README 与 package.json 说明。
| 能力 | 说明 |
|---|---|
| 多标签 webview | 每个服务独立 webview、独立分区;切标签只切换显示,不卸载页面,草稿与滚动位置保留 |
| 双入口 | 左栏「聊天」→ 中央主面板;会话头「⧉」/ 右栏启动器 → 右栏 tab(keepMounted) |
| 席位互斥 | 两处入口谁点开谁接管,切换时重建一次并恢复上次会话 |
| 设置与排序 | ⚙ 可逐个启用/禁用服务(至少保留一个);标签可横向拖动排序,顺序写入 localStorage |
| 失败隔离 | 单标签失败不影响其它;「重新加载」仅更换该标签的租约 |
| 诊断与调试 | ⚙ 菜单内「标签页诊断」、可选「调试日志」(默认关闭) |
| 非桌面降级 | 依赖 Electron webviewTag 与 window.dshDesktop.browser;Web GUI 下显示说明卡片并可外开链接 |
插件 不代理 HTTP、不保存聊天记录;登录在各站点自己的 webview 内完成(验证码、扫码、邮箱等)。同一次运行内登录态有效;跨进程重启后若未打可选壳补丁,需重新登录。
环境要求¶
仅 DSH 桌面版可用。README 实测环境:
| 项 | 要求 |
|---|---|
| 桌面端 | @deepseek-ai/dsh-desktop 0.2.2-rc.1(Windows 10/11 实测) |
| DSH 引擎 | package.json 声明 engines.dsh: >=0.1.0-rc.6;版本不符时插件管理器可拒绝安装 |
| Node.js | >=22(仅开发/测试;插件运行时不依赖 Node) |
安装与启用¶
安装前建议浏览仓库源码与 MIT 许可证;插件在 当前 DSH 进程权限下运行,webview 会加载第三方 HTTPS 页面。
方式一:npm 包(推荐,已发布 0.5.4)
在 DSH 会话中交给插件管理器:
plugin_manager { "action": "install_bundle", "target": "dsh-chat-embed" }
命令行等价写法:
dsh plugin --profile desktop add dsh-chat-embed
安装后刷新页面;左侧栏出现聊天气泡图标即表示成功。
方式二:Release 压缩包或 git URL
dsh plugin --profile desktop add .\dsh-chat-embed-0.5.0.tgz
dsh plugin --profile desktop add git+https://github.com/poluce/dsh-chat-embed.git
方式三:本地 link 开发
dsh plugin --profile desktop add link:<本仓库路径>
卸载:
dsh plugin --profile desktop remove dsh-chat-embed
典型用法¶
- 打开 DSH 桌面版,左侧点「聊天」→ 中央面板加载多标签聊天页;或点会话头「⧉」在右栏打开。
- 点顶部标签切换服务;标签会记住上次激活项(
localStorage['dsh-chat-embed:active-tab'])。 - 需要隐藏某个服务:工具行 ⚙ → 关闭对应开关(至少保留一个)。
- 页面白屏或卡住:工具行「重新加载」或「外开」到系统浏览器。
- 排查问题:⚙ →「标签页诊断…」→ 复制诊断信息(含 URL、分区、席位等)以便对照文档或反馈 issue。
界面文案跟随 DSH「设置 → 通用设置 → 语言」;插件注册 zh / en 词典,切换语言后立即生效,无需刷新。
配置与扩展¶
增删内置服务:唯一清单在 client.js 的 PROVIDERS。追加条目示例:
{ id: 'gemini', label: 'Gemini', url: 'https://gemini.google.com/',
origin: 'https://gemini.google.com', workspace: 'dsh-chat-embed:gemini:v1' },
字段约束:id 小写唯一;url 须为 https://;workspace 为壳存储分区键,发布后不可改(改动会导致退出登录)。改完后执行 npm run check,重装插件并刷新。
运行时本地状态(均在浏览器 localStorage):
dsh-chat-embed:enabled:各服务启用开关dsh-chat-embed:tab-order:标签顺序dsh-chat-embed:active-tab:上次激活标签dsh-chat-embed:log:调试日志(1开 /0关)dsh-chat-embed:persist:持久化检测结果缓存
跨重启保持登录(可选):需使用随包发布的 tools/shell-patch/ 对桌面壳打补丁(persist: 固定分区 + cache:false)。未打补丁也可日常使用,只是重启后需在各标签内重新登录。补丁步骤与风险见仓库 README「已知限制」及 ⚙ 菜单「复制补丁说明」。
深入实现与升级复验清单见仓库 docs/architecture.md。
适用场景与注意¶
适合:已在用 DSH 桌面版、需要在同一工作区内快速切换多家 AI 聊天网页、且接受「真实站点 + 独立登录」而非统一 API 聚合的开发者。
注意:
- 仅桌面 Electron 环境完整可用;纯 Web GUI 无法使用 webview 全功能。
- Google 登录等场景在部分环境下可能走不通,插件会退回说明卡片。
- 可选壳补丁会修改
app.asar,操作前需理解回滚方式(如restore-shell-patch.cmd)。 - 社区目录与 GitHub 为公开来源;安装与登录行为由第三方站点策略决定,请自行评估账号与数据安全。
结尾¶
dsh-chat-embed 用 DSH 插件机制把七家常见 AI 聊天站收进一个多标签、双入口的桌面面板,切换轻、分区隔离登录态清晰,适合 Harness 场景下的对照使用。进一步了解安装细节与架构契约,可看社区目录页与 GitHub README: