自动抽取对话记忆,跨会话检索并沉淀规则
30.2/100
综合分
2
GitHub 星标
53
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @wwskills/dsh-long-memorynpm 源 · @wwskills/dsh-long-memory 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 54 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@wwskills/dsh-long-memory @ 0.2.0
✓Node 引擎要求 >=22.5.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/7 10:39:55
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 31 处,展示前 27 条)
- 读取本地文件lib/index.js:1200
const raw = readFileSync(path, 'utf8'); - 读取本地文件lib/index.js:1218
existing = JSON.parse(readFileSync(path, 'utf8')); - 写入本地文件lib/index.js:1236
writeFileSync(path, JSON.stringify(existing, null, 2) + '\n', 'utf8'); - 发起网络请求lib/client.js:186
fetch('/plugins/dsh-long-memory/api/memories?limit=1').then(function(r) { return r.json(); }).catch(function() { return { total: 0 }; }), - 发起网络请求lib/client.js:187
fetch('/plugins/dsh-long-memory/api/confirm-queue').then(function(r) { return r.json(); }).catch(function() { return { items: [] }; }), - 发起网络请求lib/client.js:188
fetch('/plugins/dsh-long-memory/api/embedding-config').then(function(r) { return r.json(); }).catch(function() { return {}; }) - 发起网络请求lib/client.js:200
fetch('/plugins/dsh-long-memory/api/confirm-queue', { - 发起网络请求lib/client.js:205
return fetch('/plugins/dsh-long-memory/api/confirm-queue').then(function(r) { return r.json(); }); - 发起网络请求lib/client.js:246
fetch('/plugins/dsh-long-memory/api/embedding-config', { - 发起网络请求lib/embeddings.js:113
const r = await fetch(url, { - 写入本地文件lib/file-tracks.js:66
mkdirSync(markdownDir, { recursive: true }); - 读取本地文件lib/file-tracks.js:72
if (existsSync(path)) { - 读取本地文件lib/file-tracks.js:73
current = readFileSync(path, 'utf8'); - 写入本地文件lib/file-tracks.js:78
writeFileSync(path, current + block + marker + '\n', 'utf8'); - 写入本地文件lib/file-tracks.js:86
mkdirSync(dir, { recursive: true }); - 读取本地文件lib/file-tracks.js:94
if (existsSync(file)) current = readFileSync(file, 'utf8'); - 读取本地文件lib/file-tracks.js:94
if (existsSync(file)) current = readFileSync(file, 'utf8'); - 写入本地文件lib/file-tracks.js:95
writeFileSync(file, current + line, 'utf8'); - 读取本地文件lib/file-tracks.js:113
if (!existsSync(dir)) return { ingested: 0, scanned: 0 }; - 读取本地文件lib/file-tracks.js:117
for (const name of readdirSync(dir)) { - 读取本地文件lib/l7.js:343
settings = _parseYAML(readFileSync(join(dshHome, 'settings.yaml'), 'utf8')); - 读取本地文件lib/l7.js:387
const credContent = readFileSync(join(dshHome, '.credentials.yaml'), 'utf8'); - 发起网络请求lib/l7.js:412
const resp = await fetch(`${baseURL}/chat/completions`, { - 执行外部命令固定命令lib/scopes.js:24
const output = execSync('git rev-parse --abbrev-ref HEAD', { - 写入本地文件lib/sqlite.js:153
mkdirSync(dirname(dbPath), { recursive: true }); - 读取本地文件lib/sqlite.js:168
const sql = readFileSync(join(migrationsDir, file.name), 'utf8'); - 读取本地文件lib/sqlite.js:222
names = readdirSync(dir).filter((f) => f.endsWith('.sql'));
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/dsh-invariants@deepseek-ai/dsh-session@deepseek-ai/dsh-base给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 自动抽取对话记忆
- 跨会话检索
- 沉淀规则
DeepSeek Harness 的跨会话长期记忆插件
README
由 DeepSeek 最新模型翻译生成@wwskills/dsh-long-memory
DeepSeek Harness 的跨会话长期记忆插件。
SQLite 存储、FTS5 + 可选向量召回、append-only 审计日志、L7 自动记忆抽取、自进化学习(教训→规则闭环)。单包双面打包(Node 服务 + 浏览器 UI)。
功能
- 8 个 mem_ 工具 — 搜索、记录、状态、统计、删除、确认、scope 列表、scope 设置
- FTS5 全文搜索,支持中文(开箱即用,零配置)
- 可选 Embedding — Ollama(本地,零成本)或任意 OpenAI 兼容 API
- 混合召回 — 启用 embedding 后自动融合 BM25 + 向量 + RRF,信任加权排序
- L7 自动抽取 — 在 turn/end 时自动从对话中提取记忆,复用 DSH 的 LLM 配置,无需额外设置
- 关键词降级 — LLM 不可用时自动切换到正则关键词提取
- 自进化学习 — 信号词检测 → 教训捕获 → 规则提炼 → 规则注入 agent 上下文(来自 dsh-agent-evolve 合并)
- 确认队列 — 低置信度 L7 抽取进入确认队列,用户可审批或拒绝
- 记忆画像 — 从 USER 类型记忆自动构建用户画像(技术栈/编码风格/沟通偏好/常见任务)
展开完整文档(README 剩余 1 节)
@wwskills/dsh-long-memory
DeepSeek Harness 的跨会话长期记忆插件。
SQLite 存储、FTS5 + 可选向量召回、append-only 审计日志、L7 自动记忆抽取、自进化学习(教训→规则闭环)。单包双面打包(Node 服务 + 浏览器 UI)。
功能
- 8 个 mem_ 工具 — 搜索、记录、状态、统计、删除、确认、scope 列表、scope 设置
- FTS5 全文搜索,支持中文(开箱即用,零配置)
- 可选 Embedding — Ollama(本地,零成本)或任意 OpenAI 兼容 API
- 混合召回 — 启用 embedding 后自动融合 BM25 + 向量 + RRF,信任加权排序
- L7 自动抽取 — 在 turn/end 时自动从对话中提取记忆,复用 DSH 的 LLM 配置,无需额外设置
- 关键词降级 — LLM 不可用时自动切换到正则关键词提取
- 自进化学习 — 信号词检测 → 教训捕获 → 规则提炼 → 规则注入 agent 上下文(来自 dsh-agent-evolve 合并)
- 确认队列 — 低置信度 L7 抽取进入确认队列,用户可审批或拒绝
- 记忆画像 — 从 USER 类型记忆自动构建用户画像(技术栈/编码风格/沟通偏好/常见任务)
- 文件轨 — MEMORY.md 会话标记 + memory/YYYY-MM-DD.md 每日笔记
- 审计日志 — append-only,记录所有记忆操作
- 浏览器 UI — 侧栏 + 主内容布局,4 个 Tab(教训/规则/记忆/画像)+ 召回测试面板 + 设置 Modal
安装
dsh plugin --profile web add @wwskills/dsh-long-memory
配置
默认值已可用,按需通过 profile patch 层覆盖。
Embedding
| Provider | 适用场景 | 成本 |
| none | 纯 FTS5 关键词(默认) | 零 |
| ollama | 本地 Ollama 服务 | 零(本地) |
| openai-compatible | 任意 OpenAI 风格 API | 按调用计费 |
- id: long-memory
config:
embedding:
provider: 'ollama' # 'none' | 'ollama' | 'openai-compatible'
model: 'bge-m3'
dimension: 1024
ollama:
base_url: 'http://127.0.0.1:11434'
L7 自动抽取
L7 自动读取 DSH 的 LLM 配置,无需额外填写 API Key。
- id: long-memory
config:
l7:
enabled: true # 启用自动记忆抽取 auto_extract: true # LLM 抽取 + 关键词降级 extractor_model: '' # 空则用 DSH 配置中最便宜的模型 extractor_temp: 0.2 confirm_threshold: 0.6 # 低于此置信度的记忆进入确认队列 interval_ms: 21600000 # 两次抽取最小间隔 6h
自进化学习
信号词检测 + 规则提炼,自动从对话中学习。
- id: long-memory
config:
corrections:
signal_words: # 触发纠正捕获的信号词
- '不对'
- '错了'
- '应该是' promote_threshold: 5 # 规则提炼阈值(条) rule_token_budget: 800 # 规则注入上下文 token 上限
存储
storage:
path: '${DSH_HOME}/long-memory/long-memory.db'
markdown_dir: '${DSH_HOME}/long-memory/markdown'
工具列表
| 工具 | 作用 |
| mem_search | FTS5 + 混合搜索记忆 |
| mem_record | 显式记录记忆;自动识别 scope |
| mem_status | 存储与召回状态 |
| mem_stats | 聚合统计 |
| mem_forget | 归档或删除;写审计日志 |
| mem_confirm | 审批/拒绝敏感记忆队列 |
| mem_scope_list | 列出所有 scope |
| mem_scope_set_active | 设置活跃 scope 过滤器 |
WebUI
| 区域 | 功能 |
| 侧栏 | scope 筛选(全部/user/project/domain/episodic)、搜索、统计 |
| 教训 Tab | 纠正记录列表,支持提炼为规则或忽略 |
| 规则 Tab | 规则生命周期管理(审批/拒绝/编辑/晋升到 AGENTS.md) |
| 记忆 Tab | 记忆管理(搜索/筛选/归档/删除),PopoverMenu 操作菜单 |
| 画像 Tab | 自动构建的用户画像,支持手动编辑和重建 |
| 召回测试 | 输入关键词测试记忆召回效果 |
| 设置 Modal | 抽取设置 + 画像与 Embedding + 信号词配置 |
环境要求
- Node ≥ 22.5(使用内置 node:sqlite)
- DeepSeek Harness 0.1.0-rc.2+
开发
宿主侧源码位于 src/(严格 TypeScript);浏览器 bundle 目前为 src/client.js(预包装产物,后续改为 TSX 源码)。lib/ 仅为构建产物。
pnpm install
pnpm run typecheck # tsc --noEmit
pnpm test # vitest + 遗留 node 脚本(迁移、工具 e2e)
pnpm run build # esbuild 宿主/invariant bundle + 逐模块转换 + 客户端拷贝 + tsc 声明
pnpm run check # 以上全部
构建会把 src/.ts 逐模块同步到 lib/*.js 的扁平布局(scripts/ 测试脚本直接引用这些模块路径)。DSH / cordis 宿主包保持 external——运行时由 DSH profile 的 node_modules 提供。
许可证
MIT — 见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
wwskills/dsh-long-memory
自动抽取对话记忆,跨会话检索并沉淀规则
相关插件 · 对话 / 记忆
上下文中枢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
这是你的仓库?认领条目