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