🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

长期记忆迁移 tieveto666-code/dsh-memory-migration

DeepSeek Harness
tieveto666-code70 天前有提交已提供中文文档扫描:含敏感能力

用键值对保存偏好与约束,按提问召回并迁移导出包

28.5/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add tieveto666-code/dsh-memory-migration
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · chat
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 70 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 24 处,展示前 24 条)
  • 读取本地文件
    shared/tsdown.client.ts:106
    const hasClient = existsSync(resolvePath(process.cwd(), 'src/client/index.ts'))
  • 读取本地文件
    shared/tsdown.client.ts:284
    const source = await readFile(physical)
  • 读取本地文件
    shared/tsdown.client.ts:333
    if (existsSync(emitted)) return emitted
  • 读取本地文件
    src/archive/store.ts:110
    return parseRecords(JSON.parse(readFileSync(this.memoriesPath(), 'utf8')) as unknown)
  • 读取本地文件
    src/archive/store.ts:118
    const raw = JSON.parse(await readFile(this.memoriesPath(), 'utf8')) as unknown
  • 读取本地文件
    src/archive/store.ts:213
    const entries = await readdir(inbox, { withFileTypes: true })
  • 写入本地文件
    src/archive/store.ts:225
    await mkdir(inbox, { recursive: true })
  • 发起网络请求
    src/client/api.ts:38
    return expectStatus(await fetch(`${BASE}/status`))
  • 发起网络请求
    src/client/api.ts:42
    return expectStatus(await fetch(`${BASE}/command`, {
  • 发起网络请求
    src/client/api.ts:50
    return expectStatus(await fetch(`${BASE}/upload`, {
  • 读取本地文件
    src/fs-utils.ts:13
    await stat(path)
  • 写入本地文件
    src/fs-utils.ts:21
    await mkdir(path, { recursive: true })
  • 读取本地文件
    src/fs-utils.ts:25
    const text = await readFile(path, 'utf8')
  • 读取本地文件
    src/fs-utils.ts:30
    return JSON.parse(readFileSync(path, 'utf8')) as unknown
  • 写入本地文件
    src/fs-utils.ts:35
    await writeFile(path, `${JSON.stringify(value, null, 2)}\n`, 'utf8')
  • 读取本地文件
    src/fs-utils.ts:46
    entries = await readdir(current, { withFileTypes: true })
  • 读取本地文件
    src/fs-utils.ts:71
    const bytes = new Uint8Array(await readFile(zipPath))
  • 删除本地文件递归
    src/fs-utils.ts:76
    await rm(dest, { recursive: true, force: true })
  • 写入本地文件
    src/fs-utils.ts:84
    await writeFile(target, data)
  • 删除本地文件递归
    src/fs-utils.ts:87
    await rm(dest, { recursive: true, force: true })
  • 读取本地文件
    src/fs-utils.ts:95
    const info = await stat(absolute)
  • 删除本地文件递归
    src/fs-utils.ts:98
    return { root, cleanup: async () => { await rm(root, { recursive: true, force: true }) } }
  • 读取本地文件
    src/runtime.ts:91
    const raw = JSON.parse(readFileSync(flagsPath(), 'utf8')) as unknown
  • 写入本地文件
    src/runtime.ts:159
    await pipeline(body, createWriteStream(dest))
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-session@deepseek-ai/dsh-settings@deepseek-ai/dsh-system-prompt
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 键值对保存偏好约束
  • 按提问召回记忆
  • 导出包提取核心记忆
展开完整介绍(147 字)↓

为原版 DeepSeek Harness 提供长期记忆:用键值对保存身份、偏好、方法论和约束,并在后续对话中按提问召回。可手动增删改查;也可选「记忆迁移」,从 ChatGPT / Claude / Gemini / DeepSeek 官方导出包提取少量核心记忆。独立插件,不修改 DSH 源码。

README

由 DeepSeek 最新模型翻译生成
DSH 长期记忆 一个 DeepSeek Harness 插件,为原版 DSH 提供长期记忆:一个关于你是谁以及你如何工作的键/值存储,当问题匹配时会在后续聊天中被召回。 你可以手动添加记忆。记忆迁移是另一条路径:导入官方的 ChatGPT、Claude、Gemini 或 DeepSeek 导出文件,并提取一小部分可复用的核心配对。 它是一个树外 Cordis 插件。它不会 fork 或修改 DSH 源码,也不会把旧聊天变成侧边栏会话。 npm / 插件 id 仍为 @tieveto666-code/dsh-memory-migration(dsh plugin add 需要它)。设置中的产品名称为长期记忆。 为什么存在 DSH 每次对话都从空白开始。偏好、方法、约束和已确定的决定必须重新解释,否则它们就闲置在另一个产品的导出文件中。 这个插件在机器上保留一份紧凑的常驻记忆,然后只注入与当前问题匹配的条目——而不是整个历史记录。
展开完整文档(README 剩余 1 节)
DSH 长期记忆

一个 DeepSeek Harness 插件,为原版 DSH 提供长期记忆:一个关于你是谁以及你如何工作的键/值存储,当问题匹配时会在后续聊天中被召回。

你可以手动添加记忆。记忆迁移是另一条路径:导入官方的 ChatGPT、Claude、Gemini 或 DeepSeek 导出文件,并提取一小部分可复用的核心配对。

它是一个树外 Cordis 插件。它不会 fork 或修改 DSH 源码,也不会把旧聊天变成侧边栏会话。

npm / 插件 id 仍为 @tieveto666-code/dsh-memory-migration(dsh plugin add 需要它)。设置中的产品名称为长期记忆。

为什么存在

DSH 每次对话都从空白开始。偏好、方法、约束和已确定的决定必须重新解释,否则它们就闲置在另一个产品的导出文件中。

这个插件在机器上保留一份紧凑的常驻记忆,然后只注入与当前问题匹配的条目——而不是整个历史记录。

典型用途:

- 在新的 DSH 聊天中保留身份、硬性偏好和沟通风格
- 为某类工作(评审、SQL、写作)复用常驻方法和约束
- 避免重新争论你已经确认的决定,并附带理由

预览

设置 → 长期记忆(键/值列表、召回开关和记忆迁移):

长期记忆设置

功能

管理长期记忆

设置 → 长期记忆:

- 键/值表格:添加、行内编辑、按名称搜索、分页、批量删除
- 全局开关,用于启用或禁用后续聊天中的召回
- 每一行都标记为手动或迁移

数据位于 $DSH_HOME/memory-migration/ 下(通常为 ~/.dsh/memory-migration/)。

在后续聊天中召回

每一轮中,只有键会与当前用户消息进行评分(值从不参与):

1. 问题包含一个完整的键(长度 ≥ 2)→ 始终召回该键下的所有值
2. 否则对 CJK 单字/双字和拉丁词使用 BM25,并带有一个停用词表
3. 非包含命中需要至少一个内容词重叠,且得分 ≥ max(0.55, best × 0.4)
4. 上限:8 个键,16 个条目

命中项会作为系统上下文注入。无关问题不会注入任何内容。

记忆迁移(可选)

记忆迁移按钮会导入 ZIP 或 JSON 导出文件。它不会倾倒整个对话记录。使用 DSH 的 DeepSeek 模型时,它会扫描近期有实质内容的对话,然后最多保留 10 个符合以下之一的核配对:

1. 身份和硬性偏好——你是谁、你想要什么、风格
2. 某类任务的方法——你如何做那类工作
3. 反复出现的约束——常驻限制和禁止事项
4. 已确认的结论和理由——已确定的决定,这样你就不会重试一次性任务、预约、机密信息、助手观点以及单张工单的结论会被丢弃。近似重复项会被合并。重新导入时会跳过与你已有记忆(包括手动添加的记忆)相似的配对。

如果 DeepSeek 不可用,导入只会从导出文件已包含的文件(memory.json / memories.json)中提取已启用的事实。Gemini Takeout 和 DeepSeek 的官方打包通常不包含这些文件。

将 ZIP 文件放入 $DSH_HOME/memory-migration/inbox/ 也会触发此导入。

工作原理

手动添加 / 编辑 ─┐ ├→ 键/值存储($DSH_HOME/memory-migration/)导出 ZIP/JSON ───┘ 迁移时最多提取 10 个核心配对 → 在后续聊天中,将用户消息与键进行匹配 → 将命中项注入系统提示词

设置界面与插件自有的回环 HTTP API 通信(/memory-migration/api,通过官方 ctx.webServer.register)。原版 DSH 无需更改设置命名空间允许列表。

迁移提取使用 ctx.llm(DeepSeek chat),并且不会创建侧边栏 Session。

安装到原版 DSH

需要可用的 DSH Web 配置文件(Node 版本范围与 DSH 相同:22.19+ 或 24+)。

dsh plugin --profile web add github:tieveto666-code/dsh-memory-migration
dsh --profile web

然后打开 设置 → 长期记忆。

pnpm 10+ 可能会拒绝执行 git prepare 脚本,直到你允许它。将 CLI 错误中的包名复制到配置文件的 pnpm-workspace.yaml 中:

allowBuilds:
'@tieveto666-code/dsh-memory-migration': true

然后再次运行 dsh plugin add。

从本地检出安装:

dsh plugin --profile web add link:$(pwd)
dsh --profile web --dump-config # 查找 memory-migration 层

官方导出包

仅由 Memory migration 使用。如果你只手动添加记忆,可以跳过本节。

| 来源 | 导入内容 | 对话 | zip 中保存的记忆 |
| ChatGPT | 设置 → 数据控制 → 导出数据(通过电子邮件发送的 ZIP) | conversations.json(仅当前 mapping / current_node 分支) | 存在时导入 memory.json |
| Claude | 设置 → 隐私 → 导出数据 | conversations.json(chat_messages) | 存在时导入 memories.json / memory.json |
| Gemini | Takeout → 我的活动 → Gemini Apps,活动记录为 JSON(非 HTML) | MyActivity.json,按聊天 URL 分组 | 通常不存在(Saved Info 不在 Takeout 中) |
| DeepSeek | 设置 → 数据管理 → 导出聊天记录 | 聊天 JSON(接受若干未公开的格式) | 官方打包中没有 |

无法识别的转储会明确报错,而不是静默导入。账户电子邮件保留在本地元数据中,不会被注入。

Gemini HTML Takeout 会被拒绝;请以 JSON 活动记录重新导出。Takeout 顶层的 “Gemini” 产品是 Gems,而非聊天记录。

隐私解析、解压、提取并存储在 DSH 主机上。没有遥测,也不会将导出内容上传到第三方服务。迁移提取调用的是已在你的 DSH 中配置好的 DeepSeek 模型,与普通聊天相同。

卸载:

dsh plugin --profile web remove @tieveto666-code/dsh-memory-migration

这只会移除插件层。请自行删除 $DSH_HOME/memory-migration/ 以清除已存储的记忆。

开发

pnpm install
pnpm test
pnpm build

许可证

MIT
预览分享卡片长什么样 ↓tieveto666-code/dsh-memory-migration
分享 · DeepSeek Harness Hub
tieveto666-code/dsh-memory-migration

用键值对保存偏好与约束,按提问召回并迁移导出包

这是你的仓库?认领条目

回到顶部