dsh-memory-plugin 使用指南
为 DSH 注入 OpenViking 长期记忆:每步前自动召回相关上下文,整段对话异步落盘,并提供 mcp__openviking__* 工具集与 viking:// URI 防护。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
OpenViking
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add @openviking/dsh-memory-plugin
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- 分层加载省 token。 每条内容写入时生成 L0(摘要)、L1(概览)、L2(详情)三层,任务需要多深就加载多深。→ 上下文分层
- 目录递归检索。 向量检索先定位得分最高的目录,再逐层向下探索,结果连同周边上下文一起返回。→ 检索机制
- 检索过程可观察。 每次查询都保留目录浏览轨迹。结果不对时,能看到它出自哪条路径。→ 检索机制
- 会话沉淀为记忆。 会话提交后,OpenViking 异步提取用户偏好和智能体经验,写入长期记忆。→ 会话管理
- L0(摘要):一句话总结,用来快速判断相关性。
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
安装后默认连接哪个 OpenViking 服务?
默认连接到本机的 OpenViking 服务(http://127.0.0.1:1933)。你可以用 OPENVIKING_URL 环境变量、~/.openviking/ovcli.conf 配置文件或在 cordis.patch.yml 里写 endpoint 来覆盖。
需要 DSH 哪个版本?
需要 DSH 0.1.0-rc.6 及以上的 0.1.x 系列。它把核心包锁在 >=0.1.0-rc.6 <0.2.0,0.2.x 上跑会因 peerDependencies 不匹配而装载失败。
离线时对话会不会丢?
不会。OpenViking 服务不可达或写失败时,消息会序列化进本地待写队列(~/.openviking/pending/,权限 0o600),下个会话启动自动 replay,最多重试 3 次或 7 天后清理。
viking:// 是什么?DSH 自带的 read 工具能直接打开吗?
viking:// 是 OpenViking 的虚拟数据库 URI,不是本地文件路径。插件在 tools/pre-execute 阶段会拦截 DSH 的 read/glob/grep/bash/edit/write/str_replace_editor 对 viking:// 的错误调用,让模型改走 mcp__openviking__* 这套工具。
卸载插件后记忆会被清掉吗?
不会。记忆保存在 OpenViking 服务端,卸载插件只会停止自动召回与采集,不会删除已落盘的数据;如需彻底删除,调 mcp__openviking__forget 并传准确的 viking:// URI。
需要安装 OpenViking 服务端吗?
是的。插件只是客户端桥,必须有一个可达的 OpenViking 服务端(默认 http://127.0.0.1:1933)才能完成召回与写入;服务端不可达时所有写操作回落到本地待写队列。
是否需要配置 API Key?
不强制。生产模式(trusted-mode)需要设置 OPENVIKING_API_KEY 或 OPENVIKING_BEARER_TOKEN,并配上 OPENVIKING_ACCOUNT/OPENVIKING_USER;本地默认配置下空 key 也能连到本地服务。
live-recall.test.mjs 在 CI 里会跑吗?
默认跳过。它是端到端用例,需要设 OPENVIKING_E2E=1 并提供真实服务凭证才会执行;CI 中直到接入服务端 secret 才会启用。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 0.1.0-rc.6+(锁定 <0.2.0)
- Node: ^22.19.0 || >=24
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则