前言¶
在 DeepSeek Harness(DSH)里做智能体或长对话开发时,常见需求是把别处已经聊完的一轮对话「搬」进当前工作区,接着在同一套会话模型里续写或调试。手动复制粘贴容易丢轮次、标题对不上,也不利于和 DSH 的 v4 会话事件流对齐。dsh-share-import 面向公开的 DeepSeek、豆包分享链接,在本地 DSH 实例中写入一条已完成历史、可续聊的静态会话,无需登录分享方账号,也不触发新的模型生成。
这是什么¶
dsh-share-import 由社区维护者 Sillykjs 发布,归类为 DSH 生态中的联网工具插件。它读取可匿名访问的分享页或公开 JSON 接口,把对话正文规范化后,通过 DSH 的会话持久化写入你选定的工作区。导入结果仅是历史记录:不会发消息、不会开未结束的 turn;打开会话后,下一条输入自然接在历史之后。
支持的链接形式(须为公开、未过期):
- DeepSeek:
https://chat.deepseek.com/share/<id> - 豆包:
https://www.doubao.com/thread/<id>(也可不带www)
核心功能¶
下面介绍 README 中已说明、且与实现一致的能力。
零凭据拉取。 DeepSeek 走公开分享接口 https://chat.deepseek.com/api/v0/share/content?share_id=…;豆包优先走公开 JSON 快照(常规 id 用 POST /alice/message/share/get,移动端 x… id 用 POST /im/message/share/get),必要时回退到服务端渲染的分享页。不需要登录、token 或无头浏览器。
选择目标工作区。 面板会列出当前 DSH 实例下的工作区,会话写入你所选的那一个。
静态导入。 直接写入 v4 会话事件序列(session/title → turn/start → step/start → user/message → assistant/message → step/end → turn/end → session/end-seed),不调度生成任务。
重复导入防护。 默认同一分享链接再次导入会被拒绝(错误码 ALREADY_IMPORTED);面板提供「仍作为新会话导入」的显式路径。
界面与导航。 文案随 DSH UI 语言在中英文间切换。Settings 里可开关是否在侧栏显示 Share import 入口;状态保存在浏览器 localStorage 键 dsh-share-import:show-nav。
已知限制。 豆包分享仅导入文本;纯图片/视频消息会变成一行占位说明。若分享页声明懒加载且快照无消息,会报 SHARE_LAZY 而非写入截断对话。推理轨迹、联网搜索结果、引用标记等不会进入导入内容。
环境与依赖¶
插件在 README 中写明针对 DSH 0.2.1-rc.2(web profile)编写与测试。运行 dsh web 的机器需要 Node.js ≥ 20。须使用无需登录即可阅读的公开分享;私有或已失效链接无法导入。Host 侧依赖 DSH 内部服务,DSH 大版本升级后可能需要同步更新插件。
安装与启用¶
推荐从 GitHub 安装(命令来自官方 README):
dsh plugin --profile web add github:Sillykjs/dsh-share-import
dsh plugin 会把参数转给 profile 内的 pnpm add,因此也可使用 pnpm 支持的其它 specifier,例如固定 tag:
dsh plugin --profile web add github:Sillykjs/dsh-share-import#v0.2.0
npm 发布后可使用:
dsh plugin --profile web add dsh-share-import
安装后:dsh plugin add 会把 dsh-share-import 写入 profile 的 dsh.profile.bundles,并由 cordis.patch.yml 挂载插件。客户端刷新页面即可加载新 bundle(约 500 ms 内生效)。Host 侧须重启运行 dsh web 的进程;DSH 0.2.1-rc.2 不支持 host 插件模块的热重载。
插件以 MIT 许可证发布;安装前建议自行查看仓库源码与许可证。DSH 社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
典型用法¶
- 侧栏进入 Share import(全局导航第三项,下载图标),或从账户菜单 Settings → Share import 打开同一表单。
- 按需切换 Show the entry in the sidebar nav(默认显示侧栏入口;关闭后仍可从 Settings 进入)。
- 粘贴分享链接并选择工作区。
- 点击 Preview 查看标题、轮次数以及首尾问题摘要,确认后 Import session。
- 面板显示新会话 id;侧栏刷新后会话标题通常为首条用户问题。Back to chat 返回当前会话。
同一分享默认不能二次导入;若确需重复,面板会出现 Import as a new session anyway。
导入完成后,去重记录写在 $DSH_HOME/share-import/index.json(键为 deepseek:<id> 或 doubao:<id>);会话文件为 $DSH_HOME/sessions/<workspace>/<sessionId>/session.v4.jsonl.zstd。
适用场景与注意¶
适合: 把公开分享的 DeepSeek / 豆包对话归档到本地 DSH 工作区,在统一会话格式下继续提问或做 harness 相关实验;不想维护分享方账号凭据、只需只读拉取正文时。
注意:
- 插件会以当前 dsh 进程权限访问网络并写入
$DSH_HOME;安装与运行前应理解其会请求chat.deepseek.com与www.doubao.com,且不读取 cookie 或 DSH 凭据,但导入内容应视为不可信文本。 - 仅导入问答 prose;末尾仅有用户问、无 assistant 回复的轮次会被丢弃,避免留下 open turn。
- 常见错误码包括
SHARE_LINK_INVALID、SHARE_NOT_FOUND、SHARE_FETCH_FAILED、SHARE_EMPTY、SHARE_LAZY、WORKSPACE_REQUIRED、PERSISTENCE_UNAVAILABLE、WRITE_FAILED等,面板与 API 会返回对应标识。
结尾¶
dsh-share-import 把「公开分享链接 → DSH 可续聊静态会话」做成面板内几步操作,并明确不去生成、不去开未完成轮次。若你在用 DSH 的 web profile 整理跨平台对话素材,可按上文命令安装并在侧栏或 Settings 中导入。
- 社区目录页:https://www.skillhub.cn/plugins/Sillykjs/dsh-share-import
- 源码与完整说明:https://github.com/Sillykjs/dsh-share-import