Hindsight 长期记忆 jackyytche/dsh-hindsight-memory
DeepSeek 客户端自动召回并留存对话记忆,无需模型主动调用工具
28.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/31 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/jackyytche/dsh-hindsight-memory.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 34 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查要求 Node:^22.19.0 || >=24.0.0(dsh 本身要求 Node ≥ 22.19)本插件尚未跑静态安装检查,以上为仓库状态警告。
^22.19.0 || >=24.0.0(dsh 本身要求 Node ≥ 22.19)最后检查 2026/10/31 22:34:50
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求lib/index.js:313
const response = await fetch(
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 自动召回对话记忆
- 自动留存对话记忆
- 无需模型主动调用
为 DeepSeek Harness 提供 Hindsight 长期记忆
README
由 DeepSeek 最新模型翻译生成dsh-hindsight-memory
把 Hindsight 变成 DeepSeek Harness 的管线级长期记忆:不暴露任何智能体工具,模型调用前后自动完成记忆的注入与留存(即 Hermes Agent 的 pre_llm_call / post_llm_call 钩子模式)。
运行时要求:DeepSeek Harness 0.2.0-rc.1。 插件在 package.json 中把这些 @deepseek-ai/dsh-* 包声明为 peer,配置档的兼容性闸门会在不匹配的 dsh 上直接拒载,而不是运行期静默失灵。
工作原理
| 钩子 | DSH 事件 | 行为 |
| Auto-Recall | agent/pre-step(waterfall) | 每轮一次(对齐 Hermes 的 prologue 语义):仅在 turn 的第一个 LLM 调用(step 1)前,取最新用户消息(≤800 字符)作 query 调 Hindsight recall,把相关记忆作为一条 user 消息追加进步骤批次(source kind: "hindsight-memory"、form: "snapshot")。后续 step 不再召回——turn 级 WeakMap 认领(防重放),工具循环内复用 step 1 已持久化的那一块。
展开完整文档(README 剩余 1 节)
dsh-hindsight-memory
把 Hindsight 变成 DeepSeek Harness 的管线级长期记忆:不暴露任何智能体工具,模型调用前后自动完成记忆的注入与留存(即 Hermes Agent 的 pre_llm_call / post_llm_call 钩子模式)。
运行时要求:DeepSeek Harness 0.2.0-rc.1。 插件在 package.json 中把这些 @deepseek-ai/dsh-* 包声明为 peer,配置档的兼容性闸门会在不匹配的 dsh 上直接拒载,而不是运行期静默失灵。
工作原理
| 钩子 | DSH 事件 | 行为 |
| Auto-Recall | agent/pre-step(waterfall) | 每轮一次(对齐 Hermes 的 prologue 语义):仅在 turn 的第一个 LLM 调用(step 1)前,取最新用户消息(≤800 字符)作 query 调 Hindsight recall,把相关记忆作为一条 user 消息追加进步骤批次(source kind: "hindsight-memory"、form: "snapshot")。后续 step 不再召回——turn 级 WeakMap 认领(防重放),工具循环内复用 step 1 已持久化的那一块。琐碎输入跳过(对齐 Hermes is_trivial_prompt):“好的/嗯/ok/谢谢/继续”等寒暄确认及 / 斜杠命令不发起召回。 |
| Auto-Retain | session/event(observer) | 每次 append 都投递一次(0.2.0-rc.1 起事件带 (session, event) 参数):按 turn/start → user/message / assistant/message → turn/end 增量累积该轮 User/Assistant 文本,turn/end 时异步 retain 入库(fire-and-forget,绝不阻塞循环),aborted 轮次跳过。 |
- 标题生成、会话摘要等内务 LLM 调用不经过智能体循环,天然不受记忆注入污染。
- 留存是 append 驱动的:被播种(resume/restore)的历史事件不会重新发布,因此 不会重复留存旧轮次。
- 只有 source.kind === "user" 的消息被当作「人类输入」;harness 注入的上下文(时间上下文、技能目录、system-reminder)既不作为召回 query,也不进入留存正文。
- Hindsight 任何故障都被隔离:recall 失败 → 本步无注入;retain 失败 → 仅记日志,聊天永不中断。
- 子代理 / fork 会话默认同样参与(includeSubagents 可关)。
设置界面
插件带浏览器半:重启后设置侧边栏会出现独立分节 设置 → Hindsight 记忆插件 (顶级条目,注册于 settings.section slot,id 为本插件的 entry id hindsight-memory),可就地编辑并保存:
| 控件 | 字段 | 说明 |
| 启用开关 | enabled | 关闭后立即停止注入与留存 |
| API URL | apiUrl | Hindsight API 地址 |
| API KEY | apiKey | Bearer Token,留空不认证(schema 标记 role("secret"),不会回传给浏览器) |
| BANK ID | bankId | 记忆库名,多端指向同一 bank 即可共享记忆 |
| Recall Budget | recallBudget | low / mid / high 三档 |
每字段支持「重置」(清除用户层覆盖,回退到组合层配置值);保存失败时保留草稿可修正重试。
页面无条件注册:宿主未提供该命名空间(或插件未激活)时显示明确提示,而不是整页消失。
配置分层遵循 DSH 0.2.0-rc.1 语义:schema 默认值 ← 组合层 entry config(bundle patch / profile patch)← 用户层。本插件没有单独的设置文档,所谓「用户层」就是 profile 文档里那条 hindsight-memory entry 的 config;因为字段都声明了
volatile(),保存后下一轮即可生效,无需重启。
配置(全部可省略)
- insert:
- id: hindsight-memory
name: dsh-hindsight-memory
config:
apiUrl: http://127.0.0.1:28888 # Hindsight API
apiKey: "" # 可选 Bearer token bankId: dsh # 记忆 bank autoRecall: true autoRetain: true recallBudget: low # low / mid / high
recallTypes: [observation] # 只注入蒸馏后的观察层
maxQueryChars: 800
recallTimeoutMs: 8000 # 服务端冷启动首个 recall 可能偏慢 maxMemories: 8 maxBlockChars: 4000 retainContext: conversation between the DSH agent and the user
retainTags: [source:dsh]
includeSubagents: true
retainEveryNTurns: 1
verbose: false
bundle 自带的 cordis.patch.yml 已写入 apiUrl / bankId 默认值;在配置档的在 cordis.patch.yml 里再插一条同 id 的 insert,就能覆盖任意键。
安装
dsh plugin --profile web add dsh-hindsight-memory # 或本地路径
安装器会把包写进 profile 依赖与 dsh.profile.bundles,bundle patch 随之生效。
重启 dsh web 后,宿主日志应出现:
hindsight-memory: active (api=… bank=… enabled=true)
启动时不应再出现 warning: … plugins did not activate 或 Plugin dsh-hindsight-memory@… is incompatible with dsh …。
测试
node tests/plugin.test.mjs # 宿主半侧:25 项(config 引用、召回、留存、节流…)
node tests/client.test.mjs # 浏览器半侧:按 __ModuleLoader__ 契约加载并驱动 slot 注册
卸载 / 回滚
dsh plugin --profile web remove dsh-hindsight-memory
验证
1. 新会话里告诉智能体一个事实(如「我的服务器叫 atlas」),正常聊完一轮。
2. 打开 Hindsight UI(部署机的 29999 端口)→ bank dsh,应看到刚留存的 User: … / Assistant: … 记忆。
3. 再开一个全新会话,直接问「我的服务器叫什么」——回答应直接带上答案,全程没有调用任何工具。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jackyytche/dsh-hindsight-memory
自动召回并留存对话记忆,无需模型主动调用工具
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,487已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,894已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,379已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 5,084已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,778已汉化DSH
71.1