dsh-share-import:把 DeepSeek / 豆包公開分享鏈接導入 DSH 會話

前言

在 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 / 幻方無官方從屬關係。

典型用法

  1. 側欄進入 Share import(全局導航第三項,下載圖標),或從賬戶菜單 Settings → Share import 打開同一表單。
  2. 按需切換 Show the entry in the sidebar nav(默認顯示側欄入口;關閉後仍可從 Settings 進入)。
  3. 粘貼分享鏈接並選擇工作區。
  4. 點擊 Preview 查看標題、輪次數以及首尾問題摘要,確認後 Import session。
  5. 面板顯示新會話 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
羽毛球分组比赛记分
小程序二维码

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

小夜