dsh-weknora-archive:把 DSH 會話增量歸檔進自託管 WeKnora

前言

用 DeepSeek Harness(DSH)做項目時,會話會落在本機 harness 的 sessions 目錄裏。若要把這些對話沉澱成可檢索的知識,常見做法是手工整理 Markdown 再上傳到 RAG 知識庫;官方只讀插件 @wxg-prc-cpg/dsh-weknora 提供了從 WeKnora 檢索的能力,但沒有寫入側。維護者 AAAlenwow 的 dsh-weknora-archive(GitHub:AAAlenwow/dsh-weknora-archive,社區目錄分類爲「記憶」)是 host 端插件,負責把 DSH 會話增量歸檔進你自託管的 WeKnora 知識庫,並在 v0.4.0 起用輪詢解析狀態做「真實入庫」覈驗,可選生成本地 three.js 入庫星圖報告。

下面介紹插件定位、工具能力、安裝配置與典型用法。

這是什麼

dsh-weknora-archive 是 DSH 的寫入側互補插件:掃描本機會話 → 解壓與提取對話 → 啓發式總結(可選 LLM 精煉)→ 按標題去重後上傳到 WeKnora → 在觀察窗口內輪詢文檔解析狀態,寫入僅含元數據的 archive-manifest.json。當前版本 0.4.0,許可證 MIT,要求 Node >=24.0、DSH >=0.1.7-alpha.1,profile 爲 web。

會話數據只發往你配置的 WeKnora 實例;API key 經 redactConfig() 脫敏,不寫入日誌或工具結果。

核心功能

與官方只讀插件的關係

方向 插件 能力
讀 @wxg-prc-cpg/dsh-weknora 4 個檢索工具
寫 dsh-weknora-archive 歸檔、上傳、狀態覈驗、本地報告

v0.4.0 重點

  1. 真實入庫狀態閉環:HTTP 上傳成功不等於入庫成功。上傳後按返回的文檔 id 在 parseObservationMs 窗口內輪詢解析狀態,歸檔清單中記爲 completed / parsing / failed;窗口內未完成記 parsing,不高報爲成功。
  2. archive-manifest.json:每次運行原子寫入 ~/.dsh/plugin-data/dsh-weknora-archive/reports/(可通過 reportDir 配置),只含標題、狀態、項目、KB id 等元數據,不含會話正文、API 地址或密鑰。
  3. weknora_archive_visualize:把清單渲染爲自包含的本地 three.js「知識入庫星圖」HTML(內嵌 three.js,無 CDN、file:// 可直接打開)。WebGL 不可用或系統 prefers-reduced-motion 時降級爲靜態報告;報告失敗只告警,不影響歸檔。設 WEKNORA_ARCHIVE_VISUALIZATION=false 可關閉。

工具一覽

工具名前綴默認 weknora_archive,可通過 toolPrefix 修改。

工具 說明
weknora_archive_auto 掃描本機所有 DSH 項目,按項目名匹配/新建知識庫並增量歸檔;已歸檔跳過;單項目失敗不影響其餘;適合定時任務;支持 project_keyword、dry_run
weknora_archive_session 歸檔指定項目會話:定位目錄 → 解壓 → 提取 → 總結 → 標題去重上傳;庫不存在則按項目名新建;首次附 00_項目總覽.md;支持 dry_run
weknora_archive_status 只讀:本機會話項目與會話數、目標庫已歸檔文檔及解析狀態
weknora_archive_list_knowledge_bases 只讀:列出憑據可見的知識庫
weknora_archive_create_knowledge_base 新建知識庫(新庫可能需在 WeKnora 端配置 embedding,否則解析失敗)
weknora_archive_visualize 只讀:將最近一次或指定歸檔清單渲染爲本地星圖 HTML,不上傳、不改歸檔狀態

安裝與啓用

插件通過 DSH 官方插件機制安裝。README 給出的命令如下(將 /path/to/dsh-weknora-archive 換成本地插件目錄路徑):

node "/Applications/DSH Desktop.app/Contents/Resources/app/node_modules/@deepseek-ai/dsh/lib/bin.js" \
  plugin --profile web add /path/to/dsh-weknora-archive

Linux 或其他安裝路徑下,應使用本機 DSH 對應的 bin.js 路徑,參數含義不變:plugin --profile web add 指向插件 bundle 目錄。

配置走 bundle 自帶的 cordis.patch.yml,默認從環境變量讀取,key 不落地、不入庫。常用項如下。

字段 環境變量 說明
baseUrl WEKNORA_ARCHIVE_BASE_URL WeKnora 部署地址
apiKey WEKNORA_ARCHIVE_API_KEY 具備寫入/攝取能力的 scoped API key
knowledgeBaseId WEKNORA_ARCHIVE_KB_ID 可選;缺省按項目名自動匹配/新建
sessionsDir WEKNORA_ARCHIVE_SESSIONS_DIR 可選;缺省探測 <harness>/sessions
embeddingModelId WEKNORA_ARCHIVE_EMBEDDING_MODEL_ID 強烈建議:自動新建庫時攜帶的 embedding 模型 id,不設則新庫文檔易 parse_status=failed
reportDir WEKNORA_ARCHIVE_REPORT_DIR 歸檔清單目錄,默認 ~/.dsh/plugin-data/dsh-weknora-archive/reports
parseObservationMs WEKNORA_ARCHIVE_PARSE_OBSERVATION_MS 上傳後觀察解析的時間窗,默認 60000
visualization WEKNORA_ARCHIVE_VISUALIZATION 設 false 跳過清單/報告生成

LLM 精煉需 llmBaseUrl、llmApiKey、llmModel 三者同時配置纔開啓;失敗回退啓發式總結,不影響歸檔。啓發式總結不足約 200 字符時不發模型請求。

WeKnora 側認證頭爲 X-API-Key(非 Bearer);若 API 與插件內置路由不一致,需按實際部署調整 lib/client.js。

典型用法

單項目歸檔或預覽

在 DSH 對話中讓智能體調用 weknora_archive_session;先加 dry_run 可預覽將上傳的標題與目標庫,確認後再正式歸檔。

全機增量與定時無人值守

調用 weknora_archive_auto(不帶 dry_run)。去重按知識庫內文檔標題判定,重複執行冪等。

README 推薦的每日提醒配方:在 DSH 建定時提醒(例如 22:00),prompt 示例:

調用 weknora_archive_auto 工具(不要帶 dry_run),把返回的彙總原樣轉告我;有失敗項目的列出失敗原因。

若修改過 toolPrefix,提醒裏的工具名需改用對應前綴(如 my_prefix_auto)。

查看入庫與星圖

  • weknora_archive_status:覈對本機項目與會話、庫內文檔解析狀態。
  • weknora_archive_visualize:打開生成的自包含 HTML,查看帶真實解析狀態的入庫星圖。

本地單測(無需網絡與憑證):

npm test

適用場景與注意

適合:已在自託管 WeKnora 上跑 RAG,希望把 DSH 各項目會話自動沉澱到按項目劃分知識庫、並區分「已上傳」與「已解析入庫」的開發者。

務必注意:

  1. 插件以當前 DSH 進程權限運行,安裝前應閱讀源碼與 MIT 許可證,確認憑據與 sessions 目錄訪問範圍可接受。
  2. 新建庫的 embedding 可能在 WeKnora 端單獨配置;PUT 接口會靜默丟棄 embedding 字段,務必設置 WEKNORA_ARCHIVE_EMBEDDING_MODEL_ID 或在服務端補全。
  3. 正在運行的會話可能解壓失敗會被跳過,下次歸檔可補上。
  4. 總結默認爲啓發式抽取;配置 llm* 後僅爲精煉,總結文本會發往你指定的模型服務商。
  5. 社區插件目錄 skillhub.cn 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本插件爲社區維護條目。

結尾

dsh-weknora-archive 把 DSH 會話增量寫入自託管 WeKnora,並用解析狀態輪詢與本地歸檔清單、可選 three.js 星圖,補齊官方只讀檢索插件之外的寫入與覈驗鏈路。進一步說明與配置表見 GitHub README:

  • 目錄頁:https://www.skillhub.cn/plugins/AAAlenwow/dsh-weknora-archive
  • 倉庫:https://github.com/AAAlenwow/dsh-weknora-archive
羽毛球分组比赛记分
小程序二维码

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

小夜