腾讯开源 WeKnora:2.37 万星的微信系 RAG 平台,文档变可查询知识库 + 自主 Agent + 自维护 Wiki
腾讯在 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
- 三合一:RAG + ReAct Agent + Wiki Mode
- 技术栈与架构:Go 后端 + 三进程
- 文档管线:25+ 解析器、OCR、三级切分
- 检索与重排:混合检索 + 多种向量库
- Agent 引擎:事件驱动管线 + MCP + 沙箱
- Wiki Mode:自维护知识库 + 知识图谱
- 与 Dify / RAGFlow / FastGPT 的差异
- 部署与选型建议
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_ANALYSIS 用 DuckDB——查询涉及数据分析时直接在检索管线里跑 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 也说明功能多、迭代快,生产使用要关注版本稳定性。
参考
- Tencent/WeKnora GitHub — 2.37 万星,MIT,Go 主语言
- WeKnora 官网 — 微信对话开放平台
- 前篇:OpenViking Agent 上下文数据库 — 同类知识基础设施对照
- 前篇:LLM Wiki 模式 — Wiki Mode 的理念源头
- 前篇:Langflow 可观测性 — RAG 平台的可观测性参考
作者: itech001 来源: 公众号:AI人工智能时代(the-ai-era) 网站: https://www.theaiera.top/ 关注每日最新AI新闻和技术博客,主页有更多的文章的AI 技术参考:https://www.theaiera.top
关注公众号,获取更多 AI 技术干货!