dsh-openviking:为 DeepSeek Harness 接入 OpenViking 记忆与检索

前言

在 DeepSeek Harness(DSH)里跑智能体,上下文往往靠当前会话和手写提示词撑着。项目一多、回合一长,以前踩过的坑、整理过的流程、入库的文档很难在合适时机被捞回来。本地文件或 SQLite 方案能做关键词检索,但语义召回弱,记忆和资源也通常各管各的,换工具就要重导一遍。

下面介绍社区插件 dsh-openviking:把 OpenViking 接到 DSH,统一做语义检索、资源管理、自动召回和会话记忆。维护者为 Rxiain,仓库采用 MIT 许可证,当前 GitHub 约 9 stars。

这是什么

dsh-openviking 是面向 DeepSeek Harness 的 OpenViking 插件,在 DSH 侧提供一组记忆相关模型工具与斜杠命令,底层读写 OpenViking 的 viking:// 虚拟文件系统。

与「只在本机堆 Markdown」相比,OpenViking 用向量召回加 L0/L1 摘要分层加载内容,远程 URL 和本地文档可通过 memadd 入库;同一套库可被 DSH、Claude Code、Codex、MCP 客户端和 ov CLI 共享。插件还负责已索引仓库上下文注入、按回合自动召回,以及会话同步与自动提交。

运行环境要求 Node ^22.19.0>=24.0.0,插件类型为 TypeScript,当前版本 0.1.0

核心功能

记忆与检索工具

插件向模型暴露以下工具(名称与 README 一致):

工具 作用
memsearch 语义搜索,模式 auto / fast / deepdeep 使用会话上下文)
memfind 快速语义查找,不带会话上下文
memread 读取 viking:// URI,模式 abstract / overview / read / auto
membrowse 浏览 viking:// 文件系统,list / tree / stat
memgrep 精确或正则内容搜索,默认范围 viking://resources/
memglob 按 glob 模式枚举文件
memadd viking://resources/ 下添加远程 URL 或本地文本
memremove 删除资源,需字面量 confirm: true
memqueue 查看观察者队列状态(嵌入、摘要生成等后台任务)
memcommit 提交当前会话并提取持久记忆
memlearn 主动沉淀经验:写/合并记忆或铸 skill playbook,含脱敏、查重,并即时注入当前会话

自动召回与会话同步

每条用户消息可触发一次相关记忆召回(autoRecall),支持 user 与 agent 双空间;可配置注入条数、相关度阈值、单条字符上限和 token 预算。同一条消息内还可按工具步骤间隔刷新,只注入新记忆。

对审计、恢复、补偿、重放、验证、修复、诊断、迁移等步骤化问题,插件会在普通全局召回之外启用 procedure lane:从用户记忆树中筛选路径含 方法论playbookworkflowrunbookpatterncaseskill 等标记的分支,最多检索 16 个流程分支,每个分支限时 3 秒,失败不阻断当前模型步骤。

会话侧支持按用户回合数或时间间隔自动提交(autoCommit),把对话沉淀为持久记忆。

斜杠命令

命令 作用
/memlearn <lesson> 人工触发记忆沉淀,与 memlearn 工具同源;不开启模型回合,原始输入不进会话日志

安装与启用

使用前需有可访问的 OpenViking 服务;插件默认连接 http://localhost:1933

一键安装(仓库含预构建 lib/,无需本地构建):

sh install.sh [profile-name]          # 默认 profile: dsh-openviking

或手动安装:

dsh plugin --profile <name> add github:Rxiain/dsh-openviking
dsh --profile <name>

也可在 DSH 设置的插件配置里添加。社区目录页:SkillHub - dsh-openviking

连接 OpenViking 与账号

管理命令需要 root 密钥(本地服务通常在 ~/.openviking/root_api_key.txt):

ROOT=$(cat ~/.openviking/root_api_key.txt)
printf '{"url":"http://localhost:1933","api_key":"%s"}' "$ROOT" > /tmp/ov-root.conf
export OPENVIKING_CLI_CONFIG_FILE=/tmp/ov-root.conf

ov admin create-account dsh --admin dsh-admin
ov admin register-user dsh dsh --role user
ov admin regenerate-key dsh dsh

unset OPENVIKING_CLI_CONFIG_FILE && rm -f /tmp/ov-root.conf

将返回的密钥填入插件配置的 apiKeyaccountuser 填对应账号与用户。

覆盖配置

在 profile 的 cordis.patch.yml 中以 id: openviking 写入完整配置(patch 会整体替换 config)。常用项示例:

- id: openviking
  config:
    endpoint: 'http://localhost:1933'
    apiKey: !!js process.env.OPENVIKING_API_KEY ?? ''
    account: ''
    user: ''
    agentId: 'deepseek-harness'
    timeoutMs: 30000
    stateFile: '~/.dsh/openviking/state.json'
    repoContext:
      enabled: true
      cacheTtlMs: 60000
    autoRecall:
      enabled: true
      limit: 6
      scoreThreshold: 0.15
      maxContentChars: 500
      tokenBudget: 2000
      agentSpaces: true
      refreshSteps: 10
      startupMapEveryTurns: 5
    autoCommit:
      enabled: true
      turns: 3
      intervalMinutes: 10

apiKey 对应 X-API-Key 头;accountuseragentId 分别对应 OpenViking 的租户、用户与 agent 标识头。stateFile 只存消息 id,不存正文或密钥。

典型用法

语义检索记忆

模型在需要历史上下文时调用 memsearchmemfindmemsearchdeep 模式会结合当前会话上下文;只想快速查库、不带会话时用 memfind

浏览与读取资源

先用 membrowse 查看 viking:// 下的目录结构,再用 memread 按层级加载:abstract(一句话)、overview(要点)到 read(全文),减少 token 占用。

入库与清理

把文档或 URL 加到资源库:

memadd  # 在 viking://resources/ 下添加远程 URL 或本地文本文件

删除需显式确认:memremove 并设置 confirm: true

沉淀与会话提交

长对话结束后可调用 memcommit 提取持久记忆;中途也可用 /memlearn <lesson>memlearn 工具把经验写入库并去重。后台处理进度用 memqueue 查看。

开启 autoRecallautoCommit 后,多数场景下记忆会在用户发消息时自动注入、在若干回合后自动提交,无需每步手动调用。

适用场景与注意

适合谁: 已在跑 OpenViking(或计划部署)的 DSH 用户;需要跨会话、跨工具共享语义记忆和文档资源;希望把流程类经验(playbook、runbook 等)在相关任务时自动召回的团队。

与本地方案的取舍: README 中的对比表指出,本地 FTS 擅长精确匹配,OpenViking 擅长语义召回和分层加载;若只需本机小文本、无跨工具需求,维护成本可能更低。本插件的价值在于把 OpenViking 能力原样接到 DSH 工具链,并补上自动召回与会话同步。

安全与权限: 插件以当前 DSH 进程权限运行,可访问你配置的 OpenViking 端点和 API 密钥。安装前请阅读 GitHub 源码 与 MIT 许可证,确认 memaddmemremove 等写操作符合你的数据策略。SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。

DSH 生态强调「一切皆插件」;dsh-openviking 把 OpenViking 的检索、资源管理与双空间记忆接到 Harness 上,适合需要长期上下文和可复用流程知识的智能体开发。目录页:https://www.skillhub.cn/plugins/Rxiain/dsh-openviking;源码与文档:https://github.com/Rxiain/dsh-openviking

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜