OpenViking 记忆面板 A2chitect/dsh-openviking-enhance
DeepSeek Harnessv0.2.2DSH web GUI 里的 OpenViking:一个 Studio 面板、一个按会话显示的记忆提交状态胶囊和它的提交时间线,以及右侧边栏标签页,展示当前会话检索到什么。
36.7/100
综合分
6
GitHub 星标
768
npm 周下载
—/5
用户评分
数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-openviking-enhancenpm 源 · dsh-openviking-enhance 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-openviking-enhance @ 0.2.2
✓Node 引擎要求 ^22.19.0 || >=24 · 基线 Node 22.19 满足
✓dsh CLI 依赖要求 ^0.2.0-rc.1 || ^0.2.1-rc.2 · 最新 0.2.1-rc.2 兼容
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/27 23:42:59
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 9 处,展示前 8 条)
- 读取本地文件lib/index.js:889
const parsed = JSON.parse(readFileSync(path, "utf8")); - 发起网络请求lib/index.js:1194
const response = await fetch(`${this.connection.endpoint}${path}`, { - 发起网络请求lib/index.js:1223
const response = await this.request("/health", { timeoutMs: 4e3 }); - 发起网络请求lib/index.js:1234
return this.request(`/api/v1/sessions/${encodeURIComponent(ovSessionId)}`, { - 发起网络请求lib/index.js:1252
return this.request(`/api/v1/fs/ls?uri=${encodeURIComponent(uri)}`, { - 发起网络请求lib/index.js:1260
const response = await this.request( - 发起网络请求lib/index.js:1277
const response = await this.request( - 发起网络请求lib/client.js:472
const response = await fetch(url, init);
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-plugin-manager@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-sidebar@deepseek-ai/dsh-client-ui-sidebar-right@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-host-webserver@deepseek-ai/schemastery@deepseek-ai/dsh给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- Studio面板
- 会话记忆提交状态胶囊
- 检索结果侧栏标签页
最近更新
在 GitHub 查看全部 →v0.2.22026-10-27
0.2.2 — 2026-10-27
· Three interface switches on the plugin's settings form. showSidebarEntry,
showCommitStatus and showRecallPanel (all default true) independently hide
the Studio entry in the left sidebar, the per-session commit pill under the
composer, and the Memory recall tab in the right sidebar. They are persisted by
the same Configure form and applied live through ctx.configForms — saving
mounts or unmounts the surface with no reload or restart. The form itself is
never hidden: a switched-off surface can always be switched back on there.
Hiding the sidebar entry unmounts the Studio page (it loads fresh when shown
again); hiding the recall tab closes an open recall page once the conversation
is back on screen (a page open in a background pane has to be closed by hand,
because the harness exposes no tab enumeration). A deployment
without the settings client keeps every surface visible, exactly as before the
switches existed. The release was exercised in the running desktop GUI: the host
Config was hot-reloaded without an app restart, each surface disappeared and
returned on save, and switching the recall tab off closed an already-open recall
page once the conversation came back; the test-written overrides were then
removed, so the defaults are in force.
· 插件设置里新增三个界面开关。 showSidebarEntry、showCommitStatus、
showRecallPanel(默认都是 true)分别控制左侧边栏的 Studio 入口、输入框下方的
提交状态胶囊、右侧边栏的「记忆召回」tab。开关与连接参数在同一个 Configure 表单里
保存,客户端通过 ctx.configForms 实时生效——保存即挂载或卸载对应界面,不需要重载
窗口或重启应用。配置表单本身永远可见,关掉的入口随时能在这里开回来。隐藏左侧入口会
一并卸载 Studio 页面(重新打开后重新加载);隐藏召回 tab 后不再提供该页,已打开的召回页
会在回到对话时自动收起(若它在后台分屏里、不是激活页,则需手动关闭——框架没有提供枚举
标签页的接口)。没有 settings 客户端的部署保持三个入口全部显示,与加开关之前完全一致。
本版本在运行中的桌面 GUI 里实测过:宿主 Config 无需重启 App 即热重载,三个入口在保存后
当场消失/恢复,关掉召回开关后已打开的召回页会在回到对话时自动关闭;随后清除了测试写入的
覆盖值,默认值(全开)生效。
· Verified against DSH 0.2.1-rc.3. The desktop app moved one prerelease
forward on the 0.2.1 line. No plugin code changed: the same sources type-check
against the 0.2.1-rc.3 type packages
v0.2.12026-10-18
0.2.1 — 2026-10-18
· 声明兼容 DSH 0.2.1-rc.2。开发依赖升到 0.2.1 线(0.2.1-rc.2、@deepseek-ai/cordis 4.0.5、@deepseek-ai/schemastery 3.18.5),peer 范围与 engines.dsh 同时标出 0.2.1 预发布线和 0.2.0 线。插件代码没改:同一份源码在两套版本下都通过类型检查,整套测试(含真实 OpenViking 在线冒烟)在 0.2.1-rc.2 上全部通过。
v0.2.02026-10-02
0.2.0 — 2026-10-02
· Recall detail in the right sidebar — a per-session 记忆召回 tab showing what
OpenViking retrieves for the session in view: the query it searched with (the
session's own most recent user turn, or one you type), every hit in each of the
three sources with its score (graded red through green), file name, kind and
abstract, the server's own retrieval plan, and one entry's full text on click. It asks the same
session-aware route the memory plugin calls, so the ranking is the server's
rather than a second implementation of it. Reached through the right sidebar's
guide; nothing is written.
· Two routes behind the same trust fence: /recall and /recall/content (the
latter refuses anything that is not a viking:// path, and truncates).
· The interface is bilingual. Every string this plugin renders — the panel,
the pill and its popover, the recall tab, the configuration form — now follows
the language DSH is set to, with Chinese and English dictionaries and English as
the fallback. Host-side messages became codes plus parameters, so the half that
has no language no longer decides the wording.
· The plugin's settings are editable in the GUI. Its row on the Plugins
page now has a Configure form — endpoint, key, identity, Studio path and the
two cache lifetimes — with a check button that probes the address before
saving, and a per-field reset that clears the override instead of writing an
empty value. The same values can still be written by hand in the profile patch.
· The host half is self-contained: @deepseek-ai/schemastery is bundled instead
of being imported at runtime, so the plugin no longer assumes a harness hands it
a schema library the profile may not have.
· The package is publishable: private removed, LICENSE added, and the official
@deepseek-ai/* dependency replaced by an explicit @deepseek-ai/dsh peer.
· 界面中英双语:本插件渲染的每一处文字(面板、胶囊及其弹窗、召回面板、配置表单)现在都跟随
DSH 的语言设置,内置中英两套字典,其他语言退回英文。宿主侧消息改成"码 + 参数",
不再由那个没有语言概念的半部分决定措辞。
· 插件设置可以在界面里改了
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-openviking-enhance
v0.2.2 · 更新记录
把本地 OpenViking 记忆服务接进 DeepSeek Harness (DSH)的 Web 界面:左侧边栏多一个 OpenViking Studio 面板,输入框下方多一个 commit 状态胶囊,随时能看到每次提交对本会话记忆做了什么。
不需要给 DSH 或 OpenViking 插件打补丁——它就是一个普通的 DSH bundle。
功能
在 DSH 里用 OpenViking Studio。 左侧边栏最后一行点开,主区域直接加载 OpenViking 服务自带的 Studio 界面,浏览记忆、会话、检索都不用离开 DSH 或另开浏览器。
每个会话的 commit 状态。 OpenViking 是按「提交(commit)」写入记忆的:会话的对话轮次累积到 token 阈值(或会话结束)时归档一次,并抽取其中的记忆。输入框下方的胶囊告诉你当前会话处在哪一步:
| 胶囊 | 含义 |
| OV · 未提交 | 本会话还没有内容被提交 |
| OV · 12.3k/20k | 正在累积,接近提交阈值 |
| OV · 抽取中…
展开完整文档(README 剩余 1 节)
dsh-openviking-enhance v0.2.2 · 更新记录 把本地 OpenViking 记忆服务接进 DeepSeek Harness (DSH)的 Web 界面:左侧边栏多一个 OpenViking Studio 面板,输入框下方多一个 commit 状态胶囊,随时能看到每次提交对本会话记忆做了什么。 不需要给 DSH 或 OpenViking 插件打补丁——它就是一个普通的 DSH bundle。 功能 在 DSH 里用 OpenViking Studio。 左侧边栏最后一行点开,主区域直接加载 OpenViking 服务自带的 Studio 界面,浏览记忆、会话、检索都不用离开 DSH 或另开浏览器。 每个会话的 commit 状态。 OpenViking 是按「提交(commit)」写入记忆的:会话的对话轮次累积到 token 阈值(或会话结束)时归档一次,并抽取其中的记忆。输入框下方的胶囊告诉你当前会话处在哪一步: | 胶囊 | 含义 | | OV · 未提交 | 本会话还没有内容被提交 | | OV · 12.3k/20k | 正在累积,接近提交阈值 | | OV · 抽取中… | 正在归档并抽取记忆 | | OV · 3 次提交 | 已提交 3 次 | | OV · 抽取失败 | 归档了,但记忆抽取失败 | | OV · 不可用 | 连不上本地 OpenViking 服务 | 点开胶囊可以看到: - 时间线:最近 3 次提交分别发生在什么时候、各新增/更新/删除了多少条记忆(其余一次点击展开); - 点某一次提交,列出它具体改了哪些记忆,含 viking:// 路径; - 抽取失败的时间、耗时,以及服务端给出的原因。 面板和胶囊都只读——本插件不会向 OpenViking 提交、写入或删除任何东西。 这个会话检索到了什么。 右侧边栏多一个「记忆召回」tab:显示当前会话会被 OpenViking 拉进上下文的记忆——检索用的那句话(默认是本会话最近一次提问,也可以自己输入)、三个来源(记忆 / 资源 / 技能)里每条命中的分数(按高低从红到橙到绿分级)、文件名、类型(entity、event 等)与摘要——完整 viking:// 路径悬停可见,点开任意一条可看全文——以及服务端给出的检索计划。从右侧边栏的 + 引导页打开,和该栏本身一样是按会话的。 嵌在 DSH 界面里的 OpenViking Studio 面板 Studio 面板、打开它的侧边栏行,以及输入框下方的提交状态胶囊。 前置条件 | DSH | 0.2.0-rc.2 或更新(desktop / web profile 均可;已在 0.2.1-rc.3 实测) | | OpenViking | 需要一个本地服务,实测 0.5.1.1。Studio 由同一端口的 /studio/ 提供 | | 记忆插件 | 建议装 @openviking/dsh-memory-plugin——会话提交由它完成。不装也能用,只是看不到提交阈值进度 | 安装 从 Plugins 页安装(Add plugin → 填包名或 tarball),或: 从 npm 装 dsh plugin --profile desktop add dsh-openviking-enhance 或从最新 release 装预构建 tarball dsh plugin --profile desktop add https://github.com/A2chitect/dsh-openviking-enhance/releases/latest/download/dsh-openviking-enhance.tgz 直接用 Git 地址安装会被 pnpm 拒绝(这个包声明了构建脚本,pnpm 在得到允许前一律不放行),所以源码目录要打成 tarball 再装——客户端半部分是预构建产物,源码安装等于装了个没东西可加载的壳: pnpm pack && dsh plugin --profile desktop add ./dsh-openviking-enhance-<版本>.tgz 安装后重启一次 DSH 应用(宿主部分在启动时加载)。卸载: dsh plugin --profile desktop remove dsh-openviking-enhance 配置 默认值适配标准本地环境,开箱无需配置。要改的话,打开侧边栏的 Plugins 页,找到本插件,点它那一行的 Configure:表单包含下表的全部字段,地址旁边有 检测 按钮可以在保存前先试连,每个字段还有 默认 按钮——它是清除覆盖、恢复继承,而不是写入一个空值。 同样的设置也仍然可以手写在 profile 的 patch 文件(~/.dsh/profiles/desktop/cordis.patch.yml)里 openviking-enhance 这一行下面: - id: openviking-enhance name: 'dsh-openviking-enhance' config: endpoint: http://127.0.0.1:1933 | 字段 | 默认值 | 说明 | | endpoint | 读 ~/.openviking/ovcli.conf,否则 http://127.0.0.1:1933 | OpenViking 地址 | | apiKey | 读 ovcli.conf | 仅在服务端开启鉴权时需要 | | account / user | default / default | 读取记忆所用的身份 | | studioPath | /studio/ | Studio 在该地址下的路径 | | cacheTtlMs | 2500 | 状态结果的缓存时长 | | recallCacheTtlMs | 15000 | 单次检索结果的缓存时长 | | showSidebarEntry | true | 界面开关:左侧边栏里的 OpenViking 入口 | | showCommitStatus | true | 界面开关:输入框下方的提交状态胶囊 | | showRecallPanel | true | 界面开关:右侧边栏的「记忆召回」tab | 三个界面开关分别控制这三个入口,保存后立即生效——界面会当场挂载或卸载对应入口,不需要重载窗口或重启应用。Configure 表单本身永远不会被隐藏,所以关掉的入口随时可以在这里重新打开。隐藏左侧入口会一并卸载 Studio 页面(重新打开后重新加载);隐藏召回 tab 后不再提供该页,已打开的召回页会在回到对话时自动收起(若它在后台分屏里、不是激活页,则需要手动关闭——框架没有提供枚举标签页的接口)。 常见问题 侧边栏没有 OpenViking 行,或输入框下方没有胶囊。 先看插件自己的开关(Plugins → 本插件 → Configure → 「界面」):某个入口可能被关掉了,而且三个开关互相独立。否则是客户端部分没加载:重载窗口(⌘R)即可,仍然没有就重启应用。 我把 OpenViking 行 / 胶囊 / 召回 tab 关掉了,想找回来。 打开 Plugins → dsh-openviking-enhance → 它那一行的 Configure,把开关打开再保存。 即使三个入口全都隐藏,这个配置表单也始终可用。 面板提示连不上 OpenViking。 先起服务并直接验证:curl http://127.0.0.1:1933/health。面板会显示它尝试的地址, endpoint 不是默认值时这个信息很有用。 胶囊显示「抽取失败」。 归档成功了,但 OpenViking 没能把它变成记忆——那部分记忆不在你的库里。点开胶囊看服务端返回的原因,通常是 ~/.openviking/ov.conf 里抽取所用模型的问题。 胶囊显示 token 数而不是提交次数。 说明没装 @openviking/dsh-memory-plugin,插件无从得知提交阈值。提交本身照常发生,只是少了进度分母。 时间线只有 3 条。 这是默认值,点「显示全部」展开。 右侧边栏里没有召回 tab。 该 tab 从右侧边栏自己的 + 引导页进入,且需要重载窗口后才会出现(客户端部分是页面加载时取用的文件)。若 DSH 低于 0.2.0-rc.2,它没有右侧边栏可供挂载:这一行会被跳过, Studio 面板和胶囊照常工作。 改了代码但界面没变化。 两半的加载方式不同:客户端部分重载窗口即可,宿主部分必须重启应用。 说明 - 本插件自身的界面文字跟随应用语言:内置中英两套文案,读取 DSH 设置的语言,切换应用语言即切换本插件的文案;其他语言退回英文。 - OpenViking 会定期清理 commit 任务记录,所以失败列表只覆盖最近的提交;归档文件本身是永久的。 - 插件的内部接口只接受本机 loopback 且来自 DSH 窗口自身来源的请求。 开发 pnpm install pnpm run build # lib/index.js(宿主)+ lib/client.js(浏览器) pnpm test # 类型检查、构建、发布要求核对、单测、冒烟 pnpm run watch # 改动后自动重建 冒烟脚本不需要开界面就能打印提交时间线;OpenViking 没在跑时它会跳过实时数据部分(SMOKE_REQUIRE_SERVER=1 可让跳过变成失败)。各部分的实现细节见源码注释。 版本号写在 package.json,每次发布在 git 里打 vX.Y.Z 标签;0.x 期间内部实现仍可能调整。每个版本包含什么见 CHANGELOG.md,发版步骤和必须在界面里过一遍的验收清单见 RELEASING.md。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
A2chitect/dsh-openviking-enhance
DSH web GUI 里的 OpenViking:一个 Studio 面板、一个按会话显示的记忆提交状态胶囊和它的提交时间线,以及右侧边栏标签页,展示当前会话检索到什么。
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,928已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4