Skills now flow exclusively through the Box runtime. Every read and write method funnels through ``_box_service()``; when Box is unavailable (disabled in config, connection failed, or simply not installed) the operation either returns an empty surface (``list_skills`` → []) or raises with a clear ``Box runtime ... not initialised / disabled / unavailable: ...`` message via the new ``_require_box(action)`` helper. Why: the legacy local-fallback path scanned ``data/skills/``, but Box manages its own ``box.local.skills_root`` (default ``data/box/skills/``). The two diverging directories caused stale / phantom skill lists when Box flapped, and the local-fallback writes silently bypassed all the sandboxing the operator had configured. SkillService (``api/http/service/skill.py``): - New ``_require_box(action)`` returns the box service or raises a structured ValueError. ``_require_box_for_write`` kept as alias - ``list_skills`` → returns [] when Box is down so the UI can render the disabled banner cleanly - ``get_skill`` / ``get_skill_by_name`` → return None - All read-file / write-file / scan-dir / create / update / delete / install / preview methods → ``_require_box`` then box delegate. Local fallback bodies (shutil.copytree, tempfile.mkdtemp, preview pipelines) removed entirely SkillManager (``pkg/skill/manager.py``): - ``reload_skills`` returns early with empty cache when Box is down. data/skills/ discovery loop removed - ``refresh_skill_from_disk`` now just reports cache presence; the on-disk re-parse is gone since Box is the only writer Tests: - Drop 11 obsolete test_skill_service.py tests that exercised the removed local-fallback paths (create/install/file/delete/update) - Add list-empty + read-refused tests; flip the legacy-allow test to legacy-refuses-too - Rewrite refresh_skill_from_disk test to match the new behaviour Several helper methods (_managed_skill_path, _resolve_skill_path, _preview_skill_candidates, _install_preview_candidates, etc.) are now unreachable; a follow-up commit will prune them so this diff stays reviewable. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.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.
- 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
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 up -d
One-Click Cloud Deploy
More options: Docker · Manual · BTPanel · Kubernetes
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 |
Live Demo
Try it now: https://demo.langbot.dev/
- Email:
demo@langbot.app - Password:
langbot123456
Note: Public demo environment. Do not enter sensitive information.
Community
Star History
Contributors
Thanks to all contributors who have helped make LangBot better: