前言¶
在 DSH 里做多轮编码或排查,上下文窗口会满,换会话又容易丢「做到哪、结论是什么」。有人靠导出整段会话再粘贴到新会话续写,但导出里工具输出、链式思考占很大篇幅,真正有用的往往是最后停在哪儿、下一步做什么。官方也有面向 Hindsight 的 @vectorize-io/hindsight-coding-agents 插件,记忆走托管服务;若希望抽取、嵌入、检索和知识页都留在本机,只用自己已有的 LLM 密钥,可以看社区插件 dsh-hindsight-local(维护者 dyrcjqlgcj,分类:记忆)。
下面介绍它是什么、能做什么,以及如何安装与配置。
这是什么¶
dsh-hindsight-local 在本机运行 Hindsight 记忆服务,并以 DeepSeek Harness 插件形式接入。心智模型与官方 coding-agents 插件相近:每个仓库一个 bank、由 LLM 维护知识页、按会话注入上下文;区别是自托管,除模型调用外不依赖托管记忆服务。
数据与推理密钥留在本机;LLM 可使用 DeepSeek、OpenAI、Anthropic、Ollama 等已有配置。
核心功能¶
资料中明确的能力如下。
服务与 daemon¶
- 查找
uv已缓存的hindsight-api二进制,探测/health;未运行时以 detached 方式启动,默认最多轮询 240 秒直至就绪。 - 不随插件打包 Python 环境,也不在会话内执行
uvx(首次安装可能耗时数分钟)。
会话注入与回写¶
- 注入:每个会话一次,写入该仓库知识页索引及若干召回事实,总长度受
injectMaxChars限制。 - 回写:某轮对话进入 idle 后,将最近的用户/助手消息 retain 进 bank,并抽取为结构化事实。
十个工具¶
模型可用以下 hindsight_local_* 工具:搜索与阅读页面、召回事实、remember、reflect、查看状态/日志、启停服务等。完整名单:
hindsight_local_status、_start、_stop、_logs、_search、_read、_recall、_remember、_reflect、_pages。
Handoff 快照(替代整段导出粘贴)¶
DSH「交接文档」标签页对应的是整会话导出(含链式思考、工具参数与原始输出)。插件在会话结束(disposed)时写入 handoff snapshot:项目路径、会话 id、本会话每条用户请求(各 400 字符)、最终助手结论(800 字符),总长默认不超过 snapshotMaxChars(1500)。
- 同一会话的写入共享
document_id = dsh-session:<session id>;快照标签为dsh-session+dsh-session-handoff,逐轮片段为dsh-session+dsh-session-turn。 - 下一会话注入块会带「上次停在哪」:最多 3 条召回,每条 220 字符,不是全文。
- 可用
hindsight_local_recall("上次会话做到哪一步,下一步要做什么")查看。 - 关闭:
handoffSnapshot: false。
注入说明要求把快照当背景、使用前再核对,避免旧结论覆盖当前用户意图。
与官方插件的关系¶
默认 bank 名、profile 与官方插件对齐,两者可读到同一套记忆;若同时启用会重复注入上下文,应只保留其一。官方插件在 Windows 上会跳过依赖 which claude 的 daemon 探测;本插件不依赖该探测。
安装与启用¶
添加插件¶
安装命令来自项目 README(路径改为你本机 clone 或下载后的目录):
dsh plugin --profile desktop add /path/to/dsh-hindsight-local
添加后需重启 DSH,插件在进程启动时读取配置。
当前 package.json 标注版本 0.3.0,许可证 MIT;要求 dsh >= 0.1.0-rc.6、node >= 20。
一次性准备 Hindsight 服务¶
插件不负责创建 Python 环境。先在本机执行:
uvx --from hindsight-embed@latest hindsight-embed profile create coding-agent \
--port 9077 \
--env HINDSIGHT_API_LLM_PROVIDER=deepseek \
--env HINDSIGHT_API_LLM_MODEL=deepseek-chat \
--env HINDSIGHT_API_LLM_BASE_URL=https://api.deepseek.com
将密钥写入 ~/.hindsight/profiles/coding-agent.env:
HINDSIGHT_API_LLM_API_KEY=sk-...
HINDSIGHT_API_EMBEDDINGS_PROVIDER=local
HINDSIGHT_API_PORT=9077
插件配置¶
各字段有默认值,按需覆盖。优先级:插件 config → 进程环境变量 → profile env 文件 → 内置默认。
- id: hindsight-local
config:
apiUrl: http://127.0.0.1:9077
autoStart: true
profile: coding-agent
bankTemplate: 'coding-agent::{project}'
injectPages: true
recallLimit: 5
retainOnIdle: true
handoffSnapshot: true
snapshotMaxChars: 1500
dataDir: ''
offlineModels: true
dataDir 非空时,插件在拉起服务前会导出 UV_CACHE_DIR、HF_HOME、SENTENCE_TRANSFORMERS_HOME,便于把缓存放到其他盘;已有 ~/.pg0 仍需用仓库内 scripts/relocate.mjs 迁移(支持 --dry-run)。
典型用法¶
- 完成上述 profile 与插件配置,重启 DSH,打开目标仓库会话。
- 会话开始时自动注入知识页索引与召回事实;空闲时自动 retain 并抽取事实。
- 需要主动查记忆时,让模型调用
hindsight_local_search、hindsight_local_recall等工具。 - 跨会话续作:依赖默认 handoff 注入,或显式 recall 上次进度。
- 排查服务:
hindsight_local_status、hindsight_local_logs;必要时_start/_stop。
README 说明:不要用 hindsight-embed daemon start 作为就绪依据——其 180 秒超时在冷启动(约 450 MB 依赖与模型下载,实机约 3–5 分钟)下易误报失败;本插件直接启动 hindsight-api 并自行轮询 /health。
适用场景与注意¶
适合:希望长期记忆与嵌入完全本地化、已自备 LLM API、在同一仓库多会话协作且不想每次粘贴整段导出的 DSH 用户。
注意:
- 插件以当前 DSH 进程权限运行;安装前请自行查看 GitHub 源码 与 MIT 许可证,确认可接受的行为与依赖。
- Windows:插件会注入
PYTHONUTF8=1等以规避 GBK 控制台问题;首次从 Hugging Face 拉模型若遇证书错误,需按 README 导出 Windows 根证书到~/.hindsight/winroot.pem。 - DSH 生态是「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-hindsight-local 把 Hindsight 记忆栈放在本机:daemon 管理、十项本地工具、会话注入与 idle 回写,并用 handoff 快照衔接会话,减少整段导出粘贴的成本。详情与脚本见 GitHub README;在 DSH 中通过本地路径 dsh plugin add 启用即可。
- 目录页:https://www.skillhub.cn/plugins/dyrcjqlgcj/dsh-hindsight-local
- 仓库:https://github.com/dyrcjqlgcj/dsh-hindsight-local