ARTICLE · 981106
读完 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 处理:模型对任务做推理拆解,调用工具执行一步,观察结果,继续推理,直到完成。上面这个任务的执行链路:
检索内部知识库,召回产品资料和历史报告的片段; 调用网络搜索,获取最新行业数据; 通过 MCP 工具读取内部数据看板,拉本季度销售指标; 整合所有来源,生成带引用标注的报告。
工具层走 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,比较方便。
适用边界
团队/企业场景:合适,权限、审计、私有化都是按这个标准做的; 个人轻量笔记:偏重,它的价值在多人协作和治理,不在轻量记录。