WeKnora

module
v0.8.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2026 License: Apache-2.0, MIT

README

Website Docs Release License Stars
WeChat Dialog Open Platform Chrome Extension ClawHub Skill

English · 简体中文 · 日本語 · 한국어

Overview · Quick Start · What's New · Features · Clients · Docs · Development

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/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:

  • 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


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 ↓

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.8.3), or keep latest
docker compose pull     # Pull images matching WEKNORA_VERSION
docker compose up -d    # Recreate containers with new images

[!NOTE] docker compose up -d alone 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.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 Python mcp-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.
Earlier releases (v0.2.0 – v0.7.2)
  • 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 / @MCP mentions; mid-conversation MCP OAuth; QQBot and Lark IM; Redis TLS; weknora CLI 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; 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).
  • 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; 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.
  • 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; 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.
  • 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; weknora CLI 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_answer tool.
  • 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 →

Local browser

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 →

Skills and sandbox

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 →

Automatic wiki

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 →

Observability

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) / 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
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:)
Validating your change

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:

Contributors

License

This project is licensed under the MIT License. You are free to use, modify, and distribute the code with proper attribution.

Directories

Path Synopsis
cli module
client module
cmd
desktop command
download/duckdb command
milvus-migrate command
milvus-migrate 将旧版 Milvus Collection 复制为支持中英文 BM25 的新 Collection。
milvus-migrate 将旧版 Milvus Collection 复制为支持中英文 BM25 的新 Collection。
server command
Bootstrap-time hooks that run after the DI container is built but before the HTTP server starts listening.
Bootstrap-time hooks that run after the DI container is built but before the HTTP server starts listening.
docreader
client
Package client provides a docreader gRPC client and the shared TLS / token authentication helpers used by both the standalone Go SDK in this package and the internal docparser wrapper.
Package client provides a docreader gRPC client and the shared TLS / token authentication helpers used by both the standalone Go SDK in this package and the internal docparser wrapper.
Package docs Code generated by swaggo/swag.
Package docs Code generated by swaggo/swag.
internal
agent/approval
Package approval implements human-in-the-loop gating for dangerous MCP tool calls (issue #1173).
Package approval implements human-in-the-loop gating for dangerous MCP tool calls (issue #1173).
agent/compaction
Package compaction keeps an agent turn inside the model's context window by replacing older conversation with a structured summary.
Package compaction keeps an agent turn inside the model's context window by replacing older conversation with a structured summary.
agent/skills
Package skills provides Agent Skills functionality following Claude's Progressive Disclosure pattern.
Package skills provides Agent Skills functionality following Claude's Progressive Disclosure pattern.
agent/token
Package token provides token estimation for LLM context window management.
Package token provides token estimation for LLM context window management.
agent/tools
Package tools — capability requirements for built-in agent tools.
Package tools — capability requirements for built-in agent tools.
application/access
Package access resolves resource permissions independently of HTTP routing.
Package access resolves resource permissions independently of HTTP routing.
application/attachment
Package attachment owns session-authorized attachment reads.
Package attachment owns session-authorized attachment reads.
application/repository
Package repository persists sandbox backend configuration.
Package repository persists sandbox backend configuration.
application/repository/retriever/elasticsearch/v7
Package v7 implements the Elasticsearch v7 retriever engine repository It provides functionality for storing and retrieving embeddings using Elasticsearch v7 The repository supports both single and batch operations for saving and deleting embeddings It also supports retrieving embeddings using different retrieval methods The repository is used to store and retrieve embeddings for different tasks It is used to store and retrieve embeddings for different tasks
Package v7 implements the Elasticsearch v7 retriever engine repository It provides functionality for storing and retrieving embeddings using Elasticsearch v7 The repository supports both single and batch operations for saving and deleting embeddings It also supports retrieving embeddings using different retrieval methods The repository is used to store and retrieve embeddings for different tasks It is used to store and retrieve embeddings for different tasks
application/repository/retriever/elasticsearch/v8
Package v8 implements retrieval against its configured vector backend.
Package v8 implements retrieval against its configured vector backend.
application/repository/retriever/milvus
Package milvus implements the Milvus retrieve engine, including multilingual BM25.
Package milvus implements the Milvus retrieve engine, including multilingual BM25.
application/repository/retriever/opensearch
Package opensearch implements the RetrieveEngineRepository interface for OpenSearch k-NN native vector search.
Package opensearch implements the RetrieveEngineRepository interface for OpenSearch k-NN native vector search.
application/repository/retriever/postgres
Package postgres implements retrieval against its configured vector backend.
Package postgres implements retrieval against its configured vector backend.
application/repository/retriever/qdrant
Package qdrant implements vector retrieval and metadata updates in Qdrant.
Package qdrant implements vector retrieval and metadata updates in Qdrant.
application/repository/retriever/sqlite
Package sqlite implements local retrieval with SQLite FTS and vectors.
Package sqlite implements local retrieval with SQLite FTS and vectors.
application/repository/retriever/tencentvectordb
Package tencentvectordb implements retrieval against its configured vector backend.
Package tencentvectordb implements retrieval against its configured vector backend.
application/repository/retriever/weaviate
Package weaviate implements retrieval and metadata updates in Weaviate.
Package weaviate implements retrieval and metadata updates in Weaviate.
application/service
Package service - artifact collector.
Package service - artifact collector.
application/service/memory
Package memory implements cross-session long-term memory: what the system remembers about one principal inside one workspace, independently of any single chat session.
Package memory implements cross-session long-term memory: what the system remembers about one principal inside one workspace, independently of any single chat session.
browserskill
Package browserskill connects authenticated users to an unmodified BrowserSkill daemon.
Package browserskill connects authenticated users to an unmodified BrowserSkill daemon.
common/redislock
Package redislock provides token-owned Redis locks with atomic renewal and release.
Package redislock provides token-owned Redis locks with atomic renewal and release.
config
Package config loads WeKnora runtime configuration.
Package config loads WeKnora runtime configuration.
container
Package container implements dependency injection container setup Provides centralized configuration for services, repositories, and handlers This package is responsible for wiring up all dependencies and ensuring proper lifecycle management
Package container implements dependency injection container setup Provides centralized configuration for services, repositories, and handlers This package is responsible for wiring up all dependencies and ensuring proper lifecycle management
datasource/connector/confluence
Package confluence imports Confluence Server/Data Center and Cloud spaces as Markdown.
Package confluence imports Confluence Server/Data Center and Cloud spaces as Markdown.
datasource/connector/dingtalk
Package dingtalk implements the DingTalk document data source connector.
Package dingtalk implements the DingTalk document data source connector.
datasource/connector/feishu/core
Package feishu implements the Feishu (飞书/Lark) data source connector for WeKnora.
Package feishu implements the Feishu (飞书/Lark) data source connector for WeKnora.
datasource/connector/ima
Package ima implements the WeKnora data source connector for Tencent IMA (ima.qq.com), syncing documents and files out of IMA knowledge bases via the /openapi/wiki/v1 OpenAPI.
Package ima implements the WeKnora data source connector for Tencent IMA (ima.qq.com), syncing documents and files out of IMA knowledge bases via the /openapi/wiki/v1 OpenAPI.
datasource/connector/notion
Package notion implements the Notion data source connector for WeKnora.
Package notion implements the Notion data source connector for WeKnora.
datasource/connector/rss
Package rss implements the RSS/Atom data source connector for WeKnora.
Package rss implements the RSS/Atom data source connector for WeKnora.
datasource/connector/seafile
Package seafile implements the WeKnora data source connector for Seafile Server (community edition 10.0.1, api2).
Package seafile implements the WeKnora data source connector for Seafile Server (community edition 10.0.1, api2).
datasource/connector/yuque
Package yuque implements the Yuque (语雀) data source connector for WeKnora.
Package yuque implements the Yuque (语雀) data source connector for WeKnora.
embedpolicy
Package embedpolicy separates browser framing policy from API transport origins.
Package embedpolicy separates browser framing policy from API transport origins.
errors
Package errors: parse stage error codes.
Package errors: parse stage error codes.
filetransport
Package filetransport streams already-authorized files.
Package filetransport streams already-authorized files.
handler
Package handler — chunker_debug.go exposes a read-only preview endpoint that runs the adaptive chunker on supplied text without touching the DB or generating embeddings.
Package handler — chunker_debug.go exposes a read-only preview endpoint that runs the adaptive chunker on supplied text without touching the DB or generating embeddings.
handler/dto
Package dto holds response shapes for handler responses that need to differ from the persisted GORM model — most notably, response types that must NOT carry secret fields.
Package dto holds response shapes for handler responses that need to differ from the persisted GORM model — most notably, response types that must NOT carry secret fields.
handler/session
Package session provides RFB (VNC) client-stream parsing for the sandbox desktop relay.
Package session provides RFB (VNC) client-stream parsing for the sandbox desktop relay.
im
im/feishu
Package feishu implements the Feishu (飞书) IM adapter for WeKnora, and with it the Lark adapter: Feishu and Lark are the same product on two isolated clouds (open.feishu.cn and open.larksuite.com) sharing one API surface, so a single implementation serves both.
Package feishu implements the Feishu (飞书) IM adapter for WeKnora, and with it the Lark adapter: Feishu and Lark are the same product on two isolated clouds (open.feishu.cn and open.larksuite.com) sharing one API surface, so a single implementation serves both.
im/wechat
Adapter implements im.Adapter and im.FileDownloader for WeChat personal accounts via the Tencent iLink Bot API.
Adapter implements im.Adapter and im.FileDownloader for WeChat personal accounts via the Tencent iLink Bot API.
im/wecom
WeCom Intelligent Bot long connection client.
WeCom Intelligent Bot long connection client.
infrastructure/chunker
Package chunker - header_tracker.go implements context-preserving header tracking for document chunking, ported from docreader/splitter/header_hook.py.
Package chunker - header_tracker.go implements context-preserving header tracking for document chunking, ported from docreader/splitter/header_hook.py.
infrastructure/docparser
Package docparser turns uploaded files and URLs into Markdown plus the images they contain, which is the input the chunking and multimodal stages downstream expect.
Package docparser turns uploaded files and URLs into Markdown plus the images they contain, which is the input the chunking and multimodal stages downstream expect.
infrastructure/docparser/anydoc
Package anydoc converts office documents to Markdown inside the Go process, without the Python docreader service.
Package anydoc converts office documents to Markdown inside the Go process, without the Python docreader service.
infrastructure/web_fetch
Package web_fetch provides a public URL content fetcher with SSRF protection.
Package web_fetch provides a public URL content fetcher with SSRF protection.
ipclass
Package ipclass categorises IP addresses for outbound-request policy.
Package ipclass categorises IP addresses for outbound-request policy.
localsandbox
Package localsandbox runs untrusted commands on the user's own machine under OS-enforced restrictions.
Package localsandbox runs untrusted commands on the user's own machine under OS-enforced restrictions.
localsandbox/adapter
Package adapter connects the local sandbox to the agent's existing capability interfaces.
Package adapter connects the local sandbox to the agent's existing capability interfaces.
localsandbox/core
Package core holds the platform-neutral sandbox contract: policy, path checks, workspace identity, and denial classification.
Package core holds the platform-neutral sandbox contract: policy, path checks, workspace identity, and denial classification.
localsandbox/seatbelt
Package seatbelt implements the sandbox backend for macOS on top of /usr/bin/sandbox-exec.
Package seatbelt implements the sandbox backend for macOS on top of /usr/bin/sandbox-exec.
localsandbox/skilltree
Package skilltree manages Lite's on-disk skill install tree:
Package skilltree manages Lite's on-disk skill install tree:
localsandbox/winhost
Package winhost is the Windows sandbox backend.
Package winhost is the Windows sandbox backend.
mcp
mcpserver
Package mcpserver hosts WeKnora's own MCP server surface: the Streamable HTTP endpoint that external MCP clients (Claude Desktop, Cursor, VS Code Copilot, ...) connect to.
Package mcpserver hosts WeKnora's own MCP server surface: the Streamable HTTP endpoint that external MCP clients (Claude Desktop, Cursor, VS Code Copilot, ...) connect to.
middleware
Package middleware: authentication for browser WebSocket upgrades.
Package middleware: authentication for browser WebSocket upgrades.
middleware/asynqdl
Package asynqdl provides an asynq middleware that records every task whose retry budget is exhausted into the generic task_dead_letters table.
Package asynqdl provides an asynq middleware that records every task whose retry budget is exhausted into the generic task_dead_letters table.
modelcontext
citations.go owns the public-citation surface of the model context: the system protocol prompt, expansion of private <ref/> handles into canonical <kb/> / <web/> tags, re-compaction of canonical tags replayed from history, and the stream expander that keeps partial tags off the wire.
citations.go owns the public-citation surface of the model context: the system protocol prompt, expansion of private <ref/> handles into canonical <kb/> / <web/> tags, re-compaction of canonical tags replayed from history, and the stream expander that keeps partial tags off the wire.
models
Package models defines shared, credential-free model metadata.
Package models defines shared, credential-free model metadata.
models/api
Package api holds the protocol-neutral request model shared by every wire protocol implementation (OpenAI Chat Completions, OpenAI Responses, Anthropic Messages, Google Generative AI, Ollama) plus the helpers those implementations share: SSE reading, the SSRF-safe transport, streaming tool-call assembly, prompt-cache bookkeeping and usage logging.
Package api holds the protocol-neutral request model shared by every wire protocol implementation (OpenAI Chat Completions, OpenAI Responses, Anthropic Messages, Google Generative AI, Ollama) plus the helpers those implementations share: SSE reading, the SSRF-safe transport, streaming tool-call assembly, prompt-cache bookkeeping and usage logging.
models/api/anthropicmessages
Package anthropicmessages implements the Anthropic Messages wire protocol (https://docs.anthropic.com/en/api/messages).
Package anthropicmessages implements the Anthropic Messages wire protocol (https://docs.anthropic.com/en/api/messages).
models/api/arkembeddings
Package arkembeddings implements Volcengine Ark's multimodal embedding shape: an input array of typed parts answering a single `data` object.
Package arkembeddings implements Volcengine Ark's multimodal embedding shape: an input array of typed parts answering a single `data` object.
models/api/cohererank
Package cohererank implements the rerank shape Cohere defined and almost every other vendor copied: POST {base}/rerank with {model, query, documents} answering {results: [{index, relevance_score, document}]}.
Package cohererank implements the rerank shape Cohere defined and almost every other vendor copied: POST {base}/rerank with {model, query, documents} answering {results: [{index, relevance_score, document}]}.
models/api/dashscopeembeddings
Package dashscopeembeddings implements Alibaba Model Studio's native multimodal embedding shape: input.contents, parameters.dimension, and results under output.embeddings.
Package dashscopeembeddings implements Alibaba Model Studio's native multimodal embedding shape: input.contents, parameters.dimension, and results under output.embeddings.
models/api/dashscoperank
Package dashscoperank implements Alibaba Model Studio's native text-rerank shape: the same fields as the Cohere dialect, wrapped in input/parameters and answered under output.
Package dashscoperank implements Alibaba Model Studio's native text-rerank shape: the same fields as the Cohere dialect, wrapped in input/parameters and answered under output.
models/api/googleembeddings
Package googleembeddings implements Gemini's batchEmbedContents: one POST carrying a request per text, answering embeddings[].values in order.
Package googleembeddings implements Gemini's batchEmbedContents: one POST carrying a request per text, answering embeddings[].values in order.
models/api/googlegenai
Package googlegenai implements the native Google Gemini generateContent wire protocol (https://ai.google.dev/api/generate-content).
Package googlegenai implements the native Google Gemini generateContent wire protocol (https://ai.google.dev/api/generate-content).
models/api/nimrerank
Package nimrerank implements NVIDIA NIM's retrieval reranking shape: a query object, a passages array, and rankings carrying a logit.
Package nimrerank implements NVIDIA NIM's retrieval reranking shape: a query object, a passages array, and rankings carrying a logit.
models/api/openaichataudio
Package openaichataudio implements speech recognition served through the chat completions endpoint: one user message whose only content part is {"type": "input_audio", "input_audio": {"data": "data:<mime>;base64,..."}}, answered by an assistant message whose content is the transcript.
Package openaichataudio implements speech recognition served through the chat completions endpoint: one user message whose only content part is {"type": "input_audio", "input_audio": {"data": "data:<mime>;base64,..."}}, answered by an assistant message whose content is the transcript.
models/api/openaicompletions
Package openaicompletions implements the OpenAI Chat Completions wire protocol.
Package openaicompletions implements the OpenAI Chat Completions wire protocol.
models/api/openaiembeddings
Package openaiembeddings implements the embedding shape OpenAI defined and every compatible gateway copied: POST {base}/embeddings with {model, input} answering {data: [{embedding, index}]}.
Package openaiembeddings implements the embedding shape OpenAI defined and every compatible gateway copied: POST {base}/embeddings with {model, input} answering {data: [{embedding, index}]}.
models/api/openairesponses
Package openairesponses implements the OpenAI Responses wire protocol (POST /responses).
Package openairesponses implements the OpenAI Responses wire protocol (POST /responses).
models/api/openaitranscriptions
Package openaitranscriptions implements the speech-to-text shape OpenAI defined and the compatible servers copied: a multipart POST to {base}/audio/transcriptions carrying file and model, answering {text}, or {text, segments} when response_format is verbose_json.
Package openaitranscriptions implements the speech-to-text shape OpenAI defined and the compatible servers copied: a multipart POST to {base}/audio/transcriptions carrying file and model, answering {text}, or {text, segments} when response_format is verbose_json.
models/api/pineconerank
Package pineconerank implements Pinecone Inference's standalone rerank API.
Package pineconerank implements Pinecone Inference's standalone rerank API.
models/api/teirank
Package teirank implements the native Text Embeddings Inference rerank protocol.
Package teirank implements the native Text Embeddings Inference rerank protocol.
models/api/tencentlkeap
Package tencentlkeap implements Tencent RunRerank through its official SDK.
Package tencentlkeap implements Tencent RunRerank through its official SDK.
models/api/volcengineknowledge
Package volcengineknowledge implements Volcengine Knowledge Service rerank through its official SDK.
Package volcengineknowledge implements Volcengine Knowledge Service rerank through its official SDK.
models/catalog
Package catalog loads and queries model metadata.
Package catalog loads and queries model metadata.
models/chat
Package chat exposes the Chat interface used by the application layer and builds the right protocol client for a configured model.
Package chat exposes the Chat interface used by the application layer and builds the right protocol client for a configured model.
models/imageprep
Package imageprep turns stored image bytes into an image a model will take: converted to a format the vendor documents and shrunk to its size limit.
Package imageprep turns stored image bytes into an image a model will take: converted to a format the vendor documents and shrunk to its size limit.
models/internal/configcopy
Package configcopy copies exported configuration data and immutable function values.
Package configcopy copies exported configuration data and immutable function values.
models/limiter
Package limiter provides a distributed, per-key concurrency governor for outbound model-provider calls.
Package limiter provides a distributed, per-key concurrency governor for outbound model-provider calls.
models/providers
Package providers registers Alibaba Cloud Model Studio (Bailian / DashScope) through its OpenAI-compatible mode.
Package providers registers Alibaba Cloud Model Studio (Bailian / DashScope) through its OpenAI-compatible mode.
models/rerank
Package rerank adapts rerank protocols to application batching and score semantics.
Package rerank adapts rerank protocols to application batching and score semantics.
models/runtime
Package runtime resolves one model's effective settings and assembles its authenticated endpoint.
Package runtime resolves one model's effective settings and assembles its authenticated endpoint.
ratelimit
Package ratelimit provides a Redis-backed sliding-window rate limiter with a local in-memory fallback when Redis is unavailable (Lite / single-instance).
Package ratelimit provides a Redis-backed sliding-window rate limiter with a local in-memory fallback when Redis is unavailable (Lite / single-instance).
reranking
Package reranking is the single rerank stage shared by the chat pipeline, the agent search_knowledge tool and the retrieval APIs: passage building, model scoring, threshold filtering with degradation, composite scoring and MMR selection.
Package reranking is the single rerank stage shared by the chat pipeline, the agent search_knowledge tool and the retrieval APIs: passage building, model scoring, threshold filtering with degradation, composite scoring and MMR selection.
runtime
Package runtime 提供应用程序运行时的依赖注入容器 该包使用 uber 的 dig 库来管理依赖项注入
Package runtime 提供应用程序运行时的依赖注入容器 该包使用 uber 的 dig 库来管理依赖项注入
sandbox
Package sandbox: session-scoped capability interfaces.
Package sandbox: session-scoped capability interfaces.
sourceloc
Package sourceloc maps parsed Markdown back to positions in the original file: it re-aims parser-reported source blocks after the ingestion pipeline rewrites the text, aligns parser output to the structure of office files, and derives the per-chunk locators that citations open.
Package sourceloc maps parsed Markdown back to positions in the original file: it re-aims parser-reported source blocks after the ingestion pipeline rewrites the text, aligns parser output to the structure of office files, and derives the per-chunk locators that citations open.
storageurl
Package storageurl converts internal storage references into HTTP(S) URLs an external client can load directly.
Package storageurl converts internal storage references into HTTP(S) URLs an external client can load directly.
textconv
Package textconv provides the text conversion used by FAQ normalization.
Package textconv provides the text conversion used by FAQ normalization.
tracing/langfuse
Package langfuse implements WeKnora's Langfuse/LiteFuse LLM tracing client on top of the OpenTelemetry Go SDK.
Package langfuse implements WeKnora's Langfuse/LiteFuse LLM tracing client on top of the OpenTelemetry Go SDK.
types
Package types defines data structures and types used throughout the system These types are shared across different service modules to ensure data consistency
Package types defines data structures and types used throughout the system These types are shared across different service modules to ensure data consistency
types/interfaces
Package interfaces defines the interface contracts for custom agent management
Package interfaces defines the interface contracts for custom agent management
pluginsdk module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL