前言¶
DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在构建智能体时,LLM 会话是无状态的,这导致智能体无法利用历史经验或长期上下文。OpenViking 负责持久化存储,而 dsh-ov-memory 插件负责将记忆“注入”对话,或者将对话流“镜像”回 OpenViking,打通对话与记忆之间的壁垒。
是什么¶
dsh-ov-memory 是一个把 OpenViking 持久记忆接入 DeepSeek Harness(DSH)的插件。它由开发者 xiaono1 维护,遵循 MIT 许可证。该插件通过复用 DSH 已安装的 peer 包,实现了记忆的自动召回、会话镜像、阈值提交、离线重放以及 MCP 工具桥接等能力。
核心功能¶
- 自动召回:在每一步开始前,插件会检索当前输入在 OpenViking 中的相关内容并注入对话。去重与 token 预算控制由服务端完成。
- 会话镜像:将 user / assistant 消息实时写入 OpenViking 的
dsh-<会话id>会话流,供后台抽取为长期记忆。 - 阈值提交:当 pending_tokens 达到阈值时自动 commit(保留最近 N 条为活跃消息);在会话关闭时执行兜底提交。
- 离线出站队列:当 OpenViking 不可达时,写操作会落盘持久化,恢复连接后自动幂等重放。
- /memlearn 人工沉淀:通过斜杠命令直接把一条经验写入长期记忆。支持密钥脱敏、语义查重合并,离线时自动进 outbox。
- 自研 MCP 工具桥:提供 stdio 服务器 + streamable-HTTP 上游,将服务器工具以
mcp__openviking__*暴露。 - viking:// URI 守卫:拦截本地工具,将
viking://虚拟路径当成本地文件处理。 - 零运行时依赖:复用 DSH 已安装的
@deepseek-ai/*peer 包,无额外 npm 依赖。
安装与启用¶
在安装前,请确保环境满足以下要求:
* DeepSeek Harness 0.1.x(≥0.1.0-rc.6)release 线
* Node.js ^22.19.0 或 >=24
* 一个可访问的 OpenViking 服务器(本地或远程)
安装命令如下:
dsh plugin --profile <profile> add github:xiaono1/dsh-ov-memory
注意:若 profile 中已存在其它占用 mcp__openviking__* 命名空间的插件,两者不能共存,请先移除后再启用本插件。
典型用法¶
配置连接¶
默认连接 http://127.0.0.1:1933。凭据沿用 OpenViking 生态的统一解析顺序(环境变量、~/.openviking/ovcli.conf、~/.openviking/ov.conf)。如需显式覆盖,在 profile 的 cordis.patch.yml 中写入:
- insert:
- id: ov-memory
config:
- id: ov-memory-runtime
config:
endpoint: 'http://127.0.0.1:1933'
apiKey: 'your-user-key'
recall:
enabled: true
budgetTokens: 2000
scoreFloor: 0.35
capture:
toolResults: false
skipSubagentSessions: false
commit:
thresholdTokens: 20000
keepRecentCount: 10
learn:
minScore: 0.5
使用斜杠命令¶
在对话中使用 /memlearn 命令直接把一条经验写入长期记忆,无需开启模型回合,原文不进会话日志。
环境变量¶
可通过环境变量配置连接信息:
* OPENVIKING_URL / OPENVIKING_BASE_URL:服务器地址
* OPENVIKING_API_KEY / OPENVIKING_BEARER_TOKEN:鉴权凭据
* OPENVIKING_ACCOUNT / OPENVIKING_USER:租户/用户
* OPENVIKING_PEER_ID:固定 actor peer
* OPENVIKING_PENDING_DIR:outbox 目录(默认 ~/.openviking/pending)
适用场景与注意¶
本插件适合需要长期记忆、上下文复用以及离线容错的智能体开发场景。由于插件以当前 DSH 进程权限运行,建议在安装前检查源码与许可证。
结尾¶
dsh-ov-memory 通过标准化的接口将 OpenViking 的记忆能力引入 DSH 生态,帮助开发者构建具备持久化记忆的智能体。更多细节与文档可参考 目录页 或 GitHub 仓库。