zilan README

The project's README from github.com/lxcshine/zilan. As one markdown file: README.md.

Zilan 知澜

Where knowledge converges into waves — bring every document to life

Minimalist aesthetics × Deep parsing × Autonomous reasoning — an intelligent knowledge hub

License Version Deployment Design Language

| English | 简体中文 |

Overview • Highlights • Architecture • Feature Overview • Getting Started • Docs • Developer Guide

💡 Zilan — Where Knowledge Converges: a Minimalist Knowledge Hub Unifying RAG, Agent Reasoning, and Auto-Wiki

📌 Overview

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:

On 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.

✨ Highlights

🎨 Minimalist Design Language · An Interface Built for Focus

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

📄 Deep Document Parsing · Read Every PDF Properly

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

🕸️ GraphRAG-Enhanced Retrieval

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.

🧠 Memory & Knowledge Distillation

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.

🗂️ Four Structured Memory Modules (Soul / User / Memory / Agent)

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:

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.

🧠 Context Management · IMA-Grade Five-Layer Intelligent Architecture

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:

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)

🔐 Independent Brand · Independent Protocol

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.

📱 Interface Showcase

💬 Intelligent Q&A Conversation
Intelligent Q&A Conversation
📖 Wiki Browser
Wiki Browser
🕸️ Wiki Knowledge Graph
Wiki Knowledge Graph
🤖 Agent Mode · Tool Call Process
Agent Mode Tool Call Process
⚙️ Conversation Settings
Conversation Settings
🔭 Observability · Langfuse Tracing
Observability Langfuse Tracing

🖥️ Real Product Screenshots

💬 New Chat
New Chat
📚 Knowledge Base
Knowledge Base
📄 Documents
Documents
🤖 Agent
Agent
🧠 My Memory
My Memory

🏗️ Architecture

zilan-architecture

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.

🧩 Feature Overview

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

zilan (lxcshine/zilan)

Searching Database…

200 ·GitHub
What is this?Zilan is an LLM-powered knowledge management and Q&A platform that unifies RAG quick Q&A, ReAct agent reasoning, and auto-generated Wiki knowledge distillation into one minimalist knowledge hub.
Is this a hosted web app or a library I import into code?It is a self-hosted, modular web application (backend in Go) where LLM providers, vector databases, and storage backends are all swappable components behind a browser UI.
How do I deploy Zilan?The project is meant for local or private-cloud deployment with full data sovereignty, with a 'zero-barrier' Web UI handling onboarding once it's running; it ships with a Docker Compose setup.
Which data sources and LLM providers does it connect to?It ingests from Feishu, Notion, Yuque, and RSS feeds, integrates with 20+ LLM providers and about a dozen IM channels, and uses Neo4j for the knowledge graph plus pgvector for memory vectors.
Does the deep document parser always succeed on tricky PDFs?Not always — low-scoring parses are automatically retried with a heavier engine, and documents that still fail after retries get queued for human review instead of silently failing.
Can I see and delete what Zilan remembers about me?Yes, a dedicated My Memory page lets each user browse, edit, and delete every stored memory, or pause memory extraction entirely; the system is built to be GDPR-compliant.
What is GraphRAG-enhanced retrieval?Entities and relations are extracted into Neo4j at ingest time to build a knowledge graph; at query time, community summaries give a global view while local subgraph retrieval adds neighborhood detail, fused with BM25/dense vector recall via RRF for better multi-hop answers.
How does the three-layer memory system work?L1 is the working memory of the current conversation, L2 is a vectorized summary of recent sessions, and L3 is long-term memory (profile, fact triples, to-dos) organized into four modules — Soul, User, Memory, and Agent — injected into the system prompt by a relevance score.
What is Wiki Mode?The agent auto-distills high-value conversations (favorited or heavily followed-up) into structured Wiki pages, which stay linked back to the originating chat session.
Which languages does the UI support?Memory management and the UI are available in four languages: Simplified Chinese, English, Russian, and Korean.
Creator
lxcshine
Size
16 MB
Stars
200
Age
1mo
Commits · 90 Days