youhuanghe 791d052687 feat(box/mcp): instance-based orphan cleanup, error classification, session API, and integration tests
## Changes

  ### Precise orphan container cleanup
  - Runtime generates a unique instance_id on startup
  - Every container gets a `langbot.box.instance_id` label
  - `cleanup_orphaned_containers()` only removes containers from
    previous instances, preserving containers owned by the current one
  - Containers from older versions (no label) are also cleaned up
  - `cleanup_orphaned_containers` added to `BaseSandboxBackend` as
    a no-op default method, removing hasattr duck-typing

  ### Fine-grained MCP error classification
  - New `MCPSessionErrorPhase` enum with 7 phases: session_create,
    dep_install, process_start, relay_connect, mcp_init, runtime,
    tool_call
  - Each phase in `_init_box_stdio_server()` sets the error phase
    before re-raising, enabling precise failure diagnosis
  - `retry_count` tracked across retry attempts
  - `get_runtime_info_dict()` exposes `error_phase` and `retry_count`

  ### GET /v1/sessions/{id} API
  - `BoxRuntime.get_session()` returns session details including
    managed process info when present
  - `handle_get_session` HTTP handler + route in server.py
  - `BoxRuntimeClient.get_session()` abstract method + remote impl

  ### stdio defaults to Box when runtime is available
  - `_uses_box_stdio()` checks `box_service.available` instead of
    requiring explicit `box` key in server_config
  - `BoxService.initialize()` catches runtime errors gracefully,
    sets `available=False` instead of crashing LangBot startup
  - When no container runtime exists, stdio MCP falls back to
    host-direct execution

  ### Code quality (from /simplify review)
  - Extracted `_VENV_DIRS` / `_VENV_BIN_DIRS` module-level constants
  - Removed dead `_box_network_mode()` method and unused `bc` variable
  - Fixed broken import `from ....box.models` → `from ...box.models`
  - Cached `_resolve_host_path()` result — computed once, passed through
  - Config hash now includes `host_path` field
  - Batched orphan cleanup into single `rm -f` command

  ### Session leak fix
  - `_cleanup_box_stdio_session()` now runs in `_lifecycle_loop`'s
    finally block, covering all exit paths (normal shutdown, error,
    retry, final failure)

  ### Integration tests
  - 6 end-to-end tests covering managed process lifecycle, WebSocket
    stdio bidirectional IO, session cleanup verification, single
    session query, process exit detection, and orphan cleanup safety
2026-05-04 21:23:23 +08:00
2026-05-04 17:50:19 +08:00
2025-11-28 15:01:54 +08:00
2025-11-06 21:34:02 +08:00
2025-10-07 00:15:56 +08:00
2025-05-20 09:39:46 +08:00
2025-09-13 09:44:18 +08:00

LangBot

LangBot - Production-grade IM bot made easy. | Product Hunt

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

Discord Ask DeepWiki GitHub release (latest by date) python GitHub stars

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 — 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

Deploy on Zeabur Deploy on Railway

More options: Docker · Manual · BTPanel · Kubernetes


Supported Platforms

Platform Status Notes
Discord
Telegram
Slack
LINE
QQ Personal & Official API
WeCom Enterprise WeChat, External CS, AI Bot
WeChat Personal & Official Account
Lark
DingTalk
KOOK
Satori

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

→ View all integrations


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

Discord


Star History

Star History Chart


Contributors

Thanks to all contributors who have helped make LangBot better:

Languages
Python 63.8%
TypeScript 34.6%
JavaScript 1%
CSS 0.4%
Shell 0.1%