wilshi/dsh-agentos-context: Add Memory and Ontology Workbench for DSH

前言

DSH 的理念是「一切皆插件」,但默认 profile 之外的长期记忆、知识库、关系图,往往要自己搭。agentOS Context 这类 bundle 把自动记忆、作用域召回、本体图和本地文档知识打包成一个可装卸的单元。下面介绍的是社区 fork 版本 @wilshi/dsh-agentos-context。

它是内部包 @deepseek-ai/dsh-agentos-context 0.2.1-rc.5 的社区 fork,以 @wilshi/dsh-agentos-context 发布,许可证 MIT,当前 package.json 版本为 0.8.2,要求 Node >=22.19.0。维护者为 WilShi。数据格式、工具和 RPC 命名空间与上游保持一致,重做的是记忆图。

这是什么

一句话定位:给一个 DSH profile 加上自动长期记忆、作用域召回、带来源依据的本体图,以及本地文档知识库。DSH Web 应用和 DSH Desktop 已通过 dsh-web-app 默认挂载它,无需额外操作即可在 Settings → Memory 配置抓取、召回、向量、蒸馏与保留策略。

不包含 dsh-web-app 的 profile 需要显式装卸:

dsh plugin --profile <name> add @wilshi/dsh-agentos-context
dsh plugin --profile <name> remove @wilshi/dsh-agentos-context

第一条命令把 bundle 挂载到兼容用的 dsh-opencontext Loader 行,Settings 会把旧分区导入同一命名空间并保留原值。第二条卸载。注意它不是官方应用商店里的一条命令:安装失败时先确认已装包是否暴露 dsh.bundle.patch 声明。

核心功能

自动记忆与召回

默认开启对人工 prompt 的自动抓取,可以关闭。接受的 prompt 在配置了模型时触发蒸馏;临时蒸馏失败会保留一份低重要度的工作记忆 24 小时,而不是丢弃 prompt。召回按 run → agent → workspace → user → app → global 顺序搜索已授权作用域,run 记忆只留在当前 Session,只注入有界的、绑定当前用户查询的证据。

记忆采用 3+1 分层:工作、情节、语义、程序四层,彼此独立于记忆类型。重复证据可以强化并提升一条记录;近似冲突会进入待审候选,而不是覆盖既有事实。

凭据类内容有明确保护:看起来是 key、token、私钥的 prompt 会被自动抓取跳过,显式 save/revise/reinforce 会返回 SECRET_REJECTED,不把内容发往蒸馏网关或写进 sidecar。日志脱敏覆盖常见的 GitHub、AWS、GitLab、npm、PEM 与 Bearer/Basic 形式。普通本地内容保持无损。

local:、run:、session: 等 workspace 作用域仍可通过 RPC 使用。user:、agent:、app: 身份作用域限定在当前受信任 Session 身份或显式配置的身份上;scopes 与 bootstrap 只暴露可见分区。旧集成可通过 allowForeignScopeIds=true(或 AGENTOS_CONTEXT_ALLOW_FOREIGN_SCOPE_IDS)退回旧行为,多用户或远程部署不建议开启。

知识与文档解析

知识上传是显式的。Knowledge 视图在选定 All scopes 时聚合当前与旧文档,新上传继续进入共享 global 作用域。支持上传、列表、检索、查看、重建索引和删除:文本文件上限 4 MiB;DOCX、XLSX、PPTX、PDF、ODT、ODS、ODP、ODG、RTF、EPUB 上限 25 MiB。二进制抽取在本地完成,OCR、附件抽取和外部解析服务均已禁用,只有有界的抽取文本和来源元数据进入索引。索引与检索的默认超时分别为 10 分钟和 30 秒。

词法检索不配置向量凭据也能用。配置 embeddings 后,包会加载本地 SQLite 向量扩展,把词法与语义结果合并。模型蒸馏与 embedding 只把选中的文本和配置凭据发往启动时允许清单里的端点;远程端点必须 HTTPS,纯 HTTP 只允许 loopback 地址或显式列入 OPENCONTEXT_DSH_TRUSTED_GATEWAY_BASES 的端点。

图谱、本体与兼容性

工作台提供 2D 关系视图,以及可选的、记住渲染状态的 WebGL 3D 点云视图,支持轨道、缩放、拾取、社区折叠、跟随亮/暗主题色,以及带来源依据的详情抽屉;WebGL 环境不支持时回退到 2D。模型抽取可以提议带类型的对象与关系,但每条关系必须逐字引用来源,并在人工确认前保持 pending。聚合视图会把大图折叠为每个记忆作用域一个社区,单个作用域改用确定性关系社区并保留跨社区边。

兼容性是这套 fork 的重点:旧 OpenContext 记忆与文档引用作为只读输入保留,启动时从不重写;包保留 dsh-opencontext settings 命名空间,读取兼容标识,并在提供 memory_*、knowledge_*、context_* 名称的同时保留可调用的 oc_* 别名。新的修订、退役、使用轨迹和本体状态都写入 agentOS Context sidecar;schema-v1 sidecar 会增量迁移到 schema v2。

降级行为:若 sidecar 或原生 SQLite 依赖初始化失败,插件保持加载并报告 STORE_UNAVAILABLE,而不是让整个记忆层崩溃;原生知识依赖按需加载。图谱统计会区分 truncated(实际裁剪)与 depthLimited(调用方请求的深度边界),默认节点按记录时间选择,孤立节点合并进一个未聚类社区而不是每节点一个社区。审查状态只允许 pending → confirmed/rejected,confirmed → rejected 视为撤回,rejected 关系不能直接复活。

典型用法

DSH Web / Desktop 用户:打开 Settings → Memory 即可配置抓取、召回、embeddings、蒸馏与保留,或在 Memory 工作台查看列表、图谱、审查与知识视图。该设置行和会话标签跟随当前 DSH 语言。

不含 dsh-web-app 的 profile 维护者:

dsh plugin --profile <name> add @wilshi/dsh-agentos-context

挂载后,官方 Settings 会把旧 OpenContext 分区导入同一命名空间并保留取值。标为 volatile 的字段会实时生效、无需重挂插件;但其中部分开关(含自动抓取)是进程局部的,重启后回到默认值,需要查看持久化语义,不能假定所有开关都永久生效。显式 Settings 值优先于环境变量,环境变量只在字段未显式配置时提供默认值。

适用场景与注意

适合需要给 DSH profile 补齐长期记忆、作用域召回与文档知识,又希望保留现有 OpenContext 数据的开发者和 profile 维护者。它的本体是刻意有限的,不是通用 OWL 推理器,不适合当作通用知识推理引擎。

两个务必记住的点:其一,插件运行在当前 dsh 进程权限下,挂载前应检查源码与许可证(MIT)是否符合自身要求;其二,拿到的版本以社区 fork 为准,数据格式与 RPC 命名空间与上游一致,但实现由社区维护。生态背景上,DSH 插件目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

这个 bundle 解决的是「profile 默认没记忆」这个具体缺口:自动抓取加凭据保护、分层记忆加冲突待审、词法与向量混合检索、人工确认的关系图,以及对旧 OpenContext 数据的非破坏兼容。如果你要在 DSH profile 里落地长期记忆,可以从目录页和 GitHub 仓库开始核对。

  • 目录页:https://www.skillhub.cn/plugins/WilShi/dsh-agentos-context
  • GitHub:https://github.com/WilShi/dsh-agentos-context
羽毛球分组比赛记分
小程序二维码

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

Xiaoye