前言¶
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