在使用 DeepSeek Harness (DSH) 或其他 AI 智能体时,更换工具通常意味着对话历史和上下文记忆的丢失。dsh-migrate 插件旨在解决这个问题,它允许将其他智能体的会话记录和记忆导出为 DSH 原生的会话日志,以便在 DSH 中继续使用和检索。
本插件由维护,开源协议为 MIT。它提供了一套机制,将来自多种主流智能体的数据转换为 DSH 可读、可搜索的格式。
安装与启用¶
通过插件管理器将插件安装到 DSH 的 Web 配置文件中。
dsh plugin --profile web add @ersss/dsh-migrate
安装完成后需要重启 DSH 以加载插件。
dsh web
安装过程会注册 /migrate 斜杠命令,并将会话存储目录重定向到 $DSH_HOME/sessions-imported,这是一个专门用于存放导入日志的独立根目录。
核心功能¶
- 多源读取:支持从多种 AI 智能体读取聊天历史和记忆。支持的来源包括 Claude Code、Codex CLI、Gemini CLI、Cursor、Kimi CLI、ChatGPT、Cline、OpenCode、Aider、Hermes Agent 和 OpenClaw。
- 原生格式写入:导入的数据会被写入为 DSH 的原生会话日志(JSONL 格式)。这些日志在侧边栏按原始项目目录分组,并在 Trajectory 视图中完整展示事件流(提示、推理、工具调用和结果)。
- Slash Command:在 DSH 的 Web UI 中提供
/migrate命令,用于直接进行列表查看和运行迁移。 - Standalone CLI:提供独立的命令行工具
npx @ersss/dsh-migrate,支持在不运行 DSH 的情况下扫描本地数据并进行预览(dry run)。 - 记忆与文档集成:支持将导入的记忆写入项目根目录的
AGENTS.md文件中,并保留消息来源的证明(通过via通道标记)。
典型用法¶
Web UI 使用¶
在 DSH 的 Web 界面中输入以下命令:
/migrate list # 查看各智能体在本地磁盘上的会话记录
/migrate run # 导入所有检测到的会话
/migrate run --source claude-code --limit 10 # 仅导入特定来源的前 10 条记录
命令行使用¶
在终端中运行以下命令:
npx @ersss/dsh-migrate list
npx @ersss/dsh-migrate run # 导入到默认的 $DSH_HOME/sessions-imported
npx @ersss/dsh-migrate run --out /path/to/root # 指定输出路径
npx @ersss/dsh-migrate run --write-instructions . # 同时将记忆折叠到当前目录的 AGENTS.md
导入的会话会以 session/end-seed 事件结束,标记为种子历史。这意味着在 DSH 中继续对话时,系统会将其作为继承上下文播放,随后开始一段新的活跃记录,从而实现无缝的会话延续。
限制与注意事项¶
- 只读操作:插件对源智能体目录执行只读操作,不会修改任何原始数据。
- 媒体支持:图片和附件无法导入,但附件周围的文本内容会被保留。
- 历史压缩:源转录文件中的压缩历史会被扁平化为纯消息。
- 来源差异:由于源智能体数据格式的差异,部分功能可能存在缺口(例如 Cursor 的工具结果、ChatGPT 的工具消息结构化、Kimi 的子代理内部细节等)。
总结¶
dsh-migrate 提供了在 DeepSeek Harness 中迁移和复用其他智能体上下文的标准化方案。对于需要在多个智能体工具之间切换并希望保留完整上下文记录的开发者来说,这是一个实用的工具。
更多信息请参考 GitHub 仓库。