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。

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

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

小夜