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

澜·记忆人格 kiefeng/dsh-lan-memory

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

dsh-lan-memory v2 — 为 DeepSeek Harness 打造的本地优先记忆与人格

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成

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

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 41 处,展示前 20 条)
  • 发起网络请求
    lib/client.js:26
    return window.fetch(BASE + '/api/state', { headers: { accept: 'application/json' } })
  • 发起网络请求
    lib/client.js:30
    return window.fetch(BASE + path, {
  • 发起网络请求
    lib/client.js:37
    return window.fetch(BASE + path, {
  • 发起网络请求
    lib/client.js:142
    window.fetch(url, { headers: { accept: 'application/json' } })
  • 发起网络请求
    lib/client.js:378
    window.fetch(BASE + '/api/backups', { headers: { accept: 'application/json' } })
  • 读取本地文件
    lib/store.js:41
    return readFileSync(file, 'utf8')
  • 写入本地文件
    lib/store.js:186
    mkdirSync(this.dataDir, { recursive: true })
  • 写入本地文件
    lib/store.js:187
    mkdirSync(this.journalDir, { recursive: true })
  • 写入本地文件
    lib/store.js:188
    mkdirSync(this.backupDir, { recursive: true })
  • 写入本地文件
    lib/store.js:189
    mkdirSync(this.undoDir, { recursive: true })
  • 写入本地文件
    lib/store.js:190
    mkdirSync(this.viewsDir, { recursive: true })
  • 写入本地文件
    lib/store.js:217
    try { writeFileSync(this.lockFile, JSON.stringify({ pid: process.pid, at: Date.now() }), 'utf8') } catch { }
  • 删除本地文件
    lib/store.js:225
    if (info && info.pid === process.pid) unlinkSync(this.lockFile)
  • 读取本地文件
    lib/store.js:304
    if (!existsSync(file + '.bak')) continue
  • 读取本地文件
    lib/store.js:306
    const cur = statSync(file)
  • 读取本地文件
    lib/store.js:322
    if (existsSync(file)) {
  • 读取本地文件
    lib/store.js:784
    try { names = readdirSync(this.journalDir).filter((n) => /^\d{4}-\d{2}-\d{2}\.jsonl$/.test(n)).sort() } catch { names = [] }
  • 读取本地文件
    lib/store.js:890
    const dirs = readdirSync(this.backupDir).filter((n) => !n.startsWith('.')).sort()
  • 删除本地文件
    lib/store.js:903
    else unlinkSync(p)
  • 删除本地文件
    lib/store.js:905
    rmdirSync(dir)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 三层记忆存储
  • 可编辑人格设定
  • 一键整理记忆

澜·记忆与人格系统 — DeepSeek Harness memory & persona plugin (三层记忆 + SOUL/MOOD + 一键整理)

README

由 DeepSeek 最新模型翻译生成
dsh-lan-memory v2 — 为 DeepSeek Harness 打造的本地优先记忆与人格 English · 中文 一个轻量、本地优先的记忆与人格插件,面向 DeepSeek Harness(DSH)。它给智能体提供持久、人类可读的文件记忆,SOUL/MOOD 人格层,零 LLM 的会话捕获,滚动摘要,自动编译的记忆配置档(使用你配置的 DSH 模型),BM25 召回,标签式设置页,以及一张主题化心情卡片。 不需要 Python 服务,不需要向量数据库,不需要 API key。所有内容都以 Markdown/JSON 存放在 $DSH_HOME/lan-memory 下,可以手动读取、编辑、备份和导出。 - 四个明确的层 — pinned.md(始终注入)、memory.jsonl(用户说过「记住」,始终注入)、facts.jsonl(编译出的原子事实,供配置档使用)、experience.jsonl(方法/经验,仅召回)。 - 滚动摘要 → 事实 → 配置档 — 先做每会话摘要,再抽取原子事实,然后把 重要事实 / 今天 / 本周 / 长期 写入 memory.md;可在设置页编辑。 - 每日边界 — 昨天的 today 滚入 week,然后 today 重置。 - 删除的事实保持删除 — 删除自动事实会写入一条规范化墓碑;后续编译跳过它。
展开完整文档(README 剩余 1 节)
dsh-lan-memory v2 — 为 DeepSeek Harness 打造的本地优先记忆与人格

English · 中文

一个轻量、本地优先的记忆与人格插件,面向 DeepSeek Harness(DSH)。它给智能体提供持久、人类可读的文件记忆,SOUL/MOOD 人格层,零 LLM 的会话捕获,滚动摘要,自动编译的记忆配置档(使用你配置的 DSH 模型),BM25 召回,标签式设置页,以及一张主题化心情卡片。

不需要 Python 服务,不需要向量数据库,不需要 API key。所有内容都以 Markdown/JSON 存放在 $DSH_HOME/lan-memory 下,可以手动读取、编辑、备份和导出。

- 四个明确的层 — pinned.md(始终注入)、memory.jsonl(用户说过「记住」,始终注入)、facts.jsonl(编译出的原子事实,供配置档使用)、experience.jsonl(方法/经验,仅召回)。
- 滚动摘要 → 事实 → 配置档 — 先做每会话摘要,再抽取原子事实,然后把 重要事实 / 今天 / 本周 / 长期 写入 memory.md;可在设置页编辑。
- 每日边界 — 昨天的 today 滚入 week,然后 today 重置。
- 删除的事实保持删除 — 删除自动事实会写入一条规范化墓碑;后续编译跳过它。手动重新添加会清除墓碑。
- 合并前先审阅 — 近似重复的事实会在设置页聚类;合并保留最长条目,其余写入墓碑,且可撤销。
- 经验候选 — 编译可提出 0–1 条可复用的经验/方法;在你接受之前,不会有任何内容进入 experience.jsonl。多个待定候选可由模型一键合并。
- SOUL / MOOD 人格 — 可编辑的人格契约,以及对话 UI 中一张主题化状态池卡片。
- 六个工具 — lan_remember、lan_recall、lan_list、lan_forget、lan_organize、lan_status。
- 统一管理入口 — DSH 设置 → 澜记忆,标签页:概览 / 记忆 / 经验 / 收件箱 / 人格 / 维护。没有单独的 Web 面板。
- 安全写入 — 原子写入、.bak 上一版本、带校验和的快照、单写者锁、撤销、JSON 导出。

回复后渲染的心情状态卡片

心情状态卡片:Vibe、Sparks、Reflections 和 Will,由本轮 <mood> 块在本地渲染。

原生 DSH 设置页

设置页:概览、六个标签页、运行时状态、自动化开关,以及全部记忆管理。

安装

需要 DSH Desktop 0.2.1-rc.2(或其他带 Web GUI 的 0.2.x)。

from a local checkout
dsh plugin --profile desktop add "C:\path\to\dsh-lan-memory"

or directly from GitHub
dsh plugin --profile desktop add github:kiefeng/dsh-lan-memory

安装时请完全退出 Desktop。重启后打开 设置 → 澜记忆。没有 /lan-memory/ 页面可打开。

面向智能体与插件目录

dsh.bundle 在 package.json 里用 cordis.patch.yml 声明,所以这个仓库可以通过 dsh plugin add 安装。Topics:dsh-plugin、deepseek-harness、memory、persona、local-first、markdown。

个人自用的本地记忆层:文件是唯一真源,零外部服务、零 API Key、零向量库。
四层记忆 + SOUL/MOOD 人格 + 零 LLM 捕获 + 标签式设置页。

v2 是对 2026-08 原型(v1.0.0)的重写。设计取舍见 docs/design.md;旧的独立面板契约已废弃,不随 v2.8 提供。

它是什么 / 不是什么

是:一个跑在 DSH 宿主进程里的轻量插件。记忆存在本机 Markdown / JSONL 文件里,你随时能打开看、能手改、能备份、能导出;人格(SOUL)与情绪状态池(MOOD)继续保留。

不是:不是通用记忆 OS。不做 Python 服务、MongoDB/Neo4j/Qdrant、embedding、 MCP 桥接。捕获不花模型调用;摘要与事实抽取用你在设置页指定的模型,可关闭。

分层规则

| 层 | 谁来写 | 注入 | 参与画像 | 用途 |
| 常驻 pinned.md | 只手动,用户明确要求 | 每轮 | 否 | 身份、硬约束、长期不变偏好 |
| 手动记忆 memory.jsonl | 用户说“记住” / 手动新增 | 每轮 lan:manual | 否 | 明确要求保留的事实、决定 |
| 自动事实 facts.jsonl | 自动编译为主;设置页可手动增改/删除 | 否(经画像间接注入) | 是 | 从摘要抽取的偏好、长期事实;也可人工修正 |
| 经验 experience.jsonl | 任务完成/踩坑/手动 | 否 | 否 | 可复用方法,lan_recall(layer=experience) |
| 画像 memory.md | 自动编译,可手改 | 每轮 lan:memory | — | 四段摘要,本身不是输入层 |

自动编译不会写常驻、手动记忆或经验;手动记忆也不会被复制成自动事实。自动事实可在设置页手动修正,但工具层只让编译写它。

特性

- 四层边界 + 自动画像:见上表;lan_recall 的 memory / fact / experience 分开检索。
- 摘要 → 事实 → 画像:滚动摘要 3–6 句(≤300 字),再从摘要抽原子事实;摘要失败退回原始 journal。
- 每日边界:跨天把旧 today 沉淀进 week,再清空 today;不额外调模型。
- 事实墓碑:删除的自动事实不会被下一次编译按相同文本写回;手动重新添加可解除。
- 事实合并预览:设置页「合并相似事实」只给候选;确认后保留最长一条、其余写墓碑,可撤销。
- 经验候选:编译可提出 0–1 条可复用方法;接受后才写入 experience.jsonl,忽略则保留为 dismissed,不再反复出现。多条候选可用「整理候选」交给模型合并去重。
- 六个工具:lan_remember / lan_recall / lan_list / lan_forget / lan_organize / lan_status。
- 零 LLM 捕获:session/event → 每轮一条 journal/YYYY-MM-DD.jsonl,只做机械去噪;捕获本身不调模型。
- 一个管理面:DSH 设置页「澜记忆」,标签为 概览 / 记忆 / 经验 / 收件箱 / 人格 / 维护;没有独立网页面板。
- 可编辑:画像、自动事实、手动记忆、常驻、经验都能直接改;写前自动备份。
- 状态池卡片:每条回复下方把本轮 <mood> 渲染成澜主题卡片(🐋 Vibe / 灵感 / 反思 / 意志),原文自动隐去。
- 写盘护栏:原子写 + 上一版 .bak + 整理/删除前快照(manifest.sha256)+ 单写者锁。
- 注入卫生:section() 放常量、context() 放读盘内容;全部 interpolate:false;字节预算按 UTF-8 实算。
- 兼容性:engines.dsh: ^0.2.1-rc.2;不 import 任何 DSH 包。

安装

要求:DSH Desktop 0.2.1-rc.2(或同 minor 的 0.2.x),且使用带 Web GUI 的组合(desktop / web)。
webServer 是必选服务;headless / tui 组合不会加载本插件。

1. 完全退出 DeepSeek Harness Desktop(托盘也要退)
2. 安装本地目录 & "<DSH安装目录>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "<插件目录>"
3. 重启 Desktop

装好后:设置 → 澜记忆。对话里让助手「记住 X」「查一下我之前说过的 Y」「整理记忆」即可。

数据

默认目录:$DSH_HOME/lan-memory/(本机通常是 C:\Users\<你>\.dsh\lan-memory),可用环境变量 DSH_LAN_DATA_DIR 覆盖。

lan-memory/
├── persona.md # 人格真源(SOUL + MOOD 契约) ├── pinned.md # 常驻记忆 ├── memory.jsonl # 手动记忆 ├── experience.jsonl # 经验库 ├── facts.jsonl # 自动抽取的原子事实 ├── fact-tombstones.json # 已删除事实的规范化文本墓碑 ├── experience-candidates.json # 编译产出的经验候选(待接受/已忽略) ├── summaries.json # 每会话滚动摘要 ├── memory.md # 四段编译画像(可手改) ├── facts.md / today.md / week.md / longterm.md ├── mood.jsonl # 最近 200 条状态池 ├── journal/YYYY-MM-DD.jsonl# 每轮对话的零 LLM 捕获 ├── journal-status.jsonl # 已编译/已忽略的收件箱记录 ├── backups/<ts>_<reason>/ # 整份快照 + manifest.sha256 ├── undo/<ts>/ # 最近 10 次整理/删除前的内容 ├── meta.json # schemaVersion / settings / 最近整理 └── .lock # 单写者锁

迁移 v1:首次启动若发现 $DSH_HOME/hanako/ 且新目录为空,会复制不移动地导入 pinned.md / memory.jsonl / experience.jsonl / mood.jsonl / persona.json(转成 persona.md),并先做一份 pre-migrate-v1 快照。

注入与预算

| 内容 | 通道 | 预算 |
| SOUL | systemPrompt.section lan:persona | 12 KB 安全上限 |
| MOOD 契约 | systemPrompt.section lan:mood-contract | 12 KB 安全上限 |
| 记忆规则 | systemPrompt.section lan:rules | 固定短文本 |
| 常驻记忆 | systemPrompt.context lan:pinned | 4 KB(可配置) |
| 手动记忆 | systemPrompt.context lan:manual | 2 KB(可配置) |
| 编译画像 | systemPrompt.context lan:memory | 8 KB(可配置) |
| 索引摘要 | systemPrompt.context lan:index | 520 B |
| 上一轮状态池 | systemPrompt.context lan:mood-last | 1 KB |

收件箱正文不进注入,只给一个计数——这是防止「记忆越攒越贵」的关键。

捕获与整理

- 捕获:只收用户亲笔消息与模型可见文本;插件注入的上下文、团队消息、子代理消息不收。
每轮一条,精确 hash 去重,每日上限 300。
- 自动编译:待编译达到 autoCompileThreshold(默认 6)条或空闲时,调用设置页指定的模型:
1. 每会话滚动摘要:上一份摘要 + 新对话 → 3–6 句;
2. 从摘要抽取原子事实(一条一事、2–5 个标签);
3. 用「当前画像 + 新增事实 + 最近摘要」重写四段画像,拼成 memory.md;
4. 同一轮顺带提出 0–1 条经验候选,进入设置页「经验」待确认;
5. 多条候选可用「整理候选」让模型合并去重,只改候选,不自动写经验库;
6. 成功后才把 journal 标记为 compiled;失败保留待编译。
- 每日边界:跨天把旧 today 移进 week,再清空 today。
- 事实墓碑:删除自动事实会写 fact-tombstones.json;编译跳过同文本。
- 事实合并:设置页只做近似重复预览;确认后保留最长一条并给其余写墓碑,可撤销。
- 经验候选:编译产出的候选不自动写库;接受才进入经验库,忽略会标记 dismissed。
- 手动记忆:用户说「记住」只写 memory.jsonl,不复制成 facts;通过 lan:manual 每轮注入。
- 本地整理仍保留:lan_organize apply-local 对 memory.jsonl 做确定性去重合并,可撤销。

安全边界

- API 只接受 loopback(127.0.0.1/::1)来源;
- 写请求必须带 x-lan-ui: 1 + Content-Type: application/json;
- 若带 Origin,必须与请求 Host 同源;
- 记忆内容是「不可信历史数据」:注入时不当指令执行;不记录密钥/口令/证件号。

自动编译会把 journal / 摘要发送给你在设置页指定的模型服务商;捕获本身只写本机。
不想外发就关闭自动编译,或留空模型并只手动编辑。

配置

| 环境变量 | 默认 | 说明 |
| DSH_LAN_DATA_DIR | $DSH_HOME/lan-memory | 数据目录 |
| DSH_LAN_DEBUG | 未设 | 设为 1 时打印更多日志 |

meta.json.settings(设置页可改):captureEnabled、autoCompile、autoCompileThreshold、 compileIdleMinutes、memoryProvider、memoryModel、maxFacts、maxMemoryBytes、maxManualBytes、 maxPinnedBytes、maxRecallBytes、maxIndexBytes、maxMoodBytes、maxEntryChars、 maxPinnedEntryChars、journalPendingDays、journalPendingMax、maxMemory、maxExperience、 journalRetentionDays、journalMaxPerDay。

排查

- GET /lan-memory/api/health:工具/section/context 数量、捕获事件数、迁移结果、最近错误。
- 设置页看不到:确认 DSH 版本满足 engines.dsh、Desktop 是否重启过。
- 旧面板书签已失效:/lan-memory/ 返回 404,管理统一走设置页。
- 数据目录被另一个进程占用时插件进入只读模式(.lock),关闭多开的 DSH 后重启即可。

开发

node scripts/dev-server.mjs # 假宿主,API 在 http://127.0.0.1:17800/lan-memory/api/state
node test/store.test.mjs # 单文件直跑
node test/search.test.mjs
node test/organize.test.mjs
node test/capture.test.mjs
node test/http.test.mjs
node test/apply.test.mjs
node test/compile.test.mjs

72 项测试,覆盖自动编译、摘要、每日边界、事实墓碑/合并、经验候选/收敛、四层检索、设置页 API 与 HTTP 安全。

许可证

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

dsh-lan-memory v2 — 为 DeepSeek Harness 打造的本地优先记忆与人格

这是你的仓库?认领条目

回到顶部