GitHub 趋势 · 第 51 期
同一份仓库,官方给了四种许可口径
#RAG#知识库#腾讯
先说结论。Tencent/WeKnora 是个真在跑的项目:Go 写的、22,302 star、3,208 个 fork,发布节奏是 1 到 2 周一个版本,README 有四个语言版本。这个规模的东西,作者还愿意在仓库里给 AI agent 留一份操作契约(cli/AGENTS.md,33,014 字节,比给人看的 cli/README.md 还长 1.7 倍)。
但它有个很具体的小毛病:关于「这个项目到底用什么许可」,你在这份仓库里能读到四种不同答案。GitHub 说 Other,README 徽章说 MIT,LICENSE 正文说「MIT,但第三方组件除外」,而仓库里那份 Homebrew formula 写的是 Apache-2.0。
最后那个最值得看,因为它顺手暴露了另一件事:这个项目旁边的几条「捷径」,全都还没通。官方文档里写着「预编译二进制和 Homebrew 都还只是计划」,而仓库里那份 formula 指向的发布地址返回 404。
背景补一下:WeKnora 是腾讯出品的 LLM 知识平台,主页挂在 weknora.weixin.qq.com,仓库建于 2025-07-22,语言是 Go,默认分支 main,最近一次 push 是 2026-09-11(也就是昨天)。
自建一套 RAG 的痛点从来不在模型。解析、分块、检索、重排、权限、观测、IM 接入 —— 这七件事,单独做任何一件都不算难,难的是它们要串成一条链,还得让业务同学点得动。
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。
这三样各自是一个模块:Quick Q&A 是 RAG 快问;ReAct Agent 做多步推理,会自己调检索、MCP 工具、沙箱和网络搜索;Wiki Mode 让 Agent 把原始文档蒸馏成互相链接的 Markdown 知识库,带页面修订历史、行级 diff 和一键回滚。
还有个细节挺有意思:仓库有四个语言版本的 README —— 英文 32,828 字节、简体中文 30,515、日文 38,655、韩文 33,370。日文版是最长的,中文版是四个里最短的。除了英文 README,仓库里还有一份独立的简体中文 README;docs/ 目录里另外躺着一批中文文档(IM集成开发文档.md 81,957 字节、数据源导入开发文档.md 42,088、RBAC说明.md 16,620)。中文资料其实更厚,但入口在英文 README 里 —— 中文使用者反而要翻英文文档才找得到中文说明。
四种许可口径,逐一核对
| 出处 | 说法 |
|---|---|
| GitHub 仓库页 / REST API 的 license 字段 | Other(spdx_id = NOASSERTION) |
| README 顶部徽章 + 「📄 License」章节 | MIT |
| LICENSE 文件正文 | MIT,但第三方组件除外(which is licensed under different terms) |
| Formula/weknora-lite.rb | Apache-2.0 |
第一条不是作者写的,是平台解析的结果:那份 LICENSE 把项目正文和第三方清单合成了一个 158,420 字节的文件,GitHub 的识别器认不出来,于是给了个 Other。剩下三条都是官方自己写的,彼此对不上。
但这里要给一句公道话:这不是偷工减料,而是修得太细了。合在这个文件里的 THIRD_PARTY_NOTICES.md(4,139 字节)是我近期读过的同类文本里最讲究的一份,它明确写了这些事:
- ▪MPL-2.0 的组件(go-sql-driver/mysql v1.10.0、shoenig/go-m1cpu v0.1.6)连「对应源码 zip」一起放进 licenses/sources/,并注明「Modifications by WeKnora: none」;
- ▪区分 runtime 与 build-only:cbindgen(MPL-2.0)只在 Rust 构建时生成头文件,明写「Its code/tool executable is not copied into the runtime image」;
- ▪主动交代因为许可原因没引进来的东西:the upstream Go converter, liuzl/da, and GPL-licensed cedar-go code are not included.;
- ▪还给维护者留了一条自检命令 scripts/check-license-bundle.sh,负责校验版本钉子和打包输入。
所以我的结论是:没有发现任何非商用限制,项目主体确实是 MIT。但你要真的把它并入商业产品,请以 LICENSE + THIRD_PARTY_NOTICES.md + licenses/ 这三个文件为准 —— 别拿 README 徽章当结论,也别拿那份 formula 里的 Apache-2.0 当结论。
核心能力:它的「面」铺得有多宽
| 能力面 | 规模 | 具体 |
|---|---|---|
| 向量库 | 8 个 | pgvector / Elasticsearch / OpenSearch / Milvus / Weaviate / Qdrant / Apache Doris / Tencent VectorDB |
| 大模型供应商 | 17 个 | OpenAI / Azure OpenAI / Anthropic / DeepSeek / Qwen / Zhipu / Hunyuan / Doubao / Gemini / MiniMax / NVIDIA / Novita AI / SiliconFlow / OpenRouter / Requesty / LiteLLM / Ollama |
| IM 通道 | 10 个 | WeCom / Feishu / Lark / QQBot / Slack / Telegram / DingTalk / Mattermost / WeChat / Yunzhijia |
| 网络搜索 | 11 个 | DuckDuckGo / Bing / Google / Tavily / Baidu / Ollama / SearXNG / Keenable / Zhipu AI / Exa / Metaso |
| 知识来源 | 8 个 | Feishu wiki / Feishu Drive / Lark / GitLab / Tencent IMA / Notion / Yuque / RSS |
| 文档格式 | 13 类 | PDF / Word / Txt / Markdown / HTML / EPUB / MHTML / Images / CSV / Excel / PPT / JSON / XMind |
| 客户端入口 | 7 个 | Web UI / REST API / CLI / Chrome 扩展 / 网站嵌入 widget / 微信小程序 / MCP Server(官方 PyPI 包 tencent-weknora-mcp,29 个工具) |
客户端那一行值得单独说。除了上面七个,还有一个官方 DeepSeek Harness 插件 @wxg-prc-cpg/dsh-weknora,给编码 agent 装了四个只读工具:weknora_search(混合检索,逐字返回原文片段)、weknora_read_document(按顺序重组单篇文档的片段)、weknora_ask(走 RAG 或 ReAct 管道给带引用的答案)、weknora_list_knowledge_bases(列出知识库,让 agent 自己限定检索范围)。官方的解释是:The harness ships no retrieval, embedding or knowledge-base capability of its own. —— 这个 harness 自己没有检索能力,所以插件补给它。
平台侧还有一块是给运维看的:四级角色矩阵(Owner / Admin / Contributor / Viewer)加每个知识库的资源归属、每个空间的审计日志;API key 和 MCP 凭据用 AES-256-GCM 落库加密;任务队列按阶段分 worker pool(core / post-process / enrichment / maintenance,外加一个独立的 Wiki pool),并且每个模型有独立的后台并发闸。这些东西不写在首页上,但决定它能不能被运维接住。
上手:真正的前置条件不是 Docker 和 Git
README 的 Prerequisites 只有两行内容:Docker 与 Docker Compose、Git。安装也是四条命令:
git clone https://github.com/Tencent/WeKnora.git cd WeKnora cp .env.example .env # Edit .env as needed, see comments in the file docker compose pull # Pull the latest images docker compose up -d # Start core services
起来之后:Web UI 在 http://localhost,后端 API 在 http://localhost:8080。想用本地 Ollama,先跑 ollama serve > /dev/null 2>&1 &。
但真正的门槛在那条 cp 上。那份 .env.example 有 42,463 字节。官方产品文档站在 v0.7.2 的发布说明里自己交代了规模:六节、约 50 页、覆盖约 360 个 API 端点与约 150 个环境变量。也就是说「前置条件两条」这句话在预算上是不成立的 —— 前置条件里没写的那 150 个变量,才是你要花时间的地方。
可选组件按 profile 叠加,多个 profile 可以组合:
| Profile | 用途 | 命令 |
|---|---|---|
| (默认) | 核心服务 | docker compose pull && docker compose up -d |
| full | 全部功能 | docker compose --profile full pull && docker compose --profile full up -d |
| neo4j | 知识图谱(Neo4j) | docker compose --profile neo4j pull && docker compose --profile neo4j up -d |
| minio | 对象存储(MinIO) | docker compose --profile minio pull && docker compose --profile minio up -d |
| langfuse | 链路追踪(Langfuse) | docker compose --profile langfuse pull && docker compose --profile langfuse up -d |
要改代码的话,官方推荐的是快速开发模式,不用每次重建镜像:
# Start infrastructure make dev-start # Start backend (new terminal) make dev-app # Start frontend (new terminal) make dev-frontend
升级那一段有一条官方警告,值得逐字读:docker compose up -d alone reuses locally cached images and may leave the UI version out of sync with the release you downloaded. 翻译过来就是 —— 只跑一条 up 会复用本地旧镜像,跑起来的 UI 版本可能和你下载的发布版对不上。正确姿势是先钉版本号:
# Set WEKNORA_VERSION in .env to the target release (e.g. 0.7.0), or keep latest docker compose pull # Pull images matching WEKNORA_VERSION docker compose up -d # Recreate containers with new images
命令行那边另有一套入口,官方给它定的调子是「agent-first」:每条命令默认吐一个稳定的 JSON 信封(错误码映射到退出码),--format text 才给人看。
weknora profile add prod --host https://kb.example.com --use weknora auth login weknora kb list weknora link --kb my-knowledge-base # bind the current directory weknora doc upload notes.md weknora chat "summarise the design doc"
我的判断:适合谁、不适合谁、坑在哪
适合:需要私有化部署、且想把 RAG + Agent + 多租户权限 + IM 接入一次凑齐的中小团队;文档散在飞书 / Notion / 语雀 / GitLab 上、想收口成一套可检索资产的组织;以及想看清楚「企业级 RAG 到底要接多少东西」的工程师 —— 它把清单摊开了。
不适合:只想要一个「五十行代码能用起来」的向量检索库的人。它的最小形态是多服务 Docker Compose,不是一行 pip install。也不是想在单人笔记本上零依赖试水的人(见下面第三条)。
一句话:它是「全套方案」,不是「一个组件」。全套的代价就是配置面,而配置面恰好是它唯一没帮你省掉的东西。
- ▪① 装它只有一条路。当前最新发布是 v0.8.0(2026-09-03),assets 是空数组;往前数十五个 release,附件全是空的。没有二进制包,也没有压缩包,只有 Docker 镜像和源码两条线。所以升级务必显式设 WEKNORA_VERSION,否则很容易出现「代码是新的、跑的还是旧的」。
- ▪② 「三条捷径」都还没通。CLI 文档原话:Pre-built binaries, go install, and a Homebrew formula are planned to accompany a tagged release; until then, use the from-source build above. 也就是预编译二进制、go install、Homebrew 全都还只是「计划」,现在要自己编译,要求 Go 1.26+。
- ▪③ Lite 单机版:文档描述很香,formula 装不上。docs/LITE.md 把 Lite 描述成「单应用、零依赖(不依赖独立的数据库、消息队列等外部服务栈)」「默认仅本机访问」,对本地试水的人简直是量身定做。但仓库里那份 Formula/weknora-lite.rb 的版本号写的是 version "0.3.6-test",拼出来的下载地址指向 releases/download/v0.3.6-test/,而那个 release 在 API 里返回 404 Not Found,仓库 tag 列表里也只有 v0.3.6、没有那个带 -test 的。照这份 formula 是装不上的。
- ▪④ 安全基线要自己扛。README 的 Security Notice 写得很直白:Deploy WeKnora services in internal/private network environments rather than public internet —— 生产建议放内网,不要直接暴露到公网。而且登录鉴权是 v0.1.3 才加进来的功能。默认值不等于安全值,这句话在这个项目上格外适用。
- ▪⑤ issue 池比 star 数字更值得看。22,302 star,但未关闭 issue 有 737 个、watcher 只有 110、fork 3,208。star 是榜单给的,issue 是用户给的 —— 后一个数字才决定你提的问题多久有人回。
- ▪⑥ 想快,先读中文文档。docs/ 的 44 个条目里,信息密度最高的一批是中文:IM集成开发文档.md 81,957 字节、数据源导入开发文档.md 42,088、QA.md 34,710。但英文 README 的贡献指南指过去的又是这些中文文件名,所以绕一圈还是得先看英文 README。
仓库:Tencent/WeKnora(https://github.com/Tencent/WeKnora)
star:22,302(GitHub REST API 实测,2026-09-12)· fork 3,208 · watcher 110 · 未关闭 issue 737 · 仓库体积 162,591 KB
Trending 快照:周榜 +815 本周 · 榜内显示 22,310 star —— 与 API 实测差 8,两处并列写出,不取其一
语言 / 许可:Go · README 与其 License 章节声明 MIT;第三方组件各自许可,见 THIRD_PARTY_NOTICES.md 与 licenses/ 目录
最新发布:v0.8.0(2026-09-03,prerelease=false,assets 为空)· VERSION 文件:0.8.0 · tag 首页 30 个全为 v0.x · 近十五个发布跨 2026-03-19 至 2026-09-03
建仓 2025-07-22 · 最近 push 2026-09-11 · 默认分支 main
数据来源:GitHub Trending 官方页面 + GitHub REST API 实测(api.github.com 与 raw.githubusercontent.com);抓取时间:2026-09-12 03:30 (GMT+8)
本期是第 51 期。你如果在生产里跑过 WeKnora,或者跑过同类的东西,最费劲的是哪一步 —— 配置、解析质量,还是权限?评论区聊聊,我会挑几个具体问题做验证。
下期预告:榜单上的 agent skills 类仓库已经堆了一屏(obra/superpowers、mattpocock/skills、openai/skills、archify、diagram-design、humanizer、humanlayer/skills、jakubkrehel/skills 等等),单个写已经写过六个。下期优先做一期横向对比:能力边界、许可、安装方式、各自适配哪个 agent,做成一张能直接照着选的表。如果榜单出现明显更强的新面孔,就改做单项目精读。
#RAG#知识库#腾讯