前言¶
用 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 重點¶
- 真實入庫狀態閉環:HTTP 上傳成功不等於入庫成功。上傳後按返回的文檔 id 在
parseObservationMs窗口內輪詢解析狀態,歸檔清單中記爲completed/parsing/failed;窗口內未完成記parsing,不高報爲成功。 archive-manifest.json:每次運行原子寫入~/.dsh/plugin-data/dsh-weknora-archive/reports/(可通過reportDir配置),只含標題、狀態、項目、KB id 等元數據,不含會話正文、API 地址或密鑰。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 各項目會話自動沉澱到按項目劃分知識庫、並區分「已上傳」與「已解析入庫」的開發者。
務必注意:
- 插件以當前 DSH 進程權限運行,安裝前應閱讀源碼與 MIT 許可證,確認憑據與 sessions 目錄訪問範圍可接受。
- 新建庫的 embedding 可能在 WeKnora 端單獨配置;PUT 接口會靜默丟棄 embedding 字段,務必設置
WEKNORA_ARCHIVE_EMBEDDING_MODEL_ID或在服務端補全。 - 正在運行的會話可能解壓失敗會被跳過,下次歸檔可補上。
- 總結默認爲啓發式抽取;配置
llm*後僅爲精煉,總結文本會發往你指定的模型服務商。 - 社區插件目錄 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