DSH Unified Context:把多 Harness 會話與上下文遷進一份 dsh

前言

在 DeepSeek Harness(dsh)生態裏,插件可以擴展會話、命令和 UI。實際開發中很多人會同時在 pi、opencode、OpenAI Codex、Claude Code 或 WorkBuddy 裏積累聊天記錄、AGENTS.md / CLAUDE.md / CODEBUDDY.md、skills 和自動化任務。換到 dsh 時,如果只拷貝 JSONL 或 SQLite 裏的對話,模型往往仍缺另一半上下文:指令文件、技能架、項目記憶和定時任務並不會自動跟過來。

下面介紹維護者 Chang-Tong 發佈的 DSH Unified Context(npm 包名 dsh-unified-context,社區目錄歸類爲工作流)。它把上述五類來源遷入 dsh,並用符號鏈接讓各 Harness 讀同一份真文件,而不是每個工具各存一份副本。

這是什麼

DSH Unified Context 面向「要從其它 Agent Harness 遷到 dsh,且希望會話可繼續、上下文不分裂」的開發者。插件在 dsh 內提供斜槓命令、composer 裏的 同步 按鈕,以及可選的 CLI(import.mjs);運行時主要依賴 Node 內置模塊(含 node:sqlite、node:zlib 的 zstd)和 dsh 平臺模塊,無額外運行時依賴。

當前 npm 發佈版本爲 0.5.0,許可證 MIT,要求 Node ≥ 22.19(與 dsh 一致)。

核心能力

五種來源,一次遷入

插件支持從以下來源導入可恢復的 dsh 會話(格式在 README 中寫明:pi / codex / claude-code / WorkBuddy 爲 JSONL,opencode 爲 SQLite):

Harness 遷移內容(據官方文檔)
pi 會話;agent / 模式提示詞 → dsh skills;指令與技能上下文
opencode 會話;agent → dsh skills;指令與技能上下文
OpenAI Codex 會話;AGENTS.md 上下文;自動化
Claude Code 會話;CLAUDE.md 上下文;項目與 Agent 記憶
WorkBuddy(騰訊) 含真實工具結果的會話;CODEBUDDY.md 與 skills;項目記憶;自動化

會話 id 設計爲穩定前綴(如 pi-<uuid>、oc-<id> 等),重複導入會跳過已存在項。

上下文用鏈接共享,而不是複製

/link-context 讓各 Harness 通過符號鏈接讀同一份 AGENTS.md / CLAUDE.md / CODEBUDDY.md 和同一個 skill hub。內容相同的副本會摺疊爲鏈接;內容不同的副本會報告衝突,默認不覆蓋。項目記憶收斂到 <項目>/.agents/memory/,Agent 記憶收斂到 ~/.agents/agent-memory/<agent>/;默認策略爲 authority,可選 merge 生成引用索引。

自動化與 Agent 形態轉換

Codex 與 WorkBuddy 的自動化會翻譯成 dsh 定時任務(RRULE 翻譯),默認以暫停狀態導入,便於先在來源側停用再啓用。dsh 內用 /import-automations,CLI 的 node import.mjs automations 僅打印計劃,真正創建任務需要運行中的 dsh。

pi / opencode 的 agent 與模式提示詞會落到 $DSH_AGENTS_HOME/skills,並在 frontmatter 記錄 metadata.source / metadata.kind。

交互入口

  • composer 工具行的 同步 按鈕:等價於執行 /import-all,內聯展示結果。
  • 新的頂層會話:若檢測到未導入歷史,會詢問是否遷移(可按項目記住決定,狀態寫在 $DSH_HOME/unified-context-state.json)。

安裝與啓用

插件已發佈到 npm,並聲明 dsh.bundle,通過官方 dsh plugin add 安裝後會自動進入 profile 的 bundle 列表。

推薦一鍵安裝:

dsh plugin --profile web add dsh-unified-context

安裝後需 重啓 dsh web 並刷新頁面(舊頁面 RPC 會斷開)。驗證方式:composer 出現 同步 按鈕,且 /import-all 有響應。

也可指定版本或從 GitHub 安裝(文檔中的示例):

dsh plugin --profile web add dsh-unified-context@0.5.0
dsh plugin --profile web add github:Chang-Tong/dsh-unified-context

卸載示例:

dsh plugin --profile web remove dsh-unified-context

典型用法

Web 內快速遷移

  1. 重啓 dsh web 後刷新頁面。
  2. 點擊 同步,或輸入 /import-all。
  3. 在會話列表中按工作區查看導入會話;在 Automation tasks 頁面查看遷移任務(默認暫停,確認來源側已停後再恢復)。

完整遷移冪等:已導入會話、已有鏈接和相同自動化任務不會重複創建。

按需執行的斜槓命令

命令 作用
/import-pi … /import-workbuddy 按來源導入會話
/import-agents pi / opencode agent → skills
/link-context 共享指令文件、skill hub、長期記憶(可加 --dry-run、--push、--memory=authority\|merge\|off 等)
/import-automations 遷移 Codex / WorkBuddy 自動化(默認暫停)
/import-all 會話 + agents + 上下文鏈接 + 暫停的自動化
/attach-workspaces 爲已導入會話補掛與原始 cwd 匹配的工作區

常用選項包括 --limit N、--project 子串、--since、--no-tools、--activate 等,詳見倉庫中文 README。

不啓動 dsh 時的 CLI 預覽

在項目包目錄可用 import.mjs 做 dry-run 或局部寫入(自動化創建仍依賴運行中的 dsh):

node import.mjs all                    # dry-run 預覽
node import.mjs all --apply            # 會話 + skills + 共享上下文鏈接
node import.mjs sessions codex --apply --limit 20
node import.mjs context --apply

配置要點

可在插件插入行覆蓋默認值。文檔列出的部分鍵如下:

鍵 默認值 含義
offerOnStart true 新頂層會話是否詢問遷移
piRoot ~/.pi/agent/sessions pi 會話根目錄
opencodeDb ~/.local/share/opencode/opencode.db opencode SQLite
codexRoot ~/.codex/sessions codex 會話
claudeRoot ~/.claude/projects claude-code 項目
workbuddyRoot ~/.workbuddy WorkBuddy 數據根
timeZone Asia/Shanghai 自動化 RRULE 翻譯時區
skillsRoot $DSH_AGENTS_HOME/skills skills 輸出目錄
toolTruncate 1000 工具參數截斷長度

關閉啓動時遷移詢問示例:config: { offerOnStart: false }。

適用場景與注意

適合:已在 pi、opencode、Codex、Claude Code 或 WorkBuddy 中有大量歷史,計劃以 dsh 爲主界面,並希望 同一份項目上下文 仍被多個 Harness 讀取的場景。

需要注意:

  • 插件隨 當前 dsh 進程權限 讀取本機會話目錄、數據庫和項目文件。安裝前應閱讀 GitHub 源碼 與 MIT 許可證,確認路徑與行爲符合你的安全策略。
  • pi、opencode、codex、claude-code 的來源通常只保存工具調用,不含真實 tool result;WorkBuddy 在來源記錄了結果時會原樣導入。FAQ 中說明了佔位 result 的處理方式。
  • WorkBuddy 的 SOUL.md / MEMORY.md 等全局身份文件 不會 併入共享指令;MCP、provider 配置等也保持各 Harness 原生,不在此插件統一範圍內。
  • 社區目錄 SkillHub 上的插件頁 與 DeepSeek / 幻方無官方從屬關係,屬於社區收錄;DSH 本身貫徹「一切皆插件」的擴展方式。

結尾

DSH Unified Context 解決的是 Harness 切換時的「半套上下文」問題:會話、指令、skills、記憶和自動化儘量一次遷入 dsh,並用符號鏈接維持單一真源。若你正在評估遷移,可從 dsh plugin --profile web add dsh-unified-context 裝起,用 /import-all 或 同步 按鈕跑一遍冪等導入,再按需細化 /link-context 與 /import-automations。

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

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

小夜