需先装 Docker、Docker Compose 和 Git,并编辑 .env 配置模型等参数;知识图谱、对象存储、Langfuse 追踪要额外加 --profile 才会启动;用本地 Ollama 模型需先运行 ollama serve,并配置 OLLAMA_BASE_URL 和嵌入模型名;升级时只跑 docker compose up -d 会复用本地缓存镜像,导致 UI 版本与发布版本不一致。
WeKnora
Tencent活跃维护把原始文档变成可查询的 RAG、自主推理 Agent 和自维护 Wiki 的开源 LLM 知识平台,适合搭建企业知识库与智能问答。
Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.
git clone https://github.com/Tencent/WeKnora.git
cd WeKnora
cp .env.example .env
docker compose pull
docker compose up -dREADME 未说明具体显存或 GPU 型号要求;提供 Lite 单二进制模式,用 SQLite 加内存队列,适合本地或低资源、无外部依赖的场景,其余部署方式见安装指南。
腾讯开源的企业级 LLM 知识平台,把散落文档变成可检索的 RAG、能推理的 Agent 和自动维护的 Wiki
把原始文档变成可查询的 RAG、自主推理 Agent 和自维护 Wiki 的开源 LLM 知识平台,适合搭建企业知识库与智能问答。
核心能力
- 用混合检索加多模态解析做带引用的 RAG 问答
- Agent 支持多步推理、技能、沙箱与 MCP 工具
- 把文档整理成带知识图谱和回滚的 Wiki
- 跨会话长期记忆,检索分块可编辑、对比、回滚
- 29 家内置模型厂商,LLM、向量库、存储均可替换
容易踩的坑
- v0.9.0最新正式版2026-10-29 · 2026-10-29 06:59 UTC
What's Changed
- fix(docs): stabilize anchor navigation and link release topics by @lyingbug in https://github.com/Tencent/WeKnora/pull/4287
- feat(agent): persist human-in-the-loop prompts with a shared broker by @lyingbug in https://github.com/Tencent/WeKnora/pull/4250
- feat(search): add RRF controls in a tabbed settings popover by @lyingbug in https://github.com/Tencent/WeKnora/pull/4300
- docs(swagger): document the real request and response types by @lyingbug in https://github.com/Tencent/WeKnora/pull/4304
- feat(agent): add the built-in WeKnora assistant with an operation catalog by @lyingbug in https://github.com/Tencent/WeKnora/pull/4302
- feat(agent): let the WeKnora assistant read the bundled documentation by @lyingbug in https://github.com/Tencent/WeKnora/pull/4303
- fix(ui): compact resource list headers in Lite mode by @lyingbug in https://github.com/Tencent/WeKnora/pull/4316
- fix(agent): admit catalog operations only from knowledge API areas by @lyingbug in https://github.com/Tencent/WeKnora/pull/4317
- fix(agent): let the WeKnora assistant search without its own rerank model by @lyingbug in https://github.com/Tencent/WeKnora/pull/4315
- feat(frontend): open the WeKnora assistant from anywhere with page context by @lyingbug in https://github.com/Tencent/WeKnora/pull/4314
- feat(agent): open more workspace operations to the WeKnora assistant by @lyingbug in https://github.com/Tencent/WeKnora/pull/4318
- feat(agent): let the assistant delete and move documents in batches by @lyingbug in https://github.com/Tencent/WeKnora/pull/4319
- docs(site): add the model leaderboard page by @begoniezhao in https://github.com/Tencent/WeKnora/pull/4333
- feat(agent): let the assistant manage FAQ entries by @lyingbug in https://github.com/Tencent/WeKnora/pull/4327
- feat(assistant): side panel, access levels and role-aware operations by @lyingbug in https://github.com/Tencent/WeKnora/pull/4342
- feat(assistant): manage agents and skills, separate history, refresh pages by @lyingbug in https://github.com/Tencent/WeKnora/pull/4344
- fix(assistant): reject restored ordinary sessions by @hahahahahayesyeseys in https://github.com/Tencent/WeKnora/pull/4356
- feat(assistant): let the assistant manage knowledge bases by @lyingbug in https://github.com/Tencent/WeKnora/pull/4353
- refactor(image): turn the hard-coded image flow into configurable pipelines by @tayadwx in https://github.com/Tencent/WeKnora/pull/3746
- feat(datasource): deep-adapt Feishu/Lark sync with folder mirror, block parsing and embedded objects by @Greenplumwine in https://github.com/Tencent/WeKnora/pull/3497
- fix(im): cap IM callback bodies before any adapter reads them by @Tong-bit-art in https://github.com/Tencent/WeKnora/pull/4369
- fix(web-search): bound provider response bodies instead of buffering them whole by @Tong-bit-art in https://github.com/Tencent/WeKnora/pull/4370
- fix(mcp): avoid replaying tools after ambiguous call failures by @Guo-Yixin in https://github.com/Tencent/WeKnora/pull/4124
- fix(embedding): read the pool's first-error guard under its own mutex by @Tong-bit-art in https://github.com/Tencent/WeKnora/pull/4014
- fix(chat): persist failed quick-answer turns so errors survive refresh by @AstonKrss in https://github.com/Tencent/WeKnora/pull/4306
- fix(data-analysis): resolve workspace storage backends in quick answers by @kerthans in https://github.com/Tencent/WeKnora/pull/4214
- fix(mcp): separate SSE connection lifetime from request timeouts by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/4140
- fix(docparser): bound MinerU result packages and their expansion by @Tong-bit-art in https://github.com/Tencent/WeKnora/pull/4396
- fix(embed): hide host context in user messages by @LuckVd in https://github.com/Tencent/WeKnora/pull/4388
- fix(embed): send images when an OpenAI-compatible row declares them by @JSJ189 in https://github.com/Tencent/WeKnora/pull/4389
- fix(models/api): cap non-streaming prov
- v0.8.32026-10-14 · 2026-10-14 07:53 UTC
查看更新说明
What's Changed
- fix(website-docs): serve everything but the homepage from /docs/ by @lyingbug in https://github.com/Tencent/WeKnora/pull/3664
- test(website-docs): update integration test for the v0.8.2 header and release gallery by @lyingbug in https://github.com/Tencent/WeKnora/pull/3665
- fix(session): keep auto-generated titles plain text by @lyingbug in https://github.com/Tencent/WeKnora/pull/3633
- feat(models): add system admin model catalog console by @lyingbug in https://github.com/Tencent/WeKnora/pull/3662
- fix(ui): restore inner padding on form popups by @vinhchuquang in https://github.com/Tencent/WeKnora/pull/3673
- fix(browser): let shared-space agents drive the caller's local browser by @lyingbug in https://github.com/Tencent/WeKnora/pull/3670
- docs: restructure the English and Chinese READMEs by @lyingbug in https://github.com/Tencent/WeKnora/pull/3676
- docs(readme): website-matched design for all four READMEs by @lyingbug in https://github.com/Tencent/WeKnora/pull/3679
- fix(retriever/es): keep vectors and enabled state on CopyIndices by @lyingbug in https://github.com/Tencent/WeKnora/pull/3678
- fix(embed): warn at startup when no signing key is configured by @lyingbug in https://github.com/Tencent/WeKnora/pull/3680
- feat(docparser): support MinerU 4.0 V1 API for self-hosted MinerU by @lyingbug in https://github.com/Tencent/WeKnora/pull/3671
- fix(frontend): link docs to the public docs site instead of GitHub by @lyingbug in https://github.com/Tencent/WeKnora/pull/3674
- feat(retrieval): unify rerank across search APIs and expose diagnostics by @lyingbug in https://github.com/Tencent/WeKnora/pull/3675
- fix(desktop): pair the Lite browser against the local API listener by @nullptr-error in https://github.com/Tencent/WeKnora/pull/3677
- fix(rss): reject oversized responses instead of accepting truncated content by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3658
- docs: new intro video, with its source by @lyingbug in https://github.com/Tencent/WeKnora/pull/3684
- feat(lite): install and run skills on the host by @nullptr-error in https://github.com/Tencent/WeKnora/pull/3661
- docs(readme): surface agent tools in the overview and condense feature tables by @lyingbug in https://github.com/Tencent/WeKnora/pull/3688
- fix(retrieval): fix recall correctness, score scales, cost and agent tools by @lyingbug in https://github.com/Tencent/WeKnora/pull/3687
- feat(gallery): add an image gallery tab with schema-driven filters by @tayadwx in https://github.com/Tencent/WeKnora/pull/3694
- feat(gallery): rework the gallery toolbar, header tabs and image viewer by @lyingbug in https://github.com/Tencent/WeKnora/pull/3703
- feat(chat): open cited documents at the cited passage by @lyingbug in https://github.com/Tencent/WeKnora/pull/3700
- fix(knowledge): stop parses from getting stuck in processing or finalizing by @lyingbug in https://github.com/Tencent/WeKnora/pull/3696
- docs(readme): swap in the new intro video by @lyingbug in https://github.com/Tencent/WeKnora/pull/3685
- fix: harden agent tool execution, stream completion and LLM retries by @lyingbug in https://github.com/Tencent/WeKnora/pull/3706
- fix(docparser): make the MinerU parse timeouts configurable by @lyingbug in https://github.com/Tencent/WeKnora/pull/3707
- fix(weaviate): accept a class another worker created first by @po-et in https://github.com/Tencent/WeKnora/pull/3689
- fix(notion): abort incremental sync when resource discovery fails by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3682
- fix(feishu): stop Wiki pagination on repeated page tokens by @hahahahahayesyeseys in https://github.com/Tencent/WeKnora/pull/3645
- fix(agent): 合并相邻 assistant 消息时保留 tool_calls,避免孤儿 tool 消息导致整轮 400 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3574
- fix(files): accept canonical storage:// paths in bare provider services by @dzc-bit in https://github.com/Tencent/WeKnora/pull/3166
- fix(im):
- v0.8.22026-09-24 · 2026-09-24 06:43 UTC
查看更新说明
What's Changed
- feat(session): show owner badge for API sessions in sidebar by @FincherYuan in https://github.com/Tencent/WeKnora/pull/3024
- fix(agent): web_fetch 兼容 LLM 双重序列化的 items 参数 by @asmh1989 in https://github.com/Tencent/WeKnora/pull/3019
- feat(miniprogram): zh/en i18n, tab icons, and base library compatibility by @ouhaibing5 in https://github.com/Tencent/WeKnora/pull/3010
- fix: widen audit log drawer by @hiasky in https://github.com/Tencent/WeKnora/pull/3001
- feat(agent): unify sandbox tools and drop host preloaded skills by @lyingbug in https://github.com/Tencent/WeKnora/pull/3033
- fix(feishu): preserve images embedded in post messages by @Legimity in https://github.com/Tencent/WeKnora/pull/3031
- fix(message): log why chat history indexing was skipped by @linhongyu510 in https://github.com/Tencent/WeKnora/pull/3030
- feat(mcp): add per-tool enable toggle by @myysophia in https://github.com/Tencent/WeKnora/pull/2989
- feat(session): show in-progress status in the sidebar by @lyingbug in https://github.com/Tencent/WeKnora/pull/3038
- feat(system): add admin UI for creating users by @mdrkrg in https://github.com/Tencent/WeKnora/pull/3034
- fix(system): keep one-time create-user passwords and copy full account details by @lyingbug in https://github.com/Tencent/WeKnora/pull/3039
- fix(security): reject traversal in local prefixes, task IDs, and wiki sort by @lyingbug in https://github.com/Tencent/WeKnora/pull/3066
- fix(chat): keep OCR/caption text of scanned-page image hits in merge by @LuckVd in https://github.com/Tencent/WeKnora/pull/3064
- fix(initialization): pass stored ExtraConfig to model connection test by @LuckVd in https://github.com/Tencent/WeKnora/pull/3063
- fix(knowledge): keep long non-ASCII folder names valid UTF-8 by @MaxFreedomPollard in https://github.com/Tencent/WeKnora/pull/3056
- feat(datasource): keep the source document's last-modified time through ingestion by @po-et in https://github.com/Tencent/WeKnora/pull/3055
- fix(frontend): finish knowledge base tour without creating a knowledge base by @yushangcan in https://github.com/Tencent/WeKnora/pull/3050
- feat(sandbox): run sandboxed execs as root by default by @nullptr-error in https://github.com/Tencent/WeKnora/pull/3067
- fix(organization): 修正成员权限说明中编辑角色的共享知识库权限 by @WLH55 in https://github.com/Tencent/WeKnora/pull/3068
- feat(frontend): expose HTTP status on API responses via $httpStatus by @mdrkrg in https://github.com/Tencent/WeKnora/pull/3048
- refactor(system): extract reset-password popup into ResetPasswordDialog by @mdrkrg in https://github.com/Tencent/WeKnora/pull/3047
- fix: sanitize qdrant string payloads by @Roovelrz in https://github.com/Tencent/WeKnora/pull/2997
- fix: persist cleared IM knowledge bases by @linhongyu510 in https://github.com/Tencent/WeKnora/pull/3043
- fix(preview): stop routing legacy .doc/.ppt to the OOXML previewers by @dzc-bit in https://github.com/Tencent/WeKnora/pull/3041
- feat(mcp): support updating manual knowledge by @Jonesxq in https://github.com/Tencent/WeKnora/pull/2937
- fix: report embedding dimension mismatches by @Jonesxq in https://github.com/Tencent/WeKnora/pull/2919
- fix(wiki): treat rate-limit-shaped 403 responses as transient by @LuckVd in https://github.com/Tencent/WeKnora/pull/2933
- fix(ui): prevent invite registration form header overlap by @hiasky in https://github.com/Tencent/WeKnora/pull/2996
- fix(session): serve org-shared KB images through the message file proxy by @vicfei in https://github.com/Tencent/WeKnora/pull/3069
- fix(knowledge): confirm document deletion before reporting success by @lyingbug in https://github.com/Tencent/WeKnora/pull/3073
- fix(preview): lazy-load markdown images without dropping data URIs by @lyingbug in https://github.com/Tencent/WeKnora/pull/3075
- feat(integrations): add CLI setup page by @lyingbug in https://github.com/Tencent/WeKnora/pull/3081
- fix(wiki): keep folder names that look like page-type labels when
- v0.8.02026-09-03 · 2026-09-03 07:03 UTC
查看更新说明
What's Changed
- fix(tenant): clear stale home tenant after member removal by @jiahao6635 in https://github.com/Tencent/WeKnora/pull/2589
- Feat/issue 2401 auto tag by @Syt3s in https://github.com/Tencent/WeKnora/pull/2548
- fix(knowledge): harden auto-tagging and let it respect manual tags by @lyingbug in https://github.com/Tencent/WeKnora/pull/2595
- feat(auth): add self-service change password in user profile by @jiahao6635 in https://github.com/Tencent/WeKnora/pull/2591
- fix(auth): harden self-service change password after #2591 by @lyingbug in https://github.com/Tencent/WeKnora/pull/2596
- fix(query-understand): LLM 输出不可解析时应回退到原始查询输入 by @mdrkrg in https://github.com/Tencent/WeKnora/pull/2592
- docs: fix 登陆 typo to 登录 by @jiahao6635 in https://github.com/Tencent/WeKnora/pull/2598
- feat(files): add message-scoped proxy for shared-agent chat images by @lyingbug in https://github.com/Tencent/WeKnora/pull/2605
- fix(vlm): use max_completion_tokens for GPT-5 / o-series vision models by @renezander030 in https://github.com/Tencent/WeKnora/pull/2614
- fix: pptx/ppt attachment parsing fails — missing parser engine + markitdown extras by @putcn in https://github.com/Tencent/WeKnora/pull/2621
- fix(security): harden outbound URL SSRF protection by @lyingbug in https://github.com/Tencent/WeKnora/pull/2626
- feat: add Metaso web search provider by @hiasky in https://github.com/Tencent/WeKnora/pull/2625
- feat: 邀请链接在 invite_only 模式下改为登录后加入空间 by @asmh1989 in https://github.com/Tencent/WeKnora/pull/2627
- feat(invitation): add auto-accept switch for inviting registered users by @asmh1989 in https://github.com/Tencent/WeKnora/pull/2633
- fix(invitation): harden auto-accept follow-ups from code review by @lyingbug in https://github.com/Tencent/WeKnora/pull/2638
- fix(im): persist session mode configuration by @jacentsao in https://github.com/Tencent/WeKnora/pull/2629
- feat(agent): prefill default rerank model on agent creation by @mdrkrg in https://github.com/Tencent/WeKnora/pull/2631
- fix(frontend): dismiss stale card popover on folder navigation by @hiasky in https://github.com/Tencent/WeKnora/pull/2624
- fix(mcp): preserve omitted service update fields by @jay3cx in https://github.com/Tencent/WeKnora/pull/2622
- fix(test): use resolvable URLs in MCP service update test by @lyingbug in https://github.com/Tencent/WeKnora/pull/2640
- fix(cli): preserve agent update flags in retry_argv by @jiahao6635 in https://github.com/Tencent/WeKnora/pull/2599
- refactor(handler): extract shared searchResultFromMap by @mdrkrg in https://github.com/Tencent/WeKnora/pull/2610
- fix(config): 补齐 WEKNORA_TENANT_ENABLE_CROSS_TENANT_ACCESS 的 env 读取 by @asmh1989 in https://github.com/Tencent/WeKnora/pull/2594
- feat(yunzhijia): support thread sessions by @jacentsao in https://github.com/Tencent/WeKnora/pull/2630
- feat(sandbox) by @nullptr-error in https://github.com/Tencent/WeKnora/pull/2301
- fix(i18n): add common update success translations by @hanxiantao in https://github.com/Tencent/WeKnora/pull/2649
- feat(auth): add /auth/oidc/start endpoint for direct 302 OIDC login by @asmh1989 in https://github.com/Tencent/WeKnora/pull/2647
- feat(sandbox): 沙箱后端改为按空间配置,并补齐 E2B 模板与检测诊断 by @lyingbug in https://github.com/Tencent/WeKnora/pull/2651
- fix: 修复共享空间下拉列表无法滚动 by @WHUTcjh-2024 in https://github.com/Tencent/WeKnora/pull/2644
- fix(embedding): validate WeKnoraCloud response indexes by @pengpengyi92 in https://github.com/Tencent/WeKnora/pull/2646
- feat: add Exa WebSearch by @Syt3s in https://github.com/Tencent/WeKnora/pull/2617
- feat(sandbox): unify remote sandbox on E2B protocol with self-hosted support by @lyingbug in https://github.com/Tencent/WeKnora/pull/2655
- feat(knowledge): add document download action by @hanxiantao in https://github.com/Tencent/WeKnora/pull/2654
- feat(i18n): 前端默认语言支持经 DEFAULT_LOCALE 环境变量运行时配置 by @asmh1989 in https://github.com/Tencent/WeKnora/pull/2658
- fix(i18n): harden DEFAULT_LOCALE runtime
- v0.7.22026-08-07 · 2026-08-07 03:37 UTC
查看更新说明
What's Changed
- refactor(agent): consolidate model-handle codecs into internal/modelcontext by @lyingbug in https://github.com/Tencent/WeKnora/pull/2330
- refactor(auth,router): unify auth session context and split router by domain by @lyingbug in https://github.com/Tencent/WeKnora/pull/2331
- fix(knowledge): clean bound vector stores in batch delete by @BigFishDreamWater in https://github.com/Tencent/WeKnora/pull/2329
- fix: support string args for skill script execution by @koishi514-Z in https://github.com/Tencent/WeKnora/pull/2318
- fix(agent): keep batched wiki_read_page results within output budget by @lyingbug in https://github.com/Tencent/WeKnora/pull/2333
- fix(pipeline): 修复合并阶段输出顺序的不确定性 by @mdrkrg in https://github.com/Tencent/WeKnora/pull/2319
- fix(knowledge): reconcile wiki state when moving documents across KBs by @lyingbug in https://github.com/Tencent/WeKnora/pull/2335
- feat(wiki): page revision history with diff, revert, and manual editing by @lyingbug in https://github.com/Tencent/WeKnora/pull/2336
- style(wiki): polish revision drawer and sidebar to match session list UX by @lyingbug in https://github.com/Tencent/WeKnora/pull/2338
- feat(feishu): sync docx via blocks API with per-type downdrill by @voidkey in https://github.com/Tencent/WeKnora/pull/2334
- fix(i18n): remove duplicate 'members' key in organization locale objects by @hiasky in https://github.com/Tencent/WeKnora/pull/2305
- fix(migrations): renumber knowledge metadata index migration to 000076 by @lyingbug in https://github.com/Tencent/WeKnora/pull/2340
- fix(im): harden connection lifecycle across replicas by @lyingbug in https://github.com/Tencent/WeKnora/pull/2349
- Refine user settings menu and access shortcuts by @lyingbug in https://github.com/Tencent/WeKnora/pull/2368
- Remove redundant Wiki operation log by @lyingbug in https://github.com/Tencent/WeKnora/pull/2367
- feat(knowledge): configure upload tags and processing options by @lyingbug in https://github.com/Tencent/WeKnora/pull/2369
- fix: Remove SanitizeForDisplay from chunk handler responses by @mdrkrg in https://github.com/Tencent/WeKnora/pull/2323
- feat(knowledge): support editable chunks and retrieval metadata by @lyingbug in https://github.com/Tencent/WeKnora/pull/2370
- fix(mcp-server): correct SSE message route to prevent initialization … by @FincherYuan in https://github.com/Tencent/WeKnora/pull/2375
- fix(im): recover channels after leader lock loss by @March-77 in https://github.com/Tencent/WeKnora/pull/2365
- fix(knowledge): clear stale errors when reparse starts by @March-77 in https://github.com/Tencent/WeKnora/pull/2363
- docs: clarify scope-aware contributor validation by @March-77 in https://github.com/Tencent/WeKnora/pull/2366
- fix(frontend): distinguish main stages from postprocess tasks by @March-77 in https://github.com/Tencent/WeKnora/pull/2364
- fix(wiki): prevent finalizing stalls on enqueue failure by @BigFishDreamWater in https://github.com/Tencent/WeKnora/pull/2362
- fix(docparser): resolve remote images referenced by HTML img tags by @ochanism in https://github.com/Tencent/WeKnora/pull/2355
- fix(mcp-server): route diagnostics to stderr to fix stdio protocol crash by @annopick in https://github.com/Tencent/WeKnora/pull/2371
- fix(im): render resource:// images in IM channels (nginx /r/ + config guards) by @voidkey in https://github.com/Tencent/WeKnora/pull/2352
- fix(chat): prevent duplicate terminal answer events by @koishi514-Z in https://github.com/Tencent/WeKnora/pull/2353
- fix(docreader): restore optional XLSX header context by @WHUTcjh-2024 in https://github.com/Tencent/WeKnora/pull/2314
- fix: 在chunk overlap中保留更细的语义边界 by @ttommybot in https://github.com/Tencent/WeKnora/pull/2342
- [Bug] preserve web evidence when page fetches fail by @langcaiye in https://github.com/Tencent/WeKnora/pull/2309
- fix(knowledge): default custom metadata on create by @lyingbug in https://github.com/Tencent/WeKnora/pull/2379
- fix(
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Overview
WeKnora is an open-source, LLM-powered knowledge framework for enterprise document understanding, semantic retrieval and reasoning. It brings a team's documents together so they can be searched, reasoned over and kept up to date.
https://github.com/user-attachments/assets/de0e490a-e738-405e-bb3a-64b63edd7278
Use RAG to look things up, the agent for multi-step tasks, and the wiki to organize knowledge. All three work on the same knowledge bases.
The agent's toolbox. Skills installed from ClawHub / SkillHub / Git / ZIP run in session-persistent Docker / E2B / Cube sandboxes, with an interactive terminal and graphical desktop beside the chat. Through the BrowserSkill extension the agent operates the user's own Chrome or Edge, and external MCP services (OAuth included) can be connected and enabled tool by tool.
Beyond the three modes:
- Memory and curation: cross-session long-term memory keeps the profile, preferences and facts a user has confirmed. Folder uploads keep their directory tree, and retrieval chunks can be edited, diffed and rolled back.
- Data sources and formats: auto-sync from Feishu wiki / Feishu Drive / Confluence / GitLab / Tencent IMA / Notion / Yuque / DingTalk Docs / Seafile / RSS, with more on the way. 10+ document formats including PDF, Word, images, Excel and XMind; Office files are parsed in-process by anydoc.
- Channels and integrations: Q&A in WeCom, Feishu, Slack, Telegram and other IM apps; an embed widget for external websites; a built-in MCP Server for Cursor, Claude and other AI tools; scoped API keys with a principal model for programmatic access.
- Models: 29 built-in vendors with a generated model catalog, including OpenAI, DeepSeek, Qwen (Alibaba Cloud), Zhipu, Hunyuan, Gemini, MiniMax, NVIDIA, LiteLLM and Ollama.
- Permissions and operations: multi-workspace RBAC (four roles, per-resource ownership, per-workspace audit log), several storage instances per workspace, a runtime task-queue dashboard with worker-pool governance, and Langfuse tracing for agent steps, token usage and pipelines.
- Deployment: LLMs, vector databases and storage backends are all swappable. Deploy locally or on a private cloud and keep the data in your own environment.
Quick Start
Run with Docker Compose
Requires Docker, Docker Compose and 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
Then open http://localhost and follow the onboarding guide. A walkthrough with sample data is in the Quickstart.
[!TIP] To use a local Ollama model, run
ollama serve > /dev/null 2>&1 &first. For the Ollama embedding model name,OLLAMA_BASE_URL, and RAM notes, see Configuration.
| Service | URL |
|---|---|
| Web UI | http://localhost |
| Backend API | http://localhost:8080 |
| Langfuse Tracing | http://localhost:3000 |
Optional services
Add --profile flags to enable additional components; multiple profiles can be combined.
| Profile | Adds |
|---|---|
| (default) | Core services |
full | All features |
neo4j | Knowledge Graph (Neo4j) |
minio | Object Storage (MinIO) |
langfuse | Tracing (Langfuse) |
docker compose --profile neo4j --profile minio pull
docker compose --profile neo4j --profile minio up -d
docker compose down # Stop services
Upgrading
If you already have WeKnora running and downloaded a newer release:
# Set WEKNORA_VERSION in .env to the target release (e.g. 0.9.0), or keep latest
docker compose pull # Pull images matching WEKNORA_VERSION
docker compose up -d # Recreate containers with new images
[!NOTE]
docker compose up -dalone reuses locally cached images and may leave the UI version out of sync with the release you downloaded. Read the upgrade notes before upgrading. Deployments older than v0.8.2 should also read the v0.8.2 notes.
Other ways to deploy
| Option | When to use it |
|---|---|
| Docker Compose | The standard deployment above: all features, multiple services |
| Kubernetes (Helm) | Production clusters; the chart is in helm/ |
| Lite single binary | Local or low-resource use with no external dependencies (SQLite + in-memory queue); see Lite vs. standard |
| Desktop app | The Lite runtime with a GUI, login-free start and a macOS host sandbox; no installer is published yet, so build it from source |
All options, hardware requirements and deployment topologies: Installation guide.
[!WARNING] WeKnora ships with login authentication, but for production deployments we strongly recommend that you:
- deploy it in an internal / private network rather than on the public internet;
- avoid exposing the service directly to public networks, to prevent information leakage;
- configure proper firewall rules and access controls for the deployment environment;
- regularly update to the latest version for security patches and improvements.
What's New
v0.9.0 · 2026-10-29 · release notes
- WeKnora assistant: Ask about WeKnora releases, features and configuration, then work from the current page: create agents, schedule tasks and manage knowledge, acting as you within your permissions.
- Multi-agent collaboration: Delegate independent subtasks, follow progress and bring the results together.
- Automations: Run one-off or recurring tasks with execution history, results and approval notifications.
- Execution permissions: Read-only, confirm-before-change and automatic-write modes, with scoped session and automation grants.
- Sandboxes and background work: Optional per-user sandbox reuse, managed background shell jobs and skill rollout controls.
- Parsing, sync and retrieval: Configurable image pipelines, OCR preprocessing, deeper Feishu/Lark sync, Confluence PAT and retrieval improvements.
- Upgrade notes: Review database migrations, Feishu resync, the sandbox allocation gate and configuration changes.
v0.8.3 · 2026-10-14 · release notes
- Image gallery: browse document images and filter by source, caption, OCR and image attributes.
- Multimodal Embedding: support for multimodal embedding models that encode text and images into a shared vector space, including Tencent WeMM-Embedding and Qwen3-VL-Embedding, with opt-in image-vector retrieval and compatible image-aware reranking.
- Wiki graph: clearer group layouts and theme captions, with group focus, switching and return to the full graph.
- Source citations: navigate from an answer to the cited passage in the original document.
- Chat and tools: on-demand attachment reading without a sandbox, unread replies, @ mention search, Docker terminals, Lite host skills and MCP interoperability updates.
- Administration and integrations: platform user management, invitation-only signup mode, administrator model catalog, WeMM embeddings, TEI/Pinecone/Cohere reranking, Seafile and Traditional Chinese.
- Reliability: broad retrieval, parsing, datasource, Wiki, OAuth and CLI fixes. Review upgrade requirements for registration modes, empty tool lists, database migrations and reindexing.
v0.8.2 · 2026-09-24 · release notes
Agents can operate the browser on your computer, knowledge bases can be published to other AI tools over MCP, and a running conversation can be steered, forked or rewound.
- Local Browser (BrowserSkill): agents drive the user's own Chrome / Edge through the open-source BrowserSkill extension, with a live task preview, pause / resume and hand-off for logins and CAPTCHAs.
- Built-in MCP Server: per-workspace
/mcp/<endpoint_id>endpoints over Streamable HTTP, each with its own token, knowledge-base scope, rate limit and tool groups. The Pythonmcp-server/is deprecated. - Conversation control: append requirements to a running turn, fork from any earlier question, rewind in place with sandbox checkpoints, and pick reasoning effort per session. Generated files are collected in a new artifacts library.
- Sandbox: interactive terminal and graphical desktop; macOS Lite host sandbox with project folders; a sidebar Toolbox for skills, MCP services and the browser connection.
- Models: rebuilt model catalog (27 built-in vendors with generated context-window, max-output, reasoning and vision metadata). Agent retrieval tools are consolidated into
search_knowledge/read_document/list_documents. - Knowledge and platform: Confluence and DingTalk Docs data sources; Bocha and Serply web search; Japanese UI; per-channel IM reply language; whitelist-only outbound mode.
[!IMPORTANT] Breaking: DingTalk channels are Stream-only, and sandbox commands run as
root. See the upgrade notes.
v0.8.0 · release notes
- Skill sandbox runtime: session-persistent Docker / E2B / Cube backends with per-tenant network policy; the Local host-process backend is removed and Docker is opt-in.
- Tenant skill catalog: install from ClawHub / SkillHub / git / zip, with per-sandbox snapshots, live progress, file browse/edit, and personal and workspace env vars.
- Cross-session long-term memory: profile / preference / fact / task / interest, auto-extracted with user confirmation, plus
search_memory. - Parsing and sources: in-process anydoc office parser; GitLab and Tencent IMA data sources; XMind parsing.
- Ecosystem: official DeepSeek Harness plugin
@wxg-prc-cpg/dsh-weknora; LiteLLM; Exa and Metaso web search. - Chat: chat artifacts, question outline and timestamps; context compaction and provider prompt-cache markers.
- Security: OIDC JWKS verification, optional complex passwords, document auto-tagging, and broad sandbox/security hardening.
- v0.7.2 — Product documentation site; knowledge base folder tree; chunk editing with revision history; wiki page revisions; directly loadable file URLs (
resource_urls=public); Feishu Drive data source; batch tagging; MCP Server 1.1 (29 tools); AWS S3 default credential chain. - v0.7.1 — Yunzhijia IM; Volcengine rerank; Zhipu AI web search; platform-scoped API keys; per-KB activity audit; FAQ filtering, tagging and export; Langfuse OTLP tracing; one-click Markdown export.
- v0.7.0 — Scoped API keys and principal model; task-queue dashboard and worker-pool governance; multiple storage instances per workspace; temporary chat attachments;
@Skill / @MCPmentions; mid-conversation MCP OAuth; QQBot and Lark IM; Redis TLS;weknoraCLI v0.10. - v0.6.3 — Website embed widget & Integrations Center (secure-mode token exchange + rate limits); chat experience overhaul (citation popovers, RAG pipeline progress, streaming markdown); document multi-tag & batch reparse; Wiki folders & hierarchy navigation; RSS data source; MCP OAuth2; EPUB / MHTML parsing; agent model-readiness checks; model test debugger; session source filter; workspace deletion UI.
- v0.6.2 — Per-upload process configuration with upload-confirm dialog; document reparse with
process_config;weknoraCLI v0.9 (bundled Agent Skills,session stop, auth/profile harmonization); KB marquee multi-select; HNSW index for 1024-dim pgvector embeddings; chat resources store refactor; Langfuse-only tracing (Jaeger removed). - v0.6.1 — Document parsing trace timeline (Langfuse-style span tree with stage-by-stage progress + stop-parse); OpenSearch vector store driver; declarative built-in models via YAML; system admin & consolidated platform settings + audit log; new-user onboarding guide; settings UI redesign;
weknoraCLI v0.7 / v0.8 (agent-first wire contract, NDJSON,--dry-run); OpenDataLoader + PaddleOCR-VL parsers; MCP server multi-transport (stdio / SSE / HTTP); per-model thinking-mode config; Tencent LKEAP rerank + native Gemini embeddings + MiniMax-M3. - v0.6.0 — Workspace RBAC (4-tier role matrix
Owner/Admin/Contributor/Viewer+ per-KB ownership + per-workspace audit log), workspace member management & multi-workspace UX, self-service workspaces;weknoraCLI v0.4 GA withmcp serve; KB retrieval fan-out across vector stores; AES-256-GCM credential encryption + docreader gRPC TLS + Token; Zhipu embedder + Huawei OBS; server-side user preferences; Go 1.26.0. See Tenants & auth. - v0.5.2 — Wiki ingest scales to 40k-document KBs (task queue + DLQ); MCP human-in-the-loop tool approval; Anthropic / Apache Doris / Tencent VectorDB / KS3 / SearXNG backends; adaptive 3-tier chunking with live preview; global ⌘K command palette; Yuque connector + WeChat Mini Program;
weknoraCLI preview. - v0.5.1 — Knowledge-base batch management; workspace-wide IM channels overview; session search + user-scoped pinning; unified Model / Web Search / MCP settings cards; per-agent LLM timeout; desktop workspace switching.
- v0.5.0 — Wiki Mode GA — agents auto-generate structured, interlinked Markdown wiki pages with a knowledge graph; wiki browser + visual graph in the UI.
- v0.4.0 — WeKnora Cloud (hosted LLM + parsing); Chrome Extension; ClawHub Skill; WeChat IM; attachment processing; Azure OpenAI / Alibaba OSS; Notion connector; Baidu + Ollama web search; VectorStore management.
- v0.3.6 — ASR (audio); Feishu data-source auto-sync; OIDC; IM quote-reply context + thread-based sessions; document summarization; Tavily search; parallel tool calling; agent @mention scope restriction.
- v0.3.5 — Telegram / DingTalk / Mattermost IM; IM slash commands + QA queue; suggested questions; VLM auto-describe MCP tool images; Novita AI; channel tracking.
- v0.3.4 — WeCom / Feishu / Slack IM; multimodal image support; NVIDIA model API; Weaviate; AWS S3; AES-256-GCM API-key encryption; built-in MCP service; hybrid-search optimization;
final_answertool. - v0.3.3 — Parent-child chunking; KB pinning; fallback response; passage cleaning for rerank; storage auto-creation; Milvus.
- v0.3.2 — Knowledge Search entry; per-source parser & storage engine config; image rendering in local storage; document preview; Volcengine TOS; Mermaid rendering; batch session management; memory graph preview.
- v0.3.0 — Shared Space; Agent Skills + sandboxed execution; custom agents; Data Analyst agent; thinking mode; Bing / Google web search; API Key auth; Helm chart; Korean i18n; Qdrant.
- v0.2.0 — Agent Mode (ReACT); multi-type knowledge bases (FAQ + document); conversation strategy config; DuckDuckGo web search; MCP tool integration; new UI with agent mode switching; MQ async task management.
Full history: CHANGELOG.md.
Product Tour
Quick Q&A and smart reasoning
Two ways to ask. Quick Q&A answers from the knowledge base with RAG and cites the sources it used. In smart reasoning the agent plans multi-step work, searching, reading documents and calling tools and skills, and shows each step in the conversation. Docs →
Local browser
Operate the browser on your computer. Through Tencent's open-source BrowserSkill extension, the agent opens pages and fills in forms in your own Chrome or Edge, and hands over to you for logins and CAPTCHAs. Docs →
Skills and sandbox
Run skills and produce files. Docker, E2B and Cube backends are supported. Turns in the same session share one workspace, and generated files can be previewed and downloaded. Open the graphical desktop or interactive terminal beside the chat to follow each step and take over when needed. Docs →
Toolbox: MCP services and skills
Tools the agent can use. Connect external MCP services and choose, tool by tool, which are enabled and which calls need approval. Install skills from ClawHub, SkillHub, Git or ZIP, manage them per workspace, and reuse them across sandboxes. Docs →
Automatic wiki
Documents organized into a browsable wiki. With Wiki enabled, WeKnora extracts people, products and concepts from knowledge-base documents into pages with source citations, organized by directory. The knowledge graph shows how pages relate; pages can be edited directly and every change can be rolled back. Docs →
Observability
Tracing and runtime monitoring. Langfuse traces the reasoning, tool calls and token usage of each agent step. The document parsing timeline shows progress stage by stage, and the task-queue dashboard lists queued and failed tasks. Docs →
Architecture
A modular pipeline from document parsing, vectorization and retrieval to LLM inference, in which every component can be replaced or extended. It runs locally or on a private cloud, and the Web UI needs no setup to get started. More: Architecture overview · RAG pipeline · Extension points.
Features
| Area | Highlights |
|---|---|
| Q&A and agent | Quick Q&A answers from knowledge bases with citations; smart reasoning runs a ReAct agent over knowledge bases, web search, MCP tools, skills and the local browser. Steer, fork or rewind a running conversation, and keep long-term memory across sessions |
| Wiki | Agent-generated, interlinked wiki pages with a knowledge graph; in-browser editing, revision diff and rollback |
| Skills and sandbox | Skill catalog installed from ClawHub / SkillHub / Git / ZIP; session-persistent Docker / E2B / Cube sandboxes with network policy; terminal and graphical desktop beside the chat |
| Knowledge bases | FAQ, document and wiki bases; folder tree; chunk editing with revisions; per-upload parsing, chunking and multimodal settings; auto-tagging |
| Retrieval | Keyword + vector hybrid search, rerank, parent-child chunking and GraphRAG (Neo4j); end-to-end evaluation with recall and BLEU / ROUGE |
| Access and security | Workspace RBAC with four roles and an audit log; scoped API keys; OIDC; AES-256-GCM credential encryption; SSRF-safe outbound requests with a whitelist-only mode |
| Operations | Langfuse tracing for agent steps, tokens and pipelines; document parsing timeline; task-queue dashboard with worker pools; automatic migrations on upgrade |
Supported backends
| Component | Options |
|---|---|
| LLMs | 29 built-in vendors, including OpenAI / Azure OpenAI / Anthropic / DeepSeek / Qwen / Zhipu / Hunyuan / Doubao / Gemini / MiniMax / NVIDIA / SiliconFlow / OpenRouter / LiteLLM / Ollama |
| Embeddings | Ollama / BGE / GTE / Zhipu / OpenAI-compatible APIs |
| Vector databases | PostgreSQL (pgvector + ParadeDB) / Elasticsearch / OpenSearch / Milvus / Weaviate / Qdrant / Apache Doris / Tencent VectorDB |
| Object storage | Local / Tencent Cloud COS / MinIO / AWS S3 / Volcengine TOS / Alibaba Cloud OSS / Kingsoft Cloud KS3 / Huawei Cloud OBS |
| Document formats | PDF / Word / PPT / Excel / CSV / TXT / Markdown / HTML / EPUB / MHTML / JSON / XMind / images |
| Data sources | Feishu wiki / Feishu Drive / Lark / Confluence / GitLab / Tencent IMA / Notion / Yuque / DingTalk Docs / Seafile / RSS |
| IM channels | WeCom / Feishu / Lark / QQBot / Slack / Telegram / DingTalk / Mattermost / WeChat / Yunzhijia |
| Web search | DuckDuckGo / Bing / Google / Tavily / Baidu / Ollama / SearXNG / Keenable / Zhipu AI / Exa / Metaso / Bocha / Serply / SearchApi |
| Deployment | Docker Compose / Kubernetes (Helm) / Lite single binary / desktop app; offline and private-cloud installs; UI in Chinese, English, Japanese, Korean and Russian |
Clients and Integrations
| Client | What it does | |
|---|---|---|
CLI weknora | Agent-first command line for the full API, with a curated MCP tool surface and bundled Agent Skills | |
| Built-in MCP Server | Publishes knowledge bases to Cursor, Claude and other MCP clients over Streamable HTTP; the Python mcp-server/ is deprecated | |
| Local Browser (BrowserSkill) | Lets agents operate the user's own Chrome / Edge | |
| Chrome Extension | Select text, images, or entire pages in the browser and save them as knowledge entries with one click, without copy-paste or file upload | |
| WeChat Mini Program | Lightweight mobile client: configure API access, select knowledge bases, import URLs, and ask knowledge chat from WeChat | |
| ClawHub Skill | A WeKnora skill on ClawHub for document import, hybrid search and knowledge management via the REST API | |
| DeepSeek Harness plugin | Gives dsh coding agents four read-only tools: search, read document, ask and list knowledge bases | |
| Website Embed Widget | Publishes agents on external sites | |
| Go SDK | CRUD for knowledge bases, documents and sessions, plus SSE streaming Q&A | |
| WeChat Dialog Open Platform | Hosted Q&A built on WeKnora: upload knowledge and publish a Q&A service in WeChat without writing code |
Command-Line Interface
weknora is the official CLI for driving the API from a terminal or an AI agent. It is agent-first: every command emits a stable JSON envelope by default (with typed error codes mapped to exit codes), and --format text renders for humans. It also serves a curated MCP tool surface (weknora mcp serve) and ships bundled Agent Skills.
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"
For headless / CI use, set WEKNORA_API_KEY + WEKNORA_HOST and skip auth login; no credentials are written to disk. See cli/README.md for install + 5-minute quickstart and cli/AGENTS.md for the operational contract AI agents rely on.
Documentation
The full product documentation lives at weknora.weixin.qq.com/docs (in Chinese), organized as Getting Started → Architecture → Features → API → Clients → Development and covering ~360 API endpoints and ~150 environment variables.
| Start here | |
|---|---|
| Introduction | Capabilities overview |
| Installation | Docker Compose, Helm, Lite and desktop |
| Configuration | Environment variables and models |
| Troubleshooting FAQ | Common problems and fixes |
| API reference | REST API overview |
| Release notes | What changed in each release |
Development
If you need to frequently modify code, you don't need to rebuild Docker images every time. Use fast development mode:
make dev-start # Start infrastructure
make dev-app # Start backend (new terminal)
make dev-frontend # Start frontend (new terminal)
- Frontend modifications auto hot-reload (no restart needed)
- Backend modifications quick restart (5-10 seconds, supports Air hot-reload)
- No need to rebuild Docker images
- Supports IDE breakpoint debugging
See the Development guide for details.
The documentation site and product homepage are built from website-docs/. With Node.js 24, run cd website-docs && npm run setup && npm run build && npm run preview to preview both together; the unified static output serves the homepage at / and documentation at /docs/. See the directory's README for Nginx and Docker deployment.
Contributing
Welcome to submit Issues or Pull Requests.
- Process: Fork → Create branch → Commit changes → Open PR
- Standards: Format code with
gofmt, follow Conventional Commits (feat:/fix:/docs:/test:/refactor:)
For a focused PR, validate the changed scope first:
git fetch origin main
git diff --check origin/main...HEAD
golangci-lint run --new-from-rev=origin/main ./...
go test ./path/to/changed/package -count=1
Run gofmt on changed Go files before committing. For frontend changes, run the relevant tests from frontend/ and use npm run type-check when the change affects TypeScript or Vue components.
The full maintainer gate remains:
make fmt
make lint
make test
make fmt formats the entire Go repository, so run it only with a clean worktree and review the resulting diff. Some full-suite tests require local infrastructure or service configuration. If a full check fails for an unrelated baseline or environment reason, include the exact command and failure in the PR while still providing passing targeted tests for your change.
Contributors
Thanks to everyone who has contributed:
License
This project is licensed under the MIT License. You are free to use, modify, and distribute the code with proper attribution.