前言¶
DeepSeek Harness(dsh)把模型、工具、会话、沙箱和界面都做成插件,官方仓库的口号就是「Everything is a Plugin / 一切皆插件」。换到这套运行时之后,卡住的往往不是装插件,而是历史对话还散落在别处:pi 的 JSONL、OpenCode 的 SQLite、Codex 和 Claude Code 各自的会话目录。这些文件能在原工具里打开,但不能直接当成 dsh 会话继续聊。
dsh-import-agents 做的就是把这四类来源的会话、聊天记录和智能体配置读进 DeepSeek Harness:导入结果出现在会话列表,可以带着完整上下文接着聊;pi / OpenCode 的 agent 与模式提示词会变成可发现的 dsh skills。Web 界面 composer 工具行里有一键「同步」按钮,也可用斜杠命令;新顶层会话启动时,若还有未导入历史,插件会询问是否迁移。
本文按社区插件目录页、GitHub 仓库 README(中英文)、package.json、CHANGELOG、LICENSE 和 npm 页面交叉核对后整理。社区目录 deepseek-harness-plugin.com 是独立站点,和 DeepSeek / 幻方没有官方从属关系,不要把它理解成官方应用商店。
这是什么¶
dsh-import-agents 是一款「会话与消息」类 DeepSeek Harness 插件,由 Chang-Tong 维护,GitHub 仓库为 Chang-Tong/dsh-import-agents。许可证为 MIT(Copyright 2026 dsh-import-pi-opencode contributors)。npm 包名同为 dsh-import-agents,当前版本 0.2.6(2026-08-17 发布)。主要语言是 JavaScript,运行要求 Node.js ≥ 22.19(仓库说明这与 dsh 一致,需要 node:sqlite 和 node:zlib 的 zstd)。package.json 里客户端注入声明了 "platform": "web",同步按钮面向 dsh web。
它解决的问题很具体:把 pi、opencode、codex、claude-code 的历史会话写成可 resume 的 dsh 会话,并把 pi 的 agent / 模式提示词、opencode 的 agent 转成 $DSH_AGENTS_HOME/skills 下的技能包。导入按源 cwd 挂到对应工作区,标题带来源标签([pi]、[opencode]、[codex] 等)。重复导入是幂等的:稳定 id 形如 pi- / oc- / codex- / claude-,已存在的会跳过。
GitHub 仓库页面在笔者查阅时显示 10 颗星;社区目录页当时标注 6 颗星。星标以仓库页面为准,目录数字可能滞后。目录页收录日期为 2026-08-06。
核心功能¶
下面只写目录页和仓库 README 里已经写明、可以按文档复现的部分。
四种来源,写成可继续的 dsh 会话¶
每种来源对应默认数据根和一条斜杠命令。存储位置以仓库文档为准:
| 来源 | 默认位置 | 命令 |
|---|---|---|
| pi | ~/.pi/agent/sessions 下的 JSONL |
/import-pi |
| opencode | ~/.local/share/opencode/opencode.db |
/import-opencode |
| codex | ~/.codex/sessions 下的 JSONL |
/import-codex |
| claude-code | ~/.claude/projects 下的 JSONL |
/import-claude-code |
导入不是把文本粘进当前对话框,而是写出与 dsh 持久化后端一致的 JSONL 事件(带校验和的 zstd 帧、项目目录编码)。仓库说明:dsh 自带的 list / load / prepare 可以按原格式读回。打开导入的会话后,文本、推理块和工具调用都在,模型拿到完整历史再继续。
工具调用会写成 tool-call 内容块,并配套 tool/call + tool/result 事件,Trajectory 标签页能渲染工具卡片。FAQ 写明:各来源格式本身通常只保存调用、不保存工具结果,导入用占位 tool/result 让恢复会话时请求仍然合法。--tools-as-text 改成纯文本(无轨迹卡片),--no-tools 则丢弃工具调用。机械记录(step-start、patch、compaction 等)会跳过。
一键同步、斜杠命令、新会话迁移提示¶
composer 工具行有一个小按钮(英文界面为 Sync,中文界面为 同步),点击后执行 /import-all,结果内联显示。/import-all 会跑四个来源再加 agents。也可以按来源单独导入。
新顶层会话启动时,若该项目还有未导入历史,插件会询问是否迁移。决定按项目记住,全局 agents 的决定也记住,状态写在 $DSH_HOME/import-pi-opencode-state.json。只对带 cwd 的全新顶层会话触发,subagent 不触发;headless 等没有 UI provider 的环境会静默跳过。可用 config: { offerOnStart: false } 关掉询问。
Agents 变成 skills,会话按工作区挂载¶
/import-agents 把 pi 的 agent / 模式提示词和 opencode 的 agent 写成 $DSH_AGENTS_HOME/skills/<名称>/SKILL.md(默认 ~/.agents/skills/),frontmatter 记录 metadata.source / metadata.kind。名称冲突会改成 <名称>-<来源>(文档举例 k3-reviewer-opencode);已存在的 bundle 只补 SKILL.md,同名同内容则跳过。
导入的会话按原始 cwd 挂到匹配工作区,没有则创建。旧导入可用 /attach-workspaces 补挂。缺少 cwd 的会话在挂工作区时记为跳过,而不是失败(CHANGELOG 0.2.2)。
安装与启用¶
社区目录页给出的安装命令如下,在 DeepSeek Harness 终端里运行:
dsh plugin add github:Chang-Tong/dsh-import-agents
如需可复现安装,按目录页说明固定 commit 哈希:
dsh plugin add github:Chang-Tong/dsh-import-agents#<commit>
仓库 README 推荐走 npm 包、并指定 web profile(0.2.4 起声明了 dsh.bundle,一键安装会自动激活层,无需再手改 cordis.patch.yml):
dsh plugin --profile web add dsh-import-agents
指定版本、从 GitHub 短格式安装,或卸载,也可以按 README 写:
dsh plugin --profile web add dsh-import-agents@0.2.6
dsh plugin --profile web add github:Chang-Tong/dsh-import-agents
dsh plugin --profile web remove dsh-import-agents
从 Git 安装带源码的插件时,安装过程会跑 prepare 构建。README 说明 pnpm ≥ 10 默认阻止脚本:第一次 add 可能失败并给出 allowBuilds 提示,把提示的 key 写进该 profile 的 pnpm-workspace.yaml 后再跑一次。安装已经构建好的 tarball 或本地 checkout 不需要这一步。
安装后按仓库步骤验证:
- 重启
dsh web——主机插件在启动时注册斜杠命令,前端同步按钮由 dsh web 加载。 - 刷新页面——重启后旧页面的 RPC 连接已断开,不刷新则按钮和命令会失败。
- 确认输入框工具行出现 同步 / Sync 按钮,输入
/import-all有响应。
目录页和仓库都提醒:插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源代码仓库和许可证。
典型用法¶
1. 一键导入四种来源和 agents¶
重启并刷新页面后,点 composer 工具行的 同步 按钮,或直接输入:
/import-all
导入的会话出现在会话列表(按工作区分组);导入的 agent 出现为 skills。一切幂等,想跑多少次都行。若显示「新导入 0,已存在跳过 N」,说明这些会话已经导过,不会重复写入。
只导某一个来源,或只导 agents:
/import-pi
/import-opencode
/import-codex
/import-claude-code
/import-agents
常用选项(README):--limit N、--project 子串、--since(ISO 或毫秒)、--no-tools、--tools-as-text、--tool-truncate N。
旧导入没有挂上工作区时:
/attach-workspaces
2. 覆盖默认路径和迁移询问¶
默认路径和开关可以在插件插入行上覆盖。cordis.patch.yml 里插件 id 为 import-pi-opencode,包名为 dsh-import-agents。仓库列出的配置键如下:
| 键 | 默认值 | 含义 |
|---|---|---|
offerOnStart |
true |
新顶层会话启动时是否询问迁移 |
piRoot |
~/.pi/agent/sessions |
pi 会话根目录 |
piAgentRoot |
~/.pi/agent |
pi agents / 提示词根目录 |
opencodeDb |
~/.local/share/opencode/opencode.db |
opencode SQLite 路径 |
opencodeConfig |
~/.config/opencode |
opencode agents 根目录 |
codexRoot |
~/.codex/sessions |
codex 会话根目录 |
claudeRoot |
~/.claude/projects |
claude-code 项目根目录 |
skillsRoot |
$DSH_AGENTS_HOME/skills |
skills 输出根目录 |
toolTruncate |
1000 |
工具调用参数截断长度(字符) |
关掉启动询问的写法是 config: { offerOnStart: false }。
3. 仓库源码里的 CLI(不经过 dsh)¶
README 提供不启动 dsh 的命令行入口,默认 dry-run,加 --apply 才写入。需要在仓库 checkout 里执行 node import.mjs(该文件在 GitHub 源码根目录;package.json 的 npm files 列表未包含它,不能默认当成装完 npm 包就能用):
node import.mjs all
node import.mjs all --apply
node import.mjs sessions codex --apply --limit 20
node import.mjs agents --apply
node export.mjs
all 与 GUI 里的 /import-all 语义一致:四个来源加 agents(CHANGELOG 0.2.5)。export.mjs 把会话写成 Markdown,默认输出到 $DSH_HOME/exports/<来源>/<会话id>.md,支持 --source、--project、--limit、--since、--out、--no-reasoning、--no-tools。
适用场景与注意事项¶
比较适合这几类用法:
- 已经在 pi、OpenCode、Codex 或 Claude Code 里积累了项目会话,希望迁到 DeepSeek Harness,还想保留推理块和工具调用轨迹。
- 需要把 pi / OpenCode 的自定义 agent、模式提示词变成 dsh skills,并留下
metadata.source/metadata.kind溯源。 - 希望用 Web UI 的同步按钮或
/import-all做幂等同步,而不是手工拷 JSONL。
使用前要注意:
- 权限与许可证。插件以当前 dsh 进程权限运行,安装时可能执行代码。安装前阅读 仓库源码 和 MIT 许可证。
- 运行时版本。需要 Node.js ≥ 22.19。同步按钮和客户端 bundle 面向 web profile;headless 环境会跳过迁移询问。
- 重启后必须刷新。重启
dsh web后旧页面的 RPC 已断开,未刷新时点同步或跑斜杠命令都会失败。 - 工具结果可能是占位。源格式往往不存工具结果。导入保留调用并写占位
tool/result,轨迹能出卡片,但结果内容并不等于原工具真实输出。 - OpenCode 缺库不会崩。CHANGELOG 0.2.1:opencode 读取器在数据库不存在时按「无会话」处理,而不是崩溃。
- 不要和目录页命令混用猜测。目录页安装入口是
dsh plugin add github:Chang-Tong/dsh-import-agents;README 推荐的 npm 写法带--profile web。两者都能装,按你用的 profile 选择,不要自行拼接未经页面写出的命令。
小结¶
dsh-import-agents 把 pi、OpenCode、Codex、Claude Code 的会话变成 DeepSeek Harness 里可 resume 的会话,并把对应 agent / 提示词落成 skills。同步按钮、斜杠命令和新会话迁移提示覆盖了日常搬迁路径。它是社区 MIT 插件,不是 DeepSeek 官方组件;目录页只负责收录和给出安装命令。
安装入口以目录页为准:
dsh plugin add github:Chang-Tong/dsh-import-agents
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-import-agents/
GitHub:https://github.com/Chang-Tong/dsh-import-agents