面向 DeepSeek Harness 的 OpenViking 检索、资源管理、自动召回与会话记忆插件
43/100
综合分
16
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Rxiain/dsh-openviking该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · search
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 35 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-openviking(未发布到 npm,仅可源码安装)
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 02:19:31
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 30 处,展示前 12 条)
- 发起网络请求lib/client.js:128
const response = await fetch(url, { - 发起网络请求lib/client.js:236
const result = await this.request('GET', "/health", { signal }); - 发起网络请求lib/client.js:249
const result = await this.request("POST", "/api/v1/search/find", { body, signal: options.signal }); - 发起网络请求lib/client.js:260
const result = await this.request("POST", "/api/v1/search/search", { body, signal: options.signal }); - 发起网络请求lib/client.js:280
return this.request("GET", `/api/v1/content/${level}`, { query: { uri }, signal }); - 发起网络请求lib/client.js:284
return this.request("GET", "/api/v1/fs/ls", { - 读取本地文件lib/session-sync.js:612
if (!existsSync(this.statePath)) - 读取本地文件lib/session-sync.js:616
parsed = JSON.parse(await readFile(this.statePath, "utf8")); - 写入本地文件lib/session-sync.js:680
await rename(this.statePath, `${this.statePath}${suffix}${Date.now()}`); - 写入本地文件lib/session-sync.js:690
await mkdir(dirname(this.statePath), { recursive: true }); - 写入本地文件lib/session-sync.js:692
await writeFile(tempPath, JSON.stringify(this.serialize(), null, 2), "utf8"); - 写入本地文件lib/session-sync.js:693
await rename(tempPath, this.statePath);
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
⚠ 该插件运行需访问外部网络 / 远程 API,部署在国内无外网环境时可能无法正常使用。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-settings-plugins@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-commands@deepseek-ai/dsh-fs给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
1 张 · 点击查看大图功能亮点
- OpenViking检索
- 资源管理
- 自动召回与会话记忆
README
由 DeepSeek 最新模型翻译生成dsh-openviking
面向 DeepSeek Harness 的 OpenViking 检索、资源管理、自动召回(user + agent 双空间)与会话记忆插件
功能
| 工具 | 功能 |
| memsearch | 语义搜索(auto/fast/deep;deep 使用会话上下文) |
| 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;脱敏+查重+即时注入当前会话 |
展开完整文档(README 剩余 1 节)
dsh-openviking
面向 DeepSeek Harness 的 OpenViking 检索、资源管理、自动召回(user + agent 双空间)与会话记忆插件
功能
| 工具 | 功能 |
| memsearch | 语义搜索(auto/fast/deep;deep 使用会话上下文) |
| 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;脱敏+查重+即时注入当前会话 |
另含:已索引仓库上下文注入、通过上下文注入通道自动召回、会话同步 + 自动提交。
流程经验自动召回
对审计、恢复、补偿、重放、验证、修复、诊断、迁移和步骤化流程问题,插件会在普通全局召回之外启用 procedure lane。它从缓存的用户记忆树中先筛选路径包含 方法论、playbook、workflow、runbook、pattern、case 或 skill 等标记的叶分支,再最多检索 16 个流程分支;每个分支限时 3 秒,失败或超时不会阻断当前模型步骤。若有满足既有相关度阈值的流程候选,最优候选保留一个注入槽位,其余容量才由普通 user/agent 结果填充。总 token 预算、去重、内容长度上限及插件上下文隔离仍然生效。
斜杠命令
| 命令 | 功能 |
| /memlearn <lesson> | 人工触发记忆沉淀:与 memlearn 模型工具完全同源的脱敏 / 查重 / 持久化,不开启模型回合,原始输入不进会话日志 |
记忆检索调用示例
为什么选择 OpenViking?
| 维度 | 本地文件 / SQLite 方案 | OpenViking 方案(本插件) |
| 召回 | 关键词 / FTS5 精确匹配 | 语义检索:向量召回 + L0/L1 摘要层定位 |
| 内容形态 | 只能存自己写进去的文本 | 记忆、资源、技能统一在一个viking:// 虚拟文件系统里;远程 URL、本地文档都能 memadd 入库成为可检索资源 |
| 上下文开销 | 全量注入或手写精简 | L0 摘要(一句话)→ L1 概览(要点)→ L2 全文三层分级,按需加载,省 token |
| 跨工具 | 每个工具一套记忆,彼此孤岛 | 同一套记忆跨工具共享:Claude Code、Codex、MCP 客户端、ov CLI 与 DSH 读写同一个库 |
| 维护 | 靠手工整理 | 观察者队列自动完成嵌入、摘要生成与内容重组(memqueue 可查状态) |
快速开始
推荐:在 DSH 0.1.7+ 的 Web UI 插件管理(Plugin Manager) 页面直接安装 OpenViking(本地化标题 + 图标开箱即用)。以下 CLI 方式仍可作为 fallback:
一键安装(GitHub 仓库,含预构建 lib/,无需构建授权): sh install.sh [profile-name] # 默认 profile: dsh-openviking
或手动安装:
dsh plugin --profile <name> add github:Rxiain/dsh-openviking
dsh --profile <name>
(在设置的插件配置中也可以配置哦)
配置默认指向 http://localhost:1933。如需覆盖任何设置,请在 profile 的 cordis.patch.yml 中以 id: openviking 写入完整配置(patch 整体替换 config):
- id: openviking
config:
endpoint: 'http://localhost:1933'
X-API-Key 认证头;为空则省略 apiKey: !!js process.env.OPENVIKING_API_KEY ?? '' X-OpenViking-Account 租户头;为空则省略 account: '' X-OpenViking-User 用户头;为空则省略 user: '' X-OpenViking-Agent agent 标识头;为空则省略 agentId: 'deepseek-harness' 单次请求超时(毫秒),范围 1000–300000 timeoutMs: 30000 会话同步状态文件(~ 会展开);只存消息 id,不存正文或密钥 stateFile: '~/.dsh/openviking/state.json' 将已索引仓库列表注入提示词 repoContext: enabled: true 仓库列表缓存 TTL(毫秒),范围 1000–3600000 cacheTtlMs: 60000 每个用户消息自动召回一次相关记忆 autoRecall: enabled: true 每回合最多注入的记忆条数,范围 1–50 limit: 6 本地综合相关性最低分(语义分 + 有界词法重合),范围 0–1 scoreThreshold: 0.15 单条记忆内容上限(字符),范围 100–5000 maxContentChars: 500 注入预算 ≈ tokenBudget × 4 字符,范围 100–10000 tokenBudget: 2000 同时检索 agent 空间的 cases/patterns/tools/skills 记忆与技能手册 agentSpaces: true 同一条消息内每 N 个工具步骤刷新一次,只注入新记忆(0 关闭) refreshSteps: 10 记忆库概览:会话启动注入一次,之后每 N 个用户回合刷新(1 = 仅启动,0 = 关闭) startupMapEveryTurns: 5 按用户回合节奏自动提交会话 autoCommit: enabled: true 未提交的用户回合达到 N 个即提交(0 关闭回合触发) turns: 3 时间兜底:已提交过的会话超过该间隔仍有未提交消息也会提交 intervalMinutes: 10
创建账号与密钥
管理命令需要 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 # 建账号 dsh + 首个管理员,返回其密钥 ov admin register-user dsh dsh --role user # 账号 dsh 内注册普通用户 dsh,返回其密钥 ov admin regenerate-key dsh dsh # 重新生成密钥(旧密钥立即失效)
unset OPENVIKING_CLI_CONFIG_FILE && rm -f /tmp/ov-root.conf
把返回的密钥填入插件配置的 apiKey,account/user 填对应的账号与用户。
贡献
欢迎贡献:
1. Fork 仓库并创建功能分支(git checkout -b feature/your-change)
2. 修改代码,并补充或更新测试
3. 运行 npm test 验证(默认套件无需 OpenViking 服务)
4. 提交并打开 Pull Request
许可证与致谢
MIT
参考了:
- @tanyouqing/pi-openviking(源码仓库)
- 上游:volcengine/OpenViking预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Rxiain/dsh-openviking
面向 DeepSeek Harness 的 OpenViking 检索、资源管理、自动召回与会话记忆插件
相关插件 · 搜索 / 抓取
LLM 知识平台Tencent/WeKnora
概览 ·快速开始 ·新特性 ·功能 ·客户端 ·文档 ·开发
★ 36,266已汉化DSH
72
智能体记忆系统MemTensor/MemOS
MemOS 2.0 Stardust星尘
★ 12,228已汉化DSH
71.3
跨代理记忆库zilliztech/memsearch
跨平台语义记忆,专为 AI 编程智能体打造。
★ 2,799已汉化DSH
70.9
跨智能体会话记忆vshulcz/deja-vu
你的编码智能体不再重复调试你已经修好的问题。
★ 1,367已汉化MCP
70.4
技能语料库EverMind-AI/SkillCorpus
SkillCorpus 能给你什么
★ 694已汉化DSH
69.7
动画花园资源检索yjl9903/AnimeGarden
按番剧、字幕组和类型搜索动画 BT 资源
★ 1,391已汉化DSH
69.2
这是你的仓库?认领条目