用键值对保存偏好与约束,按提问召回并迁移导出包
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🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
tieveto666-code/dsh-memory-migration
用键值对保存偏好与约束,按提问召回并迁移导出包
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目