返回博客列表

腾讯开源 WeKnora:2.37 万星的微信系 RAG 平台,文档变可查询知识库 + 自主 Agent + 自维护 Wiki

2026-09-15T14:30:00+08:00
WeKnora腾讯RAG知识库Agent开源

腾讯在 RAG/知识库赛道的旗舰开源项目 WeKnora,目前 2.37 万星、3300+ fork,月更版本,今天(9 月 15 日)还在提交。仓库地址:https://github.com/Tencent/WeKnora

它的定位一句话:"Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki."——把原始文档变成三样东西:可查询的 RAG、自主推理的 Agent、自维护的 Wiki。

背景很硬:WeKnora 是微信对话开放平台(chatbot.weixin.qq.com)的核心技术框架,官网挂在 weknora.weixin.qq.com,Docker 镜像发布在 wechatopenai/weknora-* 下——这是微信团队(WXG)的项目,不是腾讯 AI Lab。换句话说,它直接支撑着微信的企业级问答产品,是经过真实生产验证的。

这篇文章拆解它的三合一架构、技术实现,以及它在 Dify/RAGFlow/FastGPT 这片红海里的差异点。

本文 outline

  1. 三合一:RAG + ReAct Agent + Wiki Mode
  2. 技术栈与架构:Go 后端 + 三进程
  3. 文档管线:25+ 解析器、OCR、三级切分
  4. 检索与重排:混合检索 + 多种向量库
  5. Agent 引擎:事件驱动管线 + MCP + 沙箱
  6. Wiki Mode:自维护知识库 + 知识图谱
  7. 与 Dify / RAGFlow / FastGPT 的差异
  8. 部署与选型建议

1. 三合一:RAG + ReAct Agent + Wiki Mode

WeKnora 把知识平台的三种形态整合到一个产品里:

形态一:RAG 快速问答。文档入库 → 检索 → 生成,面向"查知识库"的轻量场景,带引用标注(citation popovers)。

形态二:ReAct Agent。不只是检索问答,而是能自主编排多步任务:检索知识库 + 调用 MCP 工具 + 使用租户技能目录(skill catalog)+ 在会话级沙箱里执行代码 + 网页搜索,Think → Act → Observe 循环。

形态三:Wiki Mode。Agent 把原始文档蒸馏成自维护的、互相链接的 Markdown Wiki,带交互式知识图谱、修订历史和一键回滚。

加上跨会话长期记忆(画像/偏好/事实/任务/兴趣)和树状文件夹视图(保留上传时的目录结构)。

这三合一的设计很有意思——它把"RAG 问答"(快速查)、"Agent 编排"(复杂任务)、"知识沉淀"(长期资产)放在同一个平台,对应知识工作的三个层次。这和我此前写过的 OpenViking(上下文数据库)、LLM Wiki(Karpathy 模式)有理念呼应,但 WeKnora 是把它们做进了同一个企业级产品。

2. 技术栈与架构:Go 后端 + 三进程

WeKnora 的技术栈在同类里比较特别——主后端用 Go(不是常见的 Python):

组件 技术 职责
app Go(gin + GORM + asynq) 主后端:REST API、RAG 检索、Agent 引擎、异步任务
frontend Vue 3 + TDesign Web UI,NGINX 反代 /api
docreader Python gRPC 文档解析微服务,25+ 解析器
postgres ParadeDB pg17 默认存储,内置 BM25 + pgvector
redis Asynq 队列 + SSE 流管理 异步任务、限流、并发门控
sandbox Docker 镜像 Agent 技能执行沙箱

架构分层清晰:Handler → Service → Repository → DB,依赖注入用 go.uber.org/dig,追踪用 OpenTelemetry + Langfuse。

一个值得注意的选择:默认存储用 ParadeDB pg17(Postgres 的 BM25 扩展),所以开箱即有"BM25 稀疏检索 + pgvector 稠密检索"的混合能力,不需要单独部署向量库。同时支持 Elasticsearch、OpenSearch、Milvus、Weaviate、Qdrant、Doris、腾讯 VectorDB、sqlite-vec(Lite 模式)——向量库和 LLM 一样可插拔

3. 文档管线:25+ 解析器、OCR、三级切分

文档摄入是 WeKnora 的强项(它有个独立的 docreader 解析微服务,25+ 解析器):

支持的格式(13+):PDF、Word、Txt、Markdown、HTML、MHTML、EPUB、图片、CSV、Excel、PPT、JSON、XMind(v0.8.0 新增),以及音频(mp3/wav/m4a/flac/ogg,带 ASR 转写)。视频明确不支持。

OCR:多模态 OCR + VLM 图片描述(OpenDataLoader 和 PaddleOCR-VL),图片也会渲染给 LLM 视觉。

三级自适应切分auto(默认,先分析文档特征)、heading(按标题)、heuristic(启发式)、legacy(递归)。默认 chunk 512 字符、overlap 80(约 15%)。父子切分(parent 4096 / child 384)推荐给 10 页以上文档——先粗粒度定位再细粒度取内容,这是提升长文档 RAG 效果的关键技巧。

摄入走异步任务队列(Asynq + Redis),6 个 worker 池(核心 8、后处理 2、富化 12、维护 4、共享 6、Wiki 8),支持 MD5 去重、批量重解析、每个上传可覆盖 process_config。官方声称 Wiki 摄入可扩展到 4 万文档的知识库。

4. 检索与重排:混合检索 + 多种向量库

检索是混合检索:BM25 稀疏 + 稠密向量 + GraphRAG + 父子切分,多维度索引。

重排支持多家:火山引擎 rerank、腾讯 LKEAP rerank 等,重排前有 passage 清洗。

可选知识图谱:Neo4j(Docker compose neo4j profile),每个文档自动抽取实体/关系,聊天时参与检索。

QA/检索的完整事件管线:

QUERY_UNDERSTAND → CHUNK_SEARCH_PARALLEL → CHUNK_RERANK → WEB_FETCH
→ CHUNK_MERGE → FILTER_TOP_K → DATA_ANALYSIS(DuckDB) → INTO_CHAT_MESSAGE
→ CHAT_COMPLETION_STREAM

注意 DATA_ANALYSISDuckDB——查询涉及数据分析时直接在检索管线里跑 SQL 分析,这是 RAG 平台里少见的能力(面向"表里有多少行超过阈值"这类问题)。

5. Agent 引擎:事件驱动管线 + MCP + 沙箱

Agent 能力是 v0.8.0 的重头:

  • ReAct 引擎:think → act → observe,自主编排多步任务
  • MCP 工具集成:支持 OAuth2(含会话中途 OAuth 授权)、@Skill/@MCP 提及语法
  • 租户技能目录:从 ClawHub/SkillHub/git/zip 安装技能
  • 会话级沙箱:Docker/E2B/Cube 三种运行时,会话内持久
  • 网页搜索:10+ 搜索供应商(DuckDuckGo、Bing、Google、Tavily、百度、SearXNG、Exa 等)
  • SSE 流式:带断线重连/恢复
  • IM 渠道:企业微信、飞书、钉钉、QQ、Slack、Telegram、Mattermost、微信等 10 个渠道——这是它最独特的差异点之一,RAG 平台直接接 IM,对企业场景价值很大

18+ LLM 供应商:OpenAI、Azure、Anthropic Claude、DeepSeek、Qwen、智谱、混元(腾讯自家)、豆包、Gemini、MiniMax、NVIDIA、SiliconFlow、OpenRouter、LiteLLM(v0.8.0)、Ollama。

6. Wiki Mode:自维护知识库 + 知识图谱

Wiki Mode 是 WeKnora 在同类产品里独有的功能(Dify/RAGFlow/FastGPT 都没有):

  • Agent 把原始文档蒸馏成互相链接的 Markdown Wiki
  • 交互式知识图谱可视化
  • 修订历史 + 一键回滚
  • 基于"对话开放平台"生产实践

这个功能和 Karpathy 的 LLM Wiki 模式高度同源(让 Agent 增量维护知识库),但 WeKnora 把它做成了企业级功能,带版本控制和多租户。这说明"LLM Wiki"这个理念已经从个人工具走向企业平台——值得注意的行业信号。

7. 与 Dify / RAGFlow / FastGPT 的差异

维度 WeKnora Dify RAGFlow FastGPT
后端 Go Python Python Node/TS
文档解析深度 25+ 解析器、OCR、父子切分 深(DeepDoc)
Agent 编排 ReAct + MCP + 沙箱 强(工作流)
Wiki Mode ✅ 独有
IM 集成 10 渠道(企微/飞书等) 部分 部分 部分
向量库 8+ 可插拔 多种 多种 多种
多租户 RBAC 部分

一句话差异:WeKnora 在文档理解深度上接近 RAGFlow/QAnything(独立解析服务 + OCR + 父子切分),同时有 Dify 级的 Agent 编排(ReAct + MCP + 沙箱),加上独有的 Wiki Mode 和深度的 IM 集成。它比 FastGPT 重、比 Dify 更"检索/摄入痴迷"。

注意:没有官方跨平台 benchmark 对比表,以上是特性定位分析。

8. 部署与选型建议

部署方式(很全):

  • Docker Compose(默认推荐,docker compose up -d 即用)
  • Kubernetes(Helm chart)
  • 裸机(systemd units)
  • macOS(Homebrew)
  • Lite 模式DB_DRIVER=sqlite + 内嵌 sqlite-vec,不需要 Redis,单二进制带内嵌前端——轻量部署的亮点
  • 桌面应用(Wails v2)
  • WeKnora Cloud(托管版)

安全:AES-256-GCM 静态加密、SSRF 防护、gRPC TLS、沙箱隔离、多租户 RBAC。许可 MIT(带第三方声明)。

选型建议

  • 需要深度文档理解 + 企业级知识库 → WeKnora 或 RAGFlow
  • 需要IM 渠道集成(企微/飞书/钉钉)→ WeKnora 是差异最明显的
  • 需要 Wiki Mode 长期知识沉淀 → WeKnora 独此一家
  • 需要轻量快速部署 → WeKnora Lite 模式很友好
  • 已经在用 Dify 的工作流编排 → 迁移成本需评估,两者 Agent 模型不同

一个提醒:WeKnora 是"重"平台(Go + Redis + 多进程),单机小场景可以走 Lite 模式,但完整形态需要一定运维投入。它的 637 个 open issues 也说明功能多、迭代快,生产使用要关注版本稳定性。

参考


作者: itech001 来源: 公众号:AI人工智能时代(the-ai-era) 网站: https://www.theaiera.top/ 关注每日最新AI新闻和技术博客,主页有更多的文章的AI 技术参考:https://www.theaiera.top

关注公众号,获取更多 AI 技术干货!

分享给朋友