前言¶
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。
- Skill 禮儀(
skills/dsh-weknora-ops/SKILL.md):讀操作不依賴額外授權;入庫僅在用戶明確提出時;刪除需在對話中明確確認。Skill 本身不授予權限,權限來自對話上下文。 - CLI 門禁:
doc delete無--yes則拒絕執行。 - 服務端強制:使用 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。