dsh-chat-import:把外部 Agent 会话导入 DSH 并续聊

前言

在 DeepSeek Harness(DSH)里做智能体开发,常见情况是:Claude Code、Codex、Cursor 等工具里已经积累了大段对话,换到 DSH 后却要从头开始。手动复制粘贴会丢工具调用、思考过程和上下文结构;只导出文本又无法在 DSH 里「接着聊」。

dsh-chat-import 面向这类迁移场景:从十余种外部 Agent 工具的本地存储读取会话,转成 DSH 可恢复的会话;必要时还能导出、增量写回或打包备份。下面介绍它的定位、能力与用法。

这是什么

dsh-chat-import 是 DSH 社区插件,维护者为 Nwflower,npm 包名 dsh-chat-import,当前版本 0.7.0,许可证 MIT。它在 SkillHub 插件目录 的分类为「记忆」,GitHub 仓库约 102 stars。

插件只做两件事的核心延伸:读外部来源的会话文件(只读,不改写源文件),在 DSH 里生成可按工作区归组的新会话;反向方向支持把 DSH 会话序列化回 Claude Code、Codex、Kimi 等格式,或通过 interchange bundle 跨机器还原。

运行要求:Node.js ≥ 22.13;面向 dsh 0.1.x(README 写明在 0.1.0-rc.6 / 0.1.0-rc.7 上实测)。

核心功能

多来源导入

支持从 17+ 种外部 Agent 来源导入,每段对话成为独立 DSH 会话。导入工具包括 import_claudeimport_codeximport_chatgptimport_cursorimport_geminiimport_reasoniximport_opencodeimport_mimocodeimport_zcodeimport_grokbuildimport_openclawimport_piimport_hermesimport_kimiimport_qoderimport_workbuddyimport_dsh,以及通用入口 import_local_jsonl。README 共列出 18 个 import_* 工具。

全保真续聊指:工具调用与结果、思考过程、标题、模型名、时间戳尽量保留;会话按源 cwd 归入对应工作区。

发现与批量

scan_discover() 可先只读预览可导入内容。侧边栏「导入会话」面板按工作区浏览并支持多选;/import-all 可批量导入。

导出与同步

  • export_claude / export_codex / export_kimi:把 DSH 会话序列化回对应格式,有损项会报告。
  • export_bundle / restore_bundle:便携 interchange bundle,带 SHA-256 指纹,可跨机器还原。
  • sync_to_claude:把 DSH 会话新增轮次增量追加到 Claude Code 文件,带守卫、不静默覆盖。
  • 面板「同步」页:可选双向增量同步(外部 → DSH、DSH → 外部),默认关闭;子代理对话默认双向过滤;excludeDirs 可按方向排除指定工作区目录。

资产与配置迁移

  • import_agents:将 pi、opencode、Claude、Codex 的 agent、prompt、skill、指令转为 DSH skills。
  • import_mcp / /mcp-status:读取 Claude / Codex 的 MCP server 配置,生成可审阅的 DSH MCP client YAML 片段。
  • import_settings / /settings-suggest:把 Claude settings / Codex config 转为 DSH 迁移建议(只读)。
  • /resume-claude / /resume-codex:以外部 transcript 为不可信历史,生成交接摘要注入当前会话。

审计与保护

  • verify_sessiondoctor,或 CLI dsh-chat-import doctor:结构审计与迁移健康检查。
  • 导入工具支持 expectedHashrestamp、上下文预算保护;源未变则跳过,源增长则只追加。
  • 设置页「插件」分区可配置导入会话的默认 preset;「导入系统提示词」默认关闭,开启后可将源 transcript 的 system / developer 提示词作为上下文注入。

支持的来源

下表摘自 README.zh-CN.md,存储路径因平台而异,导入前请在本机核对实际目录。

来源 典型存储位置 导入工具
Claude Code ~/.claude/projects/<slug>/<sessionId>.jsonl import_claude
Codex / ChatGPT CLI ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl import_codex
ChatGPT 网页导出 导出包中的 conversations.json import_chatgpt
Cursor ~/.cursor/projects/<slug>/agent-transcripts/<id>/<id>.jsonl import_cursor
Gemini CLI ~/.gemini/history/<slot>/chats/session-*.json import_gemini
Reasonix ~/.reasonix/sessions/ import_reasonix
opencode ~/.local/share/opencode/opencode.db import_opencode
ZCode ~/.zcode/cli/db/db.sqlite import_zcode
Grok Build ~/.grok/sessions/<id>/ import_grokbuild
OpenClaw ~/.openclaw/agents/<agent>/sessions/*.jsonl import_openclaw
Pi Coding Agent ~/.pi/agent/sessions/ import_pi
Hermes ~/.hermes/ import_hermes
Kimi CLI / Kimi Code ~/.kimi/sessions/ import_kimi
Qoder CLI ~/.qoder/projects/ import_qoder
WorkBuddy ~/.workbuddy/projects/ import_workbuddy
DSH 会话日志 ~/.dsh/sessions/ import_dsh
任意本地 JSONL 任意 .jsonl 文件或目录 import_local_jsonl

源格式无法保留的部分会在导入报告中标注。各来源边界行为见仓库内 docs/USAGE.zh-CN.md

安装与启用

通过 DSH 插件命令安装 npm 包:

dsh plugin --profile web add dsh-chat-import

本地开发可用符号链接指向源码目录:

dsh plugin --profile web add -w link:/path/to/dsh-chat-import

卸载时从 profile 的 bundles 中移除 import-claude insert 行并重启 dsh;已导入的会话不会被插件自动删除。

典型用法

安装后,在任意 DSH 会话中调用 import_* 工具。所有导入工具共用 path 语义:单文件导入单会话,目录则递归扫描批量导入。

导入 Claude Code 项目目录:

import_claude({ path: "~/.claude/projects" })

导入 ChatGPT 网页导出:

import_chatgpt({ path: "~/Downloads/chatgpt-export/conversations.json" })

导入本地 JSONL(可指定格式):

import_local_jsonl({ path: "D:\downloads\session.jsonl" })

常用参数包括:preview(零副作用预览)、force(另存完整新副本)、sessionId(覆盖目标 id)、expectedHash(SHA-256 校验)、restamp(时间戳平移)、workspaceMode / workspaceDir(工作区归组控制)。

典型续聊流程:

  1. 调用 import_* 完成导入。
  2. 刷新会话列表,打开导入的会话。
  3. 从源记录停下的位置继续对话。

可选:scan_discover() 预览;侧边栏面板多选导入;/import-all 批量导入;面板「同步」页配置双向同步。

关键行为

  • 只读导入:源转录与数据库不被改写;DSH 侧历史为 append-only。
  • 幂等与增量:源未变则跳过;源增长则只追加新轮次;截断会被检测并上报。
  • 自动归组:按源 cwd 归入工作区。
  • 环境变更声明:每个导入会话在首个回合前注入折叠行,声明已迁移到 DSH,工具与权限以当前会话为准。
  • 失败要大声:畸形行、格式有损、导出有损项均显式上报;落盘会话自动结构自检。
  • 沙箱:读取工作区外的源文件或写入工作区外的导出目标,需要会话沙箱放行对应路径。

适用场景与注意

适合在以下情况使用:

  • 从 Claude Code、Codex、Cursor 等工具迁到 DSH,且需要保留工具调用与上下文结构。
  • 需要在 DSH 与外部工具之间交接会话,或做便携备份与跨机器还原。
  • 希望把外部 agent、MCP、settings 一并迁移到 DSH 生态。

使用前请注意:

  • 插件以当前 dsh 进程的权限运行,会读取本机 Agent 工具的会话目录;安装前应查看 GitHub 源码 与 MIT 许可证,确认可接受其读写范围。
  • SkillHub 为社区独立目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」思路,本插件为社区维护的迁移工具,非 DSH 内置能力。
  • 双向同步默认关闭;启用写回前建议先用 previewscan_discover() 确认范围。

链接

  • SkillHub 目录页:https://www.skillhub.cn/plugins/Nwflower/dsh-chat-import
  • GitHub 仓库:https://github.com/Nwflower/dsh-chat-import

dsh-chat-import 把分散在各 Agent 工具里的会话收成 DSH 可续聊的会话,并在需要时反向导出或打包。若你正从其他 Agent 环境迁到 DSH,或要在两套工具间交接上下文,可以按上文步骤安装并试一次 import_*

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

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

小夜