前言¶
在 DeepSeek Harness(dsh)裏做智能體開發,常見情況是:歷史對話和自定義 agent 分散在 pi、opencode、codex、claude-code 等工具裏,換到 dsh 後需要手動複製粘貼,或重新配置 skill。會話上下文、工具調用軌跡、項目級 agent 定義往往無法一次性帶過來。
下面介紹 dsh-import-agents(維護者 Chang-Tong)。它把上述四類來源的會話、聊天記錄和 agent 導入 dsh,導入後的會話出現在會話列表中,可帶着完整歷史繼續對話;自定義 agent 與 mode prompt 會轉成 dsh skill。插件在 composer 工具欄提供一鍵 Sync 按鈕,也支持斜槓命令,並在新會話啓動時提示是否遷移未導入的歷史。
這是什麼¶
dsh-import-agents 是 dsh 的工作流類插件,發佈在 npm(包名 dsh-import-agents,當前版本 0.2.8),採用 MIT 許可證。它面向已在 pi、opencode、codex 或 claude-code 中積累會話與 agent 的開發者,目標是在 dsh 中恢復可續聊的會話,並把 agent 變成可發現的 skill。
數據來源與格式如下:
| 來源 | 存儲格式 |
|---|---|
| pi | JSONL |
| opencode | SQLite |
| codex | JSONL |
| claude-code | JSONL |
導入後的會話使用穩定 id(如 pi-<uuid>、oc-<id>、codex-<id>、claude-<id>),重複導入會跳過已存在項,整體冪等。
核心功能¶
四類來源,一條命令¶
/import-all 會依次處理 pi、opencode、codex、claude-code 的會話,並把 pi / opencode 的 agent 與 mode prompt 轉成 skill。也可按來源單獨執行:
| 命令 | 作用 |
|---|---|
/import-pi [options] |
導入 pi 會話 |
/import-opencode [options] |
導入 opencode 會話 |
/import-codex [options] |
導入 codex 會話 |
/import-claude-code [options] |
導入 claude-code 會話 |
/import-agents |
將 pi / opencode agent 轉爲 dsh skill |
/import-all [options] |
上述全部 |
/attach-workspaces |
把已導入會話掛到與原始 cwd 匹配的工作區 |
常用選項:--limit N、--project <substr>、--since <iso|ms>、--no-tools、--tools-as-text、--tool-truncate N。
可續聊的完整歷史¶
導入的會話在 dsh 中按原生會話打開:文本、推理內容、工具調用均保留,模型能拿到完整上下文。Trajectory 標籤頁會爲每次工具調用渲染卡片。
Agent 變爲 skill¶
pi agent、mode prompt 以及 opencode agent 會寫入 $DSH_AGENTS_HOME/skills,並在 frontmatter 中記錄來源(metadata.source / metadata.kind)。
一鍵 Sync 與啓動遷移提示¶
composer 工具欄的 Sync 按鈕會執行 /import-all 並在界面內聯顯示結果。新建頂層會話時,若檢測到未導入的歷史,插件會詢問是否遷移;按項目記住選擇,同一項目不會重複打擾。可通過配置 config: { offerOnStart: false } 關閉該提示。
工作區歸屬¶
導入會話會掛到與原始 cwd 對應的工作區(不存在則創建)。標題帶來源標記(如 [pi]、[opencode]、[codex])。對已有導入可用 /attach-workspaces 補掛工作區。
零運行時依賴¶
實現僅依賴 Node 內置模塊(node:zlib zstd、node:sqlite)及 dsh 平臺模塊,要求 Node >= 22.19。
安裝與啓用¶
插件聲明瞭 dsh.bundle,可用官方一條命令安裝並激活:
dsh plugin --profile web add dsh-import-agents
dsh plugin add 會安裝 npm 包,並把插件追加到 profile 的 bundle 列表,無需手工改配置。安裝後需重啓 dsh web 並刷新頁面,composer 工具欄應出現 Sync 按鈕,輸入 /import-all 應有響應。
也可指定版本或來源,例如:
dsh plugin --profile web add dsh-import-agents@0.2.4
dsh plugin --profile web add github:Chang-Tong/dsh-import-agents
卸載示例:
dsh plugin --profile web remove dsh-import-agents
可選校驗:
npm view dsh-import-agents version
pnpm list dsh-import-agents
典型用法¶
Web 界面¶
- 重啓
dsh web後刷新頁面。 - 點擊 composer 工具欄的 Sync,或在輸入框執行
/import-all。 - 導入的會話出現在會話列表(按工作區分組);agent 出現在 skill 列表。
可多次執行,已導入項會被跳過。
獨立 CLI(不依賴 dsh 進程)¶
倉庫提供 import.mjs,可在命令行預覽或寫入:
node import.mjs all # 預覽,不寫盤
node import.mjs all --apply # 寫入會話與 skill
node import.mjs sessions codex --apply --limit 20
適用場景與注意¶
適合誰: 從 pi、opencode、codex 或 claude-code 遷到 dsh,希望保留對話歷史、工具軌跡和 agent 定義,並在 dsh 裏繼續同一項目的開發者。
權限與安全: 插件以當前 dsh 進程權限讀取本地會話文件與數據庫,並寫入 dsh 會話與 skill 目錄。安裝前應閱讀 源碼 與 MIT 許可證,確認來源路徑與數據範圍符合預期。來源路徑和默認值可通過插件配置覆蓋,詳見倉庫 Configuration 章節。
生態說明: dsh 採用「一切皆插件」的擴展方式;插件目錄 SkillHub 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-import-agents 把 pi、opencode、codex、claude-code 的會話與 agent 遷入 dsh,支持斜槓命令、composer Sync 按鈕和會話啓動遷移提示,導入後可續聊、可發現 skill。更多信息見 SkillHub 目錄頁 與 GitHub 倉庫。