腾讯开源的一站式 LLM 知识平台:把原始文档转化为可检索的 RAG、可自主推理的 Agent 与自维护的 Wiki,支撑企业知识库与智能问答。
Overview · Quick Start · What's New · Features · Clients · Docs · Development
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/5722b10d-d04d-49ed-a6cc-635a8c77d91f
1:52 · 1080p · No narration, English on-screen text
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:
| ONLINE WeChat Dialog Open Platform Manage knowledge bases online and connect Q&A to Official Accounts, Mini Programs and other WeChat scenarios. Open the platform → | CLOUD Tencent Cloud Lighthouse Deploy WeKnora from an application template and run it on your own cloud server. Deploy on Tencent Cloud → | SELF-HOSTED Your own environment Deploy with Docker or Kubernetes and configure models, storage and networking yourself. 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.
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 |
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
If you already have WeKnora running and downloaded a newer release:
# Set WEKNORA_VERSION in .env to the target release (e.g. 0.8.2), or keep latest
docker compose pull # Pull images matching WEKNORA_VERSION
docker compose up -d # Recreate containers with new images
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 moving from v0.8.0.
| 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.
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.
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.
/mcp/ endpoints over Streamable HTTP, each with its own token, knowledge-base scope, rate limit and tool groups. The Python mcp-server/ is deprecated.search_knowledge / read_document / list_documents.Breaking: DingTalk channels are Stream-only, and sandbox commands run as
root. See the upgrade notes.
search_memory.@wxg-prc-cpg/dsh-weknora; LiteLLM; Exa and Metaso web search.resource_urls=public); Feishu Drive data source; batch tagging; MCP Server 1.1 (29 tools); AWS S3 default credential chain.@Skill / @MCP mentions; mid-conversation MCP OAuth; QQBot and Lark IM; Redis TLS; weknora CLI v0.10.process_config; weknora CLI 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).weknora CLI 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.Owner / Admin / Contributor / Viewer + per-KB ownership + per-workspace audit log), workspace member management & multi-workspace UX, self-service workspaces; weknora CLI v0.4 GA with mcp 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.weknora CLI preview.final_answer tool.Full history: CHANGELOG.md.
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 →
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 →
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 →
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 →
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 →
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 →
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.
| 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 |
| Component | Options |
|---|---|
| LLMs | 27 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) / 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 / 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 |
| Deployment | Docker Compose / Kubernetes (Helm) / Lite single binary / desktop app; offline and private-cloud installs; UI in Chinese, English, Japanese, Korean and Russian |
| 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 |
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.
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 |
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)
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.
Welcome to submit Issues or Pull Requests.
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.
Thanks to everyone who has contributed:
This project is licensed under the MIT License. You are free to use, modify, and distribute the code with proper attribution.