dsh-weknora-ops:WeKnora 在 DSH 中的寫入路徑與治理

前言

Coding agent 容易把團隊寫在文檔裏的規則、流程和約束「憑記憶」說錯。WeKnora 作爲開源知識庫平臺,適合承載這類 ground truth;DeepSeek Harness(DSH)則通過插件把能力接到 agent 側。Tencent 在 WeKnora 倉庫裏提供了官方只讀 DSH 插件 @wxg-prc-cpg/dsh-weknora(list / search / read / ask),查詢場景應優先用它。社區項目 dsh-weknora-ops(維護者 vicfei,分類 admin-security)補的是官方刻意不做的 寫入路徑:文檔入庫、帶雙重門禁的刪除、標籤樹,並在三層安全模型下運行;查詢類動詞也提供 CLI 形態,便於與官方插件並存。下文介紹其定位、能力與安裝用法。項目與 DeepSeek、Tencent 無隸屬關係;DSH 插件目錄爲獨立社區站點,並非官方應用商店。

這是什麼

dsh-weknora-ops 是 DeepSeek Harness 插件(skill + weknora-ops CLI),面向 WeKnora。Bundle 格式遵循 MIT 許可的 dsh-superagent-prototype;WeKnora API 以公開文檔爲準。設計理念強調 cite, don’t recall:用帶引用的檢索與問答,而不是讓 agent 自由發揮「回憶」。

  • 倉庫:https://github.com/vicfei/dsh-weknora-ops
  • 目錄頁:https://www.skillhub.cn/plugins/vicfei/dsh-weknora-ops
  • 許可證:MIT

核心功能

能力按 README 中的命令面歸納如下(與官方只讀插件分工:查詢可二選一,寫入與刪改治理以本插件爲主)。

查詢(Query)

命令 作用
weknora-ops ask <kb> "<q>" 基於知識庫的回答,帶引用
weknora-ops search <kb> "<q>" --top-k 5 混合檢索(向量 + 關鍵詞),返回帶引用的 chunk
weknora-ops kb list / kb show 知識庫列表與詳情
weknora-ops doc list <kb> 文檔列表及解析狀態
weknora-ops tagtree <kb> 層級標籤樹(可按子樹 tag id 過濾)

ask 在 README 中說明遵循 v5 線 session 流程;較舊服務端上 skill 會回退爲 search 再綜合。

入庫(Ingest)

weknora-ops doc upload、url、manual 分別用於上傳文件、抓取網頁、寫入手工知識條目。

破壞性操作

weknora-ops doc delete … --yes 刪除文檔;必須帶 --yes,並與 skill 層、API Key 能力共同構成門禁(見下節)。

README Status 節記錄:垂直切片包含 7 個讀動詞、3 個入庫動詞、刪除門禁與單元測試;曾在 DSH 0.2.1-rc.5(headless,DeepSeek provider)下對真實 WeKnora v3.1.3 做端到端 live test(含 status、kb list、search 等)。流式回答、agent-chat 與 MCP 端點模式在 roadmap(docs/DESIGN.md)中。

三層安全模型

信任被設計成結構約束,而非靠 prompt 說服 agent。

  1. Skill 禮儀(skills/dsh-weknora-ops/SKILL.md):讀操作不依賴額外授權;入庫僅在用戶明確提出時;刪除需在對話中明確確認。Skill 本身不授予權限,權限來自對話上下文。
  2. CLI 門禁:doc delete 無 --yes 則拒絕執行。
  3. 服務端強制:使用 workspace 級 API Key,能力爲 retrieve / chat / ingest;未授予 manage_kbs 的 key 無法造成破壞性變更,越權請求得到 403。思路與 dsh-super-agent 的准入控制一致。

安裝與啓用

全局安裝 CLI(README 原文命令):

npm i -g dsh-weknora-ops        # exposes the weknora-ops CLI

Node 引擎要求(package.json):^20.19.0 || >=22.0.0。

憑證:在 DSH 內優先用配置文件(agent shell 會 scrub 含 *KEY* 的環境變量);CI/運維仍可用環境變量。

mkdir -p ~/.config/weknora-ops && chmod 700 ~/.config/weknora-ops
cat > ~/.config/weknora-ops/config <<'EOF'   # workspace API key: WeKnora 設置 → API Keys, capabilities retrieve/chat/ingest
export WEKNORA_URL=http://127.0.0.1:8080
export WEKNORA_API_KEY=wk-…
EOF
chmod 600 ~/.config/weknora-ops/config

# smoke — health + auth probe
weknora-ops status

接入 DSH profile:應用倉庫中的 cordis.patch.yml(可參考 examples/profile.cordis.patch.yml),或將 skills/dsh-weknora-ops/ 放入 profile 的 skills 目錄。

典型用法

先做連通性與鑑權探測:

weknora-ops status

列出知識庫並檢索(示例參數來自 README 能力表):

weknora-ops kb list
weknora-ops search my-kb "部署檢查清單" --top-k 5
weknora-ops ask my-kb "合規約束裏對日誌保留的要求是什麼?"

查看文檔與標籤樹:

weknora-ops doc list my-kb
weknora-ops tagtree my-kb

入庫與刪除(刪除務必理解雙重門禁與 key 能力範圍):

weknora-ops doc upload my-kb ./policy.pdf
weknora-ops doc delete my-kb <doc-id> --yes

適用場景與注意

適合:已在跑 WeKnora、希望 DSH agent 在受控前提下寫入知識庫、維護標籤樹,並在需要時用 CLI 做帶引用的問答/檢索;可與官方只讀插件同時安裝。

注意:

  • 插件與 weknora-ops 以當前 DSH 進程權限運行;安裝前請自行審閱源碼與 MIT 許可證。
  • 破壞性能力依賴 API Key 能力集;生產環境應使用僅含 retrieve / chat / ingest 的 key,並配合 skill 與 --yes 門禁。
  • 中文說明見倉庫 README.zh-CN.md。

結尾

dsh-weknora-ops 把 WeKnora 的寫入與刪改治理接到 DSH,與官方只讀插件互補,並用三層模型約束 agent 行爲。進一步瞭解可訪問目錄頁 skillhub.cn/plugins/vicfei/dsh-weknora-ops 與 GitHub vicfei/dsh-weknora-ops。

羽毛球分组比赛记分
小程序二维码

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

小夜