夜雨聆风学习资料网

ARTICLE · 981106

读完 WeKnora 的文档,我大概明白它为什么能拿 20k Star

读完 WeKnora 的文档,我大概明白它为什么能拿 20k Star

企业知识库方案大多停在“文档入库 + 向量检索 + 大模型生成”这一步。WeKnora(腾讯开源,GitHub 20.7K+ Star,MIT 协议)在这个基础上补全了两块:多步推理和知识自动沉淀。本文按“检索 → 推理 → 沉淀 → 生产条件 → 部署”的顺序讲它的实现。

WeKnora 是腾讯开源的(MIT 协议),我最近把它的文档完整过了一遍。它有意思的地方在于:没有停在“文档 + 向量检索”这个基础形态,而是把检索、推理、知识沉淀三件事放进了同一个框架。下面按这个顺序讲。

一、RAG 问答:检索是怎么做的

文档上传后(支持 PDF、Word、Markdown、Excel、图片等十余种格式),走三步入库:解析提取内容 → 自适应三层分块 → 向量化存储。

提问时,检索走两条路并行:

  • BM25 关键词召回
    :基于词频匹配的传统算法,处理精确查询——错误码、接口名、产品型号这类内容;
  • 向量语义召回
    :把问题和文档都转成向量计算相似度,处理语义扩展——搜“登录失败”能召回写着“认证异常”的文档。

两路结果合并融合,可配置 Rerank 重排序提升精度,最终交给大模型生成答案。此外支持 GraphRAG 图谱增强检索作为补充。

生成侧有两个关键设计:

1. 答案溯源

答案标注来源文档,可回原文核对。这是对幻觉的直接约束。

2. 分块可治理

一般 RAG 系统检索不准时只能整篇重新解析。WeKnora 把分块做成和文档同级的对象:可定位、可编辑(如修复被切断的表格、纠正解析错误)、保存后自动重建索引,带版本历史和回滚。修检索质量问题从“重跑全流程”变成“改一个分块”。

二、Agent 推理:多步任务的执行方式

RAG 问答覆盖“知识库里有什么”,但这类需求它处理不了:“出一份本季度的竞品分析,要最新的市场数据,再对比内部销售情况。”

这句话没有单一知识库能直接回答。WeKnora 用 ReAct Agent 处理:模型对任务做推理拆解,调用工具执行一步,观察结果,继续推理,直到完成。上面这个任务的执行链路:

  1. 检索内部知识库,召回产品资料和历史报告的片段;
  2. 调用网络搜索,获取最新行业数据;
  3. 通过 MCP 工具读取内部数据看板,拉本季度销售指标;
  4. 整合所有来源,生成带引用标注的报告。

工具层走 MCP 协议,任何能封装成 MCP 工具的内部系统都可以接入。两个工程细节:

  • 人工审批节点
    :MCP 工具调用可以配置为需要人工确认后执行,用于生产系统写入等敏感操作;
  • 执行留痕
    :ReAct 循环的每一步、Token 消耗、工具调用都通过 Langfuse 记录 Trace,出问题可以回放定位。

三、Wiki 模式:知识怎么沉淀

前两部分解决“用”,这部分解决“养”。

机制:Agent 主动阅读原始文档,生成结构化、互相链接的 Markdown Wiki 页面,并构建可视化知识图谱。新文档入库后,相关 Wiki 页面随知识库持续更新。

工程指标:支持万级文档体量,靠任务队列 + 死信队列扛吞吐。

治理方式:Wiki 页面支持人工编辑、快照、行级 diff、一键回滚。AI 整理错了,人可以改回来,改动留痕。

对应的使用方式:知识库从“存文档的地方”变成持续维护的结构化知识本身。

四、进生产的条件

  • 组件可替换
    :模型兼容 OpenAI、DeepSeek、Qwen、智谱、Ollama 等厂商,可按知识库级别选择;向量库支持 pgvector、Milvus、Elasticsearch 等,解析与存储引擎按数据来源配置;
  • 私有化部署
    :Docker / K8s / Helm,凭据 AES-256-GCM 静态加密,服务间 gRPC TLS + Token,数据不出域;
  • 权限
    :四级角色(Owner / Admin / Contributor / Viewer),按知识库归属授权,每空间独立审计日志;
  • 数据接入
    :飞书、Notion、语雀、RSS 自动同步(增量/全量);
  • 触达
    :企业微信、飞书、钉钉、Slack 等 IM 直接问答,网站嵌入 Widget 对外发布。

五、部署

Docker Compose 方式的基础启动流程:

git clone https://github.com/Tencent/WeKnora.gitcd WeKnoracp .env.example .env   # 配置模型 API Key 等docker compose up -d

对于里面的模型配置建议使用ollama,比较方便。

适用边界

  • 团队/企业场景:合适,权限、审计、私有化都是按这个标准做的;
  • 个人轻量笔记:偏重,它的价值在多人协作和治理,不在轻量记录。

相关学习资料