一套面向「技术学习者」的 LangBot 架构深度导览。目标不是教你怎么用,而是带你看清这个 LLM-native 即时通讯机器人平台 是怎么搭起来的、每个设计为什么是现在这个样子。 写作基准版本:langbot 4.10.4,langbot-plugin 0.4.6,Python >=3.11,<4.0。

阅读路线

本系列按「先鸟瞰全局 → 沿一条消息的生命周期纵向穿透 → 补齐横切子系统」编排。建议顺序阅读,下方子页即为各篇正文。

# 篇目 你会搞懂
01 架构总览 分层全景、技术选型、贯穿全局的设计原则
02 启动与生命周期 应用如何被分阶段组装,任务如何被作用域化管理
03 消息的旅程(上):平台层 异构 IM 事件如何归一成统一的 Query
04 消息的旅程(下):流水线引擎 责任链 + 异步生成器混合的处理模型
05 Provider 层:模型与工具抽象 100+ 模型的统一接入与 Function-Calling 全链路
06 插件系统:进程隔离的 RPC 桥 为什么插件跑在独立进程、stdio 与 WebSocket 之争
07 Box 代码沙箱 让 Agent 安全跑代码:后端、隔离、附件、技能挂载
08 HTTP API 与 Agent 友好表面 Quart 分层、鉴权、MCP Server、Skills 单一事实源
09 持久化与数据库迁移 一套脚本通吃 SQLite 与 PostgreSQL
10 横切关注点与收尾 可观测性、i18n、安全,以及「想改某功能从哪入手」

一张图先记住

flowchart TB
    subgraph IM["IM 平台"]
        QQ["QQ / 微信 / Discord / Telegram ..."]
    end
    subgraph LB["LangBot 后端 (Quart, :5300)"]
        PLAT["Platform 层<br>适配器 + RuntimeBot"]
        POOL["QueryPool 查询池"]
        PIPE["Pipeline 流水线引擎<br>责任链 Stage"]
        PROV["Provider 层<br>模型 + 工具"]
        API["HTTP API + MCP"]
        DB["Persistence<br>SQLite / PostgreSQL"]
    end
    subgraph EXT["独立进程"]
        PRT["Plugin Runtime"]
        BOX["Box 沙箱<br>Docker / nsjail / E2B"]
    end
    WEB["Web 前端 SPA<br>Vite + React"]

    QQ <--> PLAT
    PLAT --> POOL --> PIPE
    PIPE <--> PROV
    PIPE <--> PRT
    PROV <--> BOX
    PIPE <--> DB
    WEB <--> API
    API <--> DB

约定

01 · 架构总览

02 · 启动与生命周期

03 · 消息的旅程(上):平台层

05 · Provider 层:模型与工具抽象

04 · 消息的旅程(下):流水线引擎

06 · 插件系统:进程隔离的 RPC 桥

07 · Box 代码沙箱

08 · HTTP API 与 Agent 友好表面

09 · 持久化与数据库迁移

10 · 横切关注点与收尾