前言¶
在 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