用 dsh-import-agents 把 pi、OpenCode、Codex 等歷史會話導入 DeepSeek Harness

前言

DeepSeek Harness(dsh)把模型、工具、會話、沙箱和界面都做成插件,官方倉庫的口號就是「Everything is a Plugin / 一切皆插件」。換到這套運行時之後,卡住的往往不是裝插件,而是歷史對話還散落在別處:pi 的 JSONL、OpenCode 的 SQLite、Codex 和 Claude Code 各自的會話目錄。這些文件能在原工具裏打開,但不能直接當成 dsh 會話繼續聊。

dsh-import-agents 做的就是把這四類來源的會話、聊天記錄和智能體配置讀進 DeepSeek Harness:導入結果出現在會話列表,可以帶着完整上下文接着聊;pi / OpenCode 的 agent 與模式提示詞會變成可發現的 dsh skills。Web 界面 composer 工具行裏有一鍵「同步」按鈕,也可用斜槓命令;新頂層會話啓動時,若還有未導入歷史,插件會詢問是否遷移。

本文按社區插件目錄頁、GitHub 倉庫 README(中英文)、package.json、CHANGELOG、LICENSE 和 npm 頁面交叉覈對後整理。社區目錄 deepseek-harness-plugin.com 是獨立站點,和 DeepSeek / 幻方沒有官方從屬關係,不要把它理解成官方應用商店。

這是什麼

dsh-import-agents 是一款「會話與消息」類 DeepSeek Harness 插件,由 Chang-Tong 維護,GitHub 倉庫爲 Chang-Tong/dsh-import-agents。許可證爲 MIT(Copyright 2026 dsh-import-pi-opencode contributors)。npm 包名同爲 dsh-import-agents,當前版本 0.2.6(2026-08-17 發佈)。主要語言是 JavaScript,運行要求 Node.js ≥ 22.19(倉庫說明這與 dsh 一致,需要 node:sqlitenode:zlib 的 zstd)。package.json 裏客戶端注入聲明瞭 "platform": "web",同步按鈕面向 dsh web。

它解決的問題很具體:把 piopencodecodexclaude-code 的歷史會話寫成可 resume 的 dsh 會話,並把 pi 的 agent / 模式提示詞、opencode 的 agent 轉成 $DSH_AGENTS_HOME/skills 下的技能包。導入按源 cwd 掛到對應工作區,標題帶來源標籤([pi][opencode][codex] 等)。重複導入是冪等的:穩定 id 形如 pi- / oc- / codex- / claude-,已存在的會跳過。

GitHub 倉庫頁面在筆者查閱時顯示 10 顆星;社區目錄頁當時標註 6 顆星。星標以倉庫頁面爲準,目錄數字可能滯後。目錄頁收錄日期爲 2026-08-06。

核心功能

下面只寫目錄頁和倉庫 README 裏已經寫明、可以按文檔復現的部分。

四種來源,寫成可繼續的 dsh 會話

每種來源對應默認數據根和一條斜槓命令。存儲位置以倉庫文檔爲準:

來源 默認位置 命令
pi ~/.pi/agent/sessions 下的 JSONL /import-pi
opencode ~/.local/share/opencode/opencode.db /import-opencode
codex ~/.codex/sessions 下的 JSONL /import-codex
claude-code ~/.claude/projects 下的 JSONL /import-claude-code

導入不是把文本粘進當前對話框,而是寫出與 dsh 持久化後端一致的 JSONL 事件(帶校驗和的 zstd 幀、項目目錄編碼)。倉庫說明:dsh 自帶的 list / load / prepare 可以按原格式讀回。打開導入的會話後,文本、推理塊和工具調用都在,模型拿到完整歷史再繼續。

工具調用會寫成 tool-call 內容塊,並配套 tool/call + tool/result 事件,Trajectory 標籤頁能渲染工具卡片。FAQ 寫明:各來源格式本身通常只保存調用、不保存工具結果,導入用佔位 tool/result 讓恢復會話時請求仍然合法。--tools-as-text 改成純文本(無軌跡卡片),--no-tools 則丟棄工具調用。機械記錄(step-startpatchcompaction 等)會跳過。

一鍵同步、斜槓命令、新會話遷移提示

composer 工具行有一個小按鈕(英文界面爲 Sync,中文界面爲 同步),點擊後執行 /import-all,結果內聯顯示。/import-all 會跑四個來源再加 agents。也可以按來源單獨導入。

新頂層會話啓動時,若該項目還有未導入歷史,插件會詢問是否遷移。決定按項目記住,全局 agents 的決定也記住,狀態寫在 $DSH_HOME/import-pi-opencode-state.json。只對帶 cwd 的全新頂層會話觸發,subagent 不觸發;headless 等沒有 UI provider 的環境會靜默跳過。可用 config: { offerOnStart: false } 關掉詢問。

Agents 變成 skills,會話按工作區掛載

/import-agents 把 pi 的 agent / 模式提示詞和 opencode 的 agent 寫成 $DSH_AGENTS_HOME/skills/<名稱>/SKILL.md(默認 ~/.agents/skills/),frontmatter 記錄 metadata.source / metadata.kind。名稱衝突會改成 <名稱>-<來源>(文檔舉例 k3-reviewer-opencode);已存在的 bundle 只補 SKILL.md,同名同內容則跳過。

導入的會話按原始 cwd 掛到匹配工作區,沒有則創建。舊導入可用 /attach-workspaces 補掛。缺少 cwd 的會話在掛工作區時記爲跳過,而不是失敗(CHANGELOG 0.2.2)。

安裝與啓用

社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端裏運行:

dsh plugin add github:Chang-Tong/dsh-import-agents

如需可復現安裝,按目錄頁說明固定 commit 哈希:

dsh plugin add github:Chang-Tong/dsh-import-agents#<commit>

倉庫 README 推薦走 npm 包、並指定 web profile(0.2.4 起聲明瞭 dsh.bundle,一鍵安裝會自動激活層,無需再手改 cordis.patch.yml):

dsh plugin --profile web add dsh-import-agents

指定版本、從 GitHub 短格式安裝,或卸載,也可以按 README 寫:

dsh plugin --profile web add dsh-import-agents@0.2.6
dsh plugin --profile web add github:Chang-Tong/dsh-import-agents
dsh plugin --profile web remove dsh-import-agents

從 Git 安裝帶源碼的插件時,安裝過程會跑 prepare 構建。README 說明 pnpm ≥ 10 默認阻止腳本:第一次 add 可能失敗並給出 allowBuilds 提示,把提示的 key 寫進該 profile 的 pnpm-workspace.yaml 後再跑一次。安裝已經構建好的 tarball 或本地 checkout 不需要這一步。

安裝後按倉庫步驟驗證:

  1. 重啓 dsh web——主機插件在啓動時註冊斜槓命令,前端同步按鈕由 dsh web 加載。
  2. 刷新頁面——重啓後舊頁面的 RPC 連接已斷開,不刷新則按鈕和命令會失敗。
  3. 確認輸入框工具行出現 同步 / Sync 按鈕,輸入 /import-all 有響應。

目錄頁和倉庫都提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證。

典型用法

1. 一鍵導入四種來源和 agents

重啓並刷新頁面後,點 composer 工具行的 同步 按鈕,或直接輸入:

/import-all

導入的會話出現在會話列表(按工作區分組);導入的 agent 出現爲 skills。一切冪等,想跑多少次都行。若顯示「新導入 0,已存在跳過 N」,說明這些會話已經導過,不會重複寫入。

只導某一個來源,或只導 agents:

/import-pi
/import-opencode
/import-codex
/import-claude-code
/import-agents

常用選項(README):--limit N--project 子串、--since(ISO 或毫秒)、--no-tools--tools-as-text--tool-truncate N

舊導入沒有掛上工作區時:

/attach-workspaces

2. 覆蓋默認路徑和遷移詢問

默認路徑和開關可以在插件插入行上覆蓋。cordis.patch.yml 裏插件 id 爲 import-pi-opencode,包名爲 dsh-import-agents。倉庫列出的配置鍵如下:

默認值 含義
offerOnStart true 新頂層會話啓動時是否詢問遷移
piRoot ~/.pi/agent/sessions pi 會話根目錄
piAgentRoot ~/.pi/agent pi agents / 提示詞根目錄
opencodeDb ~/.local/share/opencode/opencode.db opencode SQLite 路徑
opencodeConfig ~/.config/opencode opencode agents 根目錄
codexRoot ~/.codex/sessions codex 會話根目錄
claudeRoot ~/.claude/projects claude-code 項目根目錄
skillsRoot $DSH_AGENTS_HOME/skills skills 輸出根目錄
toolTruncate 1000 工具調用參數截斷長度(字符)

關掉啓動詢問的寫法是 config: { offerOnStart: false }

3. 倉庫源碼裏的 CLI(不經過 dsh)

README 提供不啓動 dsh 的命令行入口,默認 dry-run,加 --apply 才寫入。需要在倉庫 checkout 裏執行 node import.mjs(該文件在 GitHub 源碼根目錄;package.json 的 npm files 列表未包含它,不能默認當成裝完 npm 包就能用):

node import.mjs all
node import.mjs all --apply
node import.mjs sessions codex --apply --limit 20
node import.mjs agents --apply
node export.mjs

all 與 GUI 裏的 /import-all 語義一致:四個來源加 agents(CHANGELOG 0.2.5)。export.mjs 把會話寫成 Markdown,默認輸出到 $DSH_HOME/exports/<來源>/<會話id>.md,支持 --source--project--limit--since--out--no-reasoning--no-tools

適用場景與注意事項

比較適合這幾類用法:

  • 已經在 pi、OpenCode、Codex 或 Claude Code 裏積累了項目會話,希望遷到 DeepSeek Harness,還想保留推理塊和工具調用軌跡。
  • 需要把 pi / OpenCode 的自定義 agent、模式提示詞變成 dsh skills,並留下 metadata.source / metadata.kind 溯源。
  • 希望用 Web UI 的同步按鈕或 /import-all 做冪等同步,而不是手工拷 JSONL。

使用前要注意:

  1. 權限與許可證。插件以當前 dsh 進程權限運行,安裝時可能執行代碼。安裝前閱讀 倉庫源碼 和 MIT 許可證。
  2. 運行時版本。需要 Node.js ≥ 22.19。同步按鈕和客戶端 bundle 面向 web profile;headless 環境會跳過遷移詢問。
  3. 重啓後必須刷新。重啓 dsh web 後舊頁面的 RPC 已斷開,未刷新時點同步或跑斜槓命令都會失敗。
  4. 工具結果可能是佔位。源格式往往不存工具結果。導入保留調用並寫佔位 tool/result,軌跡能出卡片,但結果內容並不等於原工具真實輸出。
  5. OpenCode 缺庫不會崩。CHANGELOG 0.2.1:opencode 讀取器在數據庫不存在時按「無會話」處理,而不是崩潰。
  6. 不要和目錄頁命令混用猜測。目錄頁安裝入口是 dsh plugin add github:Chang-Tong/dsh-import-agents;README 推薦的 npm 寫法帶 --profile web。兩者都能裝,按你用的 profile 選擇,不要自行拼接未經頁面寫出的命令。

小結

dsh-import-agents 把 pi、OpenCode、Codex、Claude Code 的會話變成 DeepSeek Harness 裏可 resume 的會話,並把對應 agent / 提示詞落成 skills。同步按鈕、斜槓命令和新會話遷移提示覆蓋了日常搬遷路徑。它是社區 MIT 插件,不是 DeepSeek 官方組件;目錄頁只負責收錄和給出安裝命令。

安裝入口以目錄頁爲準:

dsh plugin add github:Chang-Tong/dsh-import-agents

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-import-agents/

GitHub:https://github.com/Chang-Tong/dsh-import-agents

羽毛球分组比赛记分
小程序二维码

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

小夜