* Document multi-tenant workspace architecture * Add OSS and commercial workspace boundaries * docs: redesign multi-tenant workspace architecture * feat(tenancy): implement workspace isolation * docs(tenancy): record verification evidence * docs(tenancy): revise single-instance SaaS topology * docs(tenancy): refine architecture options * docs: finalize cloud v2 multi-tenant decisions * feat(tenancy): establish cloud isolation foundations * feat(tenancy): harden shared cloud runtime boundaries * docs(tenancy): record final isolation verification * fix(tenancy): close isolation and permission gaps * docs(tenancy): record final isolation verification * feat(tenancy): connect cloud workspace control plane * fix(build): install git for pinned SDK * docs(cloud): update control plane verification * chore: update multi-tenant SDK pin * fix(cloud): skip legacy model sync during startup * test(cloud): preserve minimal model manager fixtures * fix(cloud): preserve authenticated account context * fix(cloud): reuse authenticated account for user info * feat(cloud): complete Workspace settings navigation * test(web): cover Workspace dropdown menu * feat(web): place workspace controls in sidebar * refactor(web): streamline workspace controls * style(web): format workspace layout test * fix(cloud): surface runtime and workspace plan status * fix(plugin): keep runtime identity stable across restarts * fix(ui): widen and center workspace switcher * fix(ui): hide roles from workspace switcher * fix(ui): align workspace switcher with sidebar entries * feat(workspace): add in-product collaboration and direct Cloud launch * style: format collaboration changes * fix(workspace): bind collaboration APIs to tenant UoW * fix(cloud): preserve Core-owned collaboration state * test(cloud): require Space identity for invite registration * feat(cloud): complete secure invitation experience * style(web): format invitation flows * fix(cloud): recover box runtime without unscoped skill reload * feat(oss): enforce invitation account and owner billing flows * style: format OSS account service * test(oss): cover invitation logout handoff * fix(oss): resolve workspace owner in scoped session * feat(cloud): harden multi-tenant runtime resources * fix(cloud): bound runtime restart storms * fix(cloud): eliminate periodic runtime CPU spikes * fix(cloud): enforce instance capacity ceilings * fix(cloud): scope public login capability discovery * fix(cloud): bound tenant maintenance and monitoring work * fix(runtime): bound tenant resource amplification * fix(deps): pin green multi-tenant plugin SDK * fix(cloud): handle unavailable skill capability * fix(security): require authentication for image file endpoint (H-2) - Changed /api/v1/files/image from AuthType.NONE to USER_TOKEN_OR_API_KEY - Added Permission.RESOURCE_VIEW requirement - Prevents unauthenticated cross-tenant file access via leaked keys - Fixes HIGH severity finding from multi-tenant security review docs: add comprehensive database migration guide - Complete migration steps for OSS → multi-tenant - Backup, execution, verification procedures - Rollback scenarios and recovery plans - Performance tuning recommendations * test: add comprehensive cross-tenant isolation tests Added 7 critical test scenarios for multi-tenant boundaries: - Cross-tenant bot access prevention - Viewer role read-only enforcement - Removed member immediate access revocation - Model provider credential isolation - WebSocket message isolation - Invitation token workspace scoping - Multi-workspace context validation These tests address P0-2 coverage gaps for: - workspaces.py (membership & invitation flows) - user.py (authentication & authorization) - websocket_chat.py (real-time isolation) - plugins.py (resource access control) docs: finalize database migration guide * fix(security): resolve M-1, M-2, M-3 security findings M-1: WebSocket authorization TOCTOU race (FIXED) - Changed _revalidate_websocket_authorization to return RequestContext - Ensures validated context is used immediately without race window - Prevents removed members from sending messages during revalidation gap M-2: Model Manager cache workspace isolation (VERIFIED) - Confirmed _CacheKey already uses 4-tuple: (instance, workspace, generation, resource) - Cache is properly scoped per workspace, no cross-tenant leakage possible - No code change needed, documented as working correctly M-3: Invitation lock workspace scoping (FIXED) - Changed lock key from token_digest to workspace_uuid:token_digest - Prevents DoS where attacker locks token in Workspace A to block Workspace B - Locks now isolated per workspace All MEDIUM severity findings from security review now resolved. * fix(cloud): unblock tenant CI and enforce knowledge quotas * fix(tenancy): scope rerank model sync --------- Co-authored-by: dadachann <185672915+dadachann@users.noreply.github.com>
Production-grade platform for building agentic IM bots.
Quickly build, debug, and ship AI bots to Slack, Discord, Telegram, WeChat, and more.
English / 简体中文 / 繁體中文 / 日本語 / Español / Français / 한국어 / Русский / Tiếng Việt
Website | Features | Docs | API | Cloud | Plugin Market | Roadmap
What is LangBot?
LangBot is an open-source, production-grade platform for building AI-powered instant messaging bots. It connects Large Language Models (LLMs) to any chat platform, enabling you to create intelligent agents that can converse, execute tasks, and integrate with your existing workflows.
Key Capabilities
- AI Conversations & Agents — Multi-turn dialogues, tool calling, multi-modal support, streaming output. Built-in RAG (knowledge base) with deep integration to Dify, Coze, n8n, Langflow, Deerflow, Weknora.
- Universal IM Platform Support — One codebase for Discord, Telegram, Slack, LINE, QQ, WeChat, WeCom, Lark, DingTalk, KOOK.
- Production-Ready — Access control, rate limiting, sensitive word filtering, comprehensive monitoring, and exception handling. Trusted by enterprises.
- Plugin Ecosystem — Hundreds of plugins, event-driven architecture, component extensions, and MCP protocol support.
- Web Management Panel — Configure, manage, and monitor your bots through an intuitive browser interface. No YAML editing required.
- Multi-Pipeline Architecture — Different bots for different scenarios, with comprehensive monitoring and exception handling.
→ Learn more about all features
📍 Practical guides: deploy a multi-platform AI bot in 5 minutes, connect DeepSeek to WeChat, Discord, and Telegram, run a Dify Agent in Discord, Telegram, and Slack, and build an n8n-powered chatbot.
😎 Stay Updated
Click the Star and Watch buttons in the top-right corner of the repository to get the latest updates.
Quick Start
☁️ LangBot Cloud (Recommended)
LangBot Cloud — Zero deployment, ready to use.
One-Line Launch
uvx langbot
Requires uv. Visit http://localhost:5300 — done.
Docker Compose
git clone https://github.com/langbot-app/LangBot
cd LangBot/docker
docker compose --profile all up -d
One-Click Cloud Deploy
More options: Docker · Manual · BTPanel · Kubernetes
Live Demo
Try it now: https://demo.langbot.dev/
- Email:
demo@langbot.app - Password:
langbot123456
Note: Public demo environment. Do not enter sensitive information.
Supported Platforms
| Platform | Status | Notes |
|---|---|---|
| Discord | ✅ | Official |
| Telegram | ✅ | Official |
| Slack | ✅ | Official |
| LINE | ✅ | Official |
| ✅ | Personal & Official API (Channel, DM, Group) | |
| WeCom | ✅ | Enterprise WeChat, External CS, AI Bot |
| ✅ | Personal & Official Account | |
| Lark | ✅ | Official |
| DingTalk | ✅ | Official |
| KOOK | ✅ | Official |
| Satori | ✅ | |
| ✅ | Matrix, Satori | |
| Matrix | ✅ | Supports multiple bridged platforms such as Signal, WhatsApp, Messenger, iMessage, Mattermost, Google Chat, IRC, XMPP, Zulip, and more |
Supported LLMs & Integrations
| Provider | Type | Status |
|---|---|---|
| OpenAI | LLM | ✅ |
| Anthropic | LLM | ✅ |
| DeepSeek | LLM | ✅ |
| Google Gemini | LLM | ✅ |
| xAI | LLM | ✅ |
| Moonshot | LLM | ✅ |
| Zhipu AI | LLM | ✅ |
| Ollama | Local LLM | ✅ |
| LM Studio | Local LLM | ✅ |
| Dify | LLMOps | ✅ |
| MCP | Protocol | ✅ |
| SiliconFlow | Gateway | ✅ |
| Aliyun Bailian | Gateway | ✅ |
| Volc Engine Ark | Gateway | ✅ |
| ModelScope | Gateway | ✅ |
| GiteeAI | Gateway | ✅ |
| CompShare | GPU Platform | ✅ |
| PPIO | GPU Platform | ✅ |
| ShengSuanYun | GPU Platform | ✅ |
| 接口 AI | Gateway | ✅ |
| 302.AI | Gateway | ✅ |
| Qiniu | Gateway | ✅ |
Why LangBot?
| Use Case | How LangBot Helps |
|---|---|
| Customer Support | Deploy AI agents to Slack/Discord/Telegram that answer questions using your knowledge base |
| Internal Tools | Connect n8n/Dify workflows to WeCom/DingTalk for automated business processes |
| Community Management | Moderate QQ/Discord groups with AI-powered content filtering and interaction |
| Multi-Platform Presence | One bot, all platforms. Manage from a single dashboard |
Built for AI Agents 🤖
LangBot is agent-friendly by design — your coding agents (Claude Code, Codex, Copilot, Cursor, …) can operate, extend, and deploy LangBot with first-class support:
- MCP Server — LangBot exposes a built-in Model Context Protocol endpoint at
/mcp, mirroring the HTTP API so an agent can manage bots, pipelines, plugins, and models programmatically. Authenticate with the same API key (set a global key inconfig.yamlor use a per-user key) — no login flow required. Configure it in the Web panel's API & MCP tab. - In-repo Skills — The
skills/directory is the single source of truth for working with LangBot: plugin development, core development, end-to-end testing, deployment, and operating the LangBot / LangBot Space MCP servers. Point your agent at this directory and it knows how to build. - AGENTS.md — Every repo ships an
AGENTS.md(symlinked toCLAUDE.md) describing architecture, conventions, and the rule that API changes must keep the MCP server and skills in sync. llms.txt— Machine-readable project context for LLMs is published on the website.
Cloud / Marketplace: LangBot Space also exposes an MCP server so agents can search and inspect the plugin / MCP / skill marketplace, authenticated with a Personal Access Token.
Community
Contributors
Thanks to all contributors who have helped make LangBot better:

