The project's README from github.com/lxcshine/zilan. As one markdown file: README.md.
Where knowledge converges into waves — bring every document to life
Minimalist aesthetics × Deep parsing × Autonomous reasoning — an intelligent knowledge hub
| English | 简体中文 |
Overview • Highlights • Architecture • Feature Overview • Getting Started • Docs • Developer Guide
Zilan (知澜) is an LLM-powered knowledge management and intelligent Q&A platform with a minimalist product experience that unifies RAG quick Q&A, ReAct agent reasoning, and auto-generated Wiki knowledge distillation.
Zilan is a thorough re-imagination built on a battle-tested open-source knowledge framework, carrying product genes entirely its own:
semantic similarity × time decay × (1 + log(access count)); long-term memory is further structured into four semantic modules — Soul / User / Memory / Agent (persona directives, user profile, memory stream, distilled skills), each with its own view on the My Memory page where users can view, edit, and delete everything the AI remembers — GDPR-compliant by designaud=zilan), webhook signature (X-Zilan-Signature), and embed SDK (zilan-widget.js) — zero upstream tracesOn top of that, Zilan inherits engineering capabilities proven through large-scale production use: multi-source ingestion (Feishu / Notion / Yuque / RSS, and growing), 20+ LLM provider integrations, a dozen IM channels, website embed widgets, a 4-tier RBAC role matrix with workspace audit logs, AES-256-GCM credential encryption at rest, full-stack Langfuse observability plus a runtime task-queue governance dashboard, and a fully self-hostable modular architecture — LLMs, vector databases, and storage backends are all swappable, keeping data sovereignty entirely yours.
| Principle | Details |
|---|---|
| Dark monochrome brand | Brand color stays in the #333 family; interaction states shift luminance only — no flashy gradients, no saturated clashes |
| Large radii × light shadows | A global radius system (starting at 8/10/12px); cards and chat bubbles use feather-light or no shadows |
| Pure solid backgrounds | Pages return to solid colors (light #fafafa / dark #181818) — no textures, no decorative animations |
| Centered login | A single vertical focal point of brand mark + form; every login-irrelevant element removed |
| Symmetric chat bubbles | User-side dark, assistant-side light-gray symmetric rounded bubbles with inline citations and reasoning chains |
| Responsive | Consistent desktop / tablet / mobile experience; dark mode follows the system |
| Capability | Details |
|---|---|
| Table extraction | Detects table boundaries and restores them as Markdown tables, preserving row/column semantics |
| Formula recognition | Extracts mathematical formulas and converts them to LaTeX for fine-grained retrieval in academic and technical docs |
| Dual-column awareness | Detects two-/multi-column layouts and restores the correct reading order |
| Auto routing | Picks light or heavy parsing engines by file size and content profile, balancing throughput and quality |
| Quality scoring & retry | Parse results are auto-scored; short or low-scoring content is retried with a heavier engine |
| Human review queue | Documents that exhaust retries enter a review queue for human-in-the-loop closure |
Entities and relations are extracted into Neo4j at ingest time to build a knowledge graph; at query time, community summaries provide the global view while local subgraph retrieval supplies neighborhood detail — fused with BM25 / dense vector recall via RRF, markedly improving answers to multi-hop and cross-document aggregation questions.
Toward a more personal, context-aware knowledge assistant, Zilan is building a three-layer memory architecture:
Supporting mechanics: memory is extracted asynchronously after each session via the Asynq task queue (fact triples / to-dos / emotional feedback); injection scores each memory as score = semantic similarity × time decay × (1 + log(access count)) and loads the Top-K into the system prompt; high-value conversations (favorited or heavily followed-up) auto-distill into Wiki pages linked back to the source session.
The dedicated My Memory page makes long-term memory fully transparent and controllable:
All operations are isolated per user and available in four languages (zh-CN / en-US / ru-RU / ko-KR) — GDPR / privacy compliant by design.
Beyond a flat fact list, long-term memory is organized into four semantic modules — so the assistant not only remembers facts, but also knows who it should be, who you are, and how to work best with you:
| Module | What it holds | What you see |
|---|---|---|
| Soul | Read-only global persona + your style directives ("call me Zhang Gong", "answer in bullet points") | Persona card + directive list; directives are auto-extracted from chat and injected into every answer |
| User | Stable attributes about you (identity / role / preferences) | Profile card with grouped sections, a completeness meter, and drill-down into the memory stream |
| Memory | The full memory stream: all facts, to-dos, feedback, plus L2 session summaries | The original category-filtered list (as above) |
| Agent | Distilled skills — reusable know-how learned from your feedback | Skill cards + a feedback wall showing which feedback has been upgraded into a skill |
How it works:
soul, skill) are extracted alongside the existing ones; a skill is only produced from explicit feedback/instructions (confidence ≥ 0.7) to avoid hallucinated "tips"Zero schema change: the modules are a code-level mapping over the existing memory_facts table, so all existing memory management (edit / delete / clear / switch) applies unchanged.
Zilan completely rethinks how conversation context is organized, moving beyond a naive sliding window to a precise token budget + five-layer context architecture, so every answer spends its budget where it matters:
tiktoken (OpenAI), qwen (Tongyi Qianwen), and glm (Zhipu GLM) tokenizers with calibration factors; no more character-count guessworkSummary: Map-Reduce incremental summarization, sticky turns (decisions/numbers/deadlines/favorites) permanently preserved, and auto alias compression for long entity names (e.g. "Tencent Cloud Vector DB" → "TCVDB")Enabled globally via config/config.yaml, and customizable per tenant:
conversation:
context_manager:
max_tokens: 0 # 0 = resolve the model's window automatically
compression_strategy: "smart" # "sliding_window" (default) or "smart" (five-layer)
recent_message_count: 0 # 0 = use the system default recent rounds
summarize_threshold: 0 # 0 = 3x the recent window (deep fetch for summarization)
Product name, UI marks, browser titles, storage keys, JWT audience, webhook signature header, and embed SDK are unified under the Zilan namespace — a fully self-owned product identity.
💬 Intelligent Q&A Conversation![]() |
|
📖 Wiki Browser![]() |
🕸️ Wiki Knowledge Graph![]() |
🤖 Agent Mode · Tool Call Process![]() |
⚙️ Conversation Settings![]() |
🔭 Observability · Langfuse Tracing![]() |
💬 New Chat![]() |
📚 Knowledge Base![]() |
📄 Documents![]() |
🤖 Agent![]() |
🧠 My Memory![]() |

Fully modular pipeline from document parsing, vectorization, and retrieval to LLM inference — every component is swappable and extensible. Supports local / private cloud deployment with full data sovereignty and a zero-barrier Web UI for quick onboarding.
Intelligent Conversation
| Capability | Details |
|---|---|
| Intelligent Reasoning | ReACT progressive multi-step reasoning, autonomously orchestrating knowledge retrieval, MCP tools, and web search |
| Quick Q&A | RAG-based Q&A over knowledge bases for fast and accurate answers |
| Wiki Mode | Agent-driven auto-generation of structured, interlinked markdown Wiki pages from raw documents |
| Tool Calling | Built-in tools, MCP tools (incl. OAuth2 remote services, mid-conversation OAuth), web search; @Skill / @MCP mentions to scope the agent runtime per turn |
| Conversation Strategy | Online Prompt editing, retrieval threshold tuning, multi-turn context awareness, per-agent citation output toggle |
| Suggested Questions | Auto-generated question suggestions and after-answer follow-ups based on knowledge base content |
| Temporary Attachments | Session-scoped image / document uploads with async parsing for one-off Q&A, with a combined image + attachment limit |
| Citations & RAG Progress | Inline citation popovers and a references drawer (web / KB source distinction), shared markdown rendering, and stage-by-stage RAG pipeline progress in chat |
| Session Management | Filter and group sidebar sessions by source (Web / IM / Embed), with inline session-title rename |
| Memory & Personalization | Three-layer memory architecture (see Highlights): async fact extraction, scored recall injection, and a dedicated My Memory page structured into four modules (Soul / User / Memory / Agent) for browsing / editing / deleting memories with a global memory switch |
Knowledge Management
| Capability | Details |
|---|---|
| Knowledge Base Types | FAQ / Document / Wiki with folder import, URL import, multi-tag management, and online entry |
| Deep Parsing Pipeline | PDF table extraction / formula recognition / dual-column awareness / auto routing / quality-scored retry / human review queue |
| Per-Upload Process Config | Override parser, chunking, multimodal (VLM / ASR), graph extraction, and question generation per upload batch via upload-confirm dialog or process_config API; reparse with new settings |
| Batch Reparse | Re-queue parsing for multiple documents at once with optional per-batch process_config |
| Data Source Import | Auto-sync from Feishu / Notion / Yuque / RSS feeds (more data sources coming soon); incremental and full sync |
| Document Formats | PDF / Word / Txt / Markdown / HTML / EPUB / MHTML / Images / CSV / Excel / PPT / JSON |
| Retrieval Strategies | BM25 sparse / Dense retrieval / GraphRAG (community summary + local subgraph) / parent-child chunking / HNSW-accelerated pgvector (1024-dim) / multi-dimensional indexing |
| Batch Selection | Marquee drag-select multiple documents in the KB list for batch operations |
| E2E Testing | Full-pipeline visualization with recall hit rate, BLEU / ROUGE metric evaluation |
Integrations & Extensions
| Capability | Details |
|---|---|
| LLMs | OpenAI / Azure OpenAI / Anthropic (Claude) / DeepSeek / Qwen (Alibaba Cloud) / Zhipu / Hunyuan / Doubao (Volcengine) / Gemini / MiniMax / NVIDIA / Novita AI / SiliconFlow / OpenRouter / Requesty / Ollama |
| Embeddings | Ollama / BGE / GTE / Zhipu / OpenAI-compatible APIs |
| Vector DBs | PostgreSQL (pgvector) / Elasticsearch / OpenSearch / Milvus / Weaviate / Qdrant / Apache Doris / Tencent VectorDB |
| Object Storage | Local / Tencent COS / Volcengine TOS / MinIO / AWS S3 / Alibaba Cloud OSS / Kingsoft Cloud KS3 / Huawei Cloud OBS; multiple storage instances per workspace with per-KB binding and a default instance |
| IM Channels | WeCom / Feishu / Lark (Feishu International) / QQBot / Slack / Telegram / DingTalk / Mattermost / WeChat / Yunzhijia |
| Website Embed | Publish agents to any site via zilan-widget.js with domain allowlists, rate limits, and secure-mode token exchange |
| Web Search | DuckDuckGo / Bing / Google / Tavily / Baidu / Ollama / SearXNG / Keenable / Zhipu AI |
| API Integration | Scoped API keys (capability-level grants + per-KB restriction + throttled last-used tracking) with an API integration playground; MCP OAuth and embed sessions isolated per principal |
Platform
| Capability | Details |
|---|---|
| Deployment | Local / Docker / Kubernetes (Helm) with private and offline support |
| UI | Web UI / RESTful API / Website Embed Widget; the Zilan minimalist design language covers the whole journey |
| Access Control | Workspace RBAC with 4-tier role matrix (Owner / Admin / Contributor / Viewer), per-KB resource ownership, per-workspace audit log, invite-only workspaces, tenantless provisioning & gated self-service workspace creation, admin password reset (session revocation), cross-workspace superuser, scoped API keys |
| Security | AES-256-GCM at-rest encryption for API keys and MCP / data-source cre |