dsh-import-agents:把 pi / opencode / codex / claude-code 会话迁入 DeepSeek Harness

前言

在 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 界面

  1. 重启 dsh web 后刷新页面。
  2. 点击 composer 工具栏的 Sync,或在输入框执行 /import-all
  3. 导入的会话出现在会话列表(按工作区分组);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 仓库

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

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

小夜