From 336ebb55fa0a89cd1a8cbe2d3734368912663173 Mon Sep 17 00:00:00 2001 From: How-Sean Xin Date: Sun, 27 Jul 2025 15:27:45 +0800 Subject: [PATCH 01/29] Update dev-config.md update for windows --- docs/zh/develop/dev-config.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/zh/develop/dev-config.md b/docs/zh/develop/dev-config.md index 1513214ab..817c23a66 100644 --- a/docs/zh/develop/dev-config.md +++ b/docs/zh/develop/dev-config.md @@ -29,10 +29,18 @@ uv run main.py 复制 `.env.example` 到 `.env`。 +- linux环境使用 + ```bash cp .env.example .env ``` +- windows环境使用 + +```bash +copy .env.example .env +``` + 推荐使用 [pnpm](https://pnpm.io/zh/installation) 安装依赖。 ```bash From 4a73d92429a80914a9f609fa0e1f8dde630e8abf Mon Sep 17 00:00:00 2001 From: How-Sean Xin Date: Sun, 27 Jul 2025 15:30:32 +0800 Subject: [PATCH 02/29] Update dev-config.md --- docs/en/develop/dev-config.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/en/develop/dev-config.md b/docs/en/develop/dev-config.md index 4447665ea..ff94fbbf4 100644 --- a/docs/en/develop/dev-config.md +++ b/docs/en/develop/dev-config.md @@ -29,10 +29,18 @@ The code is located in the `web` directory and requires Node.js. Copy `.env.example` to `.env` and fill in the values. +- Usage in Linux and other environments + ```bash cp .env.example .env ``` +- Usage in Windows environments + +```bash +copy .env.example .env +``` + Recommended to use [pnpm](https://pnpm.io/installation) to install dependencies. ```bash From f13e20003c2cbd2fca032af7abc6de9d89fa4052 Mon Sep 17 00:00:00 2001 From: How-Sean Xin Date: Mon, 28 Jul 2025 00:20:02 +0800 Subject: [PATCH 03/29] Update dev-config.md --- docs/zh/develop/dev-config.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/develop/dev-config.md b/docs/zh/develop/dev-config.md index 817c23a66..88f52d9ff 100644 --- a/docs/zh/develop/dev-config.md +++ b/docs/zh/develop/dev-config.md @@ -25,7 +25,7 @@ uv run main.py ## 前端 -代码位于 `web` 目录下,需要安装 Node.js。 +代码位于 `web` 目录下,需要安装 Node.js,PNPM。 复制 `.env.example` 到 `.env`。 From e4c15147cbfee1c8d98f7b380a531daac72aa834 Mon Sep 17 00:00:00 2001 From: How-Sean Xin Date: Mon, 28 Jul 2025 00:20:43 +0800 Subject: [PATCH 04/29] Update dev-config.md --- docs/en/develop/dev-config.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/develop/dev-config.md b/docs/en/develop/dev-config.md index ff94fbbf4..18d78b546 100644 --- a/docs/en/develop/dev-config.md +++ b/docs/en/develop/dev-config.md @@ -25,7 +25,7 @@ At this point, the configuration file will be automatically generated in the `da ## Frontend -The code is located in the `web` directory and requires Node.js. +The code is located in the `web` directory and requires Node.js and PNPM. Copy `.env.example` to `.env` and fill in the values. From 3347eae4f6c781bb26e07bf24ab49fe37ec8a3da Mon Sep 17 00:00:00 2001 From: Junyan Qin Date: Mon, 28 Jul 2025 16:06:18 +0800 Subject: [PATCH 05/29] perf: comments --- docs/en/develop/dev-config.md | 6 ++---- docs/zh/develop/dev-config.md | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/en/develop/dev-config.md b/docs/en/develop/dev-config.md index 18d78b546..2c0c7a62c 100644 --- a/docs/en/develop/dev-config.md +++ b/docs/en/develop/dev-config.md @@ -1,7 +1,5 @@ # Development Configuration -> This document is based on LangBot version 4.0 - LangBot is divided into frontend and backend. The frontend is developed using Next.js + shadcn, and the backend is developed using Quart (an asynchronous version of Flask). ## Backend @@ -25,7 +23,7 @@ At this point, the configuration file will be automatically generated in the `da ## Frontend -The code is located in the `web` directory and requires Node.js and PNPM. +The code is located in the `web` directory and requires Node.js and [pnpm](https://pnpm.io/installation). Copy `.env.example` to `.env` and fill in the values. @@ -41,7 +39,7 @@ cp .env.example .env copy .env.example .env ``` -Recommended to use [pnpm](https://pnpm.io/installation) to install dependencies. +Install dependencies and start the frontend ```bash pnpm install diff --git a/docs/zh/develop/dev-config.md b/docs/zh/develop/dev-config.md index 88f52d9ff..0256ebfe3 100644 --- a/docs/zh/develop/dev-config.md +++ b/docs/zh/develop/dev-config.md @@ -1,7 +1,5 @@ # 开发配置 -> 此文档基于 LangBot 4.0 版本编写 - LangBot 分为前端和后端,前端使用 Next.js + shadcn 开发,后端通过 Quart(Flask 的异步版本)开发。 ## 后端 @@ -25,7 +23,7 @@ uv run main.py ## 前端 -代码位于 `web` 目录下,需要安装 Node.js,PNPM。 +代码位于 `web` 目录下,需要安装 Node.js,[pnpm](https://pnpm.io/zh/installation)。 复制 `.env.example` 到 `.env`。 @@ -41,7 +39,7 @@ cp .env.example .env copy .env.example .env ``` -推荐使用 [pnpm](https://pnpm.io/zh/installation) 安装依赖。 +安装依赖并启动前端 ```bash pnpm install From 9b6d3fde291e6b10895390f1b9658863a7bf67c1 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 12:05:36 +0800 Subject: [PATCH 06/29] Update tutor.mdx --- zh/plugin/dev/tutor.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zh/plugin/dev/tutor.mdx b/zh/plugin/dev/tutor.mdx index e7b6d2b3d..a46f14896 100644 --- a/zh/plugin/dev/tutor.mdx +++ b/zh/plugin/dev/tutor.mdx @@ -53,6 +53,8 @@ main.py 中的插件类是每个插件通用的代码,在插件被启动时会 ## AI 辅助开发 - [skills-LangBotplugin](https://github.com/TyperBody/skills-LangBotplugin) - 来自社区成员 [@TyperBody](https://github.com/TyperBody) 贡献的 Skills,使用 AI 快速开发插件,欢迎体验 + - *langbotplugin* 该skill提供自动化生成插件工具 + - *langbotplugindebug* 该skill提供调试插件工具 ## 安装 CLI From 148fd09e7af526b28de678868ca5c28a235a80ce Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 21:22:38 +0800 Subject: [PATCH 07/29] Update platform-features.mdx --- zh/insight/platform-features.mdx | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/zh/insight/platform-features.mdx b/zh/insight/platform-features.mdx index 9fd127b9c..ca6a2e435 100644 --- a/zh/insight/platform-features.mdx +++ b/zh/insight/platform-features.mdx @@ -66,6 +66,36 @@ title: "各消息平台特性支持性" | 发送主动消息 | ✅ | | | 发送流式响应 | ❌ | | +## Satori + +### 接收 + +| 功能点 | 状态 | 备注 | +| --- | --- | --- | +| 接收私聊消息 | ✅ | | +| 接收群聊提及消息 | ✅ | | +| 接收群聊普通消息 | ✅ | | +| 接收图片消息 | ✅ | | +| 接收语音消息 | ✅ | | +| 接收文件消息 | ✅ | | +| 接收富文本消息 | ✅ | 文本和图片结合 | +| 获取私聊消息事件用户名称 | ✅ | | +| 获取群聊消息事件群聊名称 | ✅ | | +| 获取群聊消息事件发送者名称 | ✅ | | + +### 发送 + +| 功能点 | 状态 | 备注 | +| --- | --- | --- | +| 回复私聊消息 | ✅ | | +| 回复群聊消息 | ✅ | | +| 回复图片消息 | ✅ | | +| 回复语音消息 | ✅ | | +| 回复文件消息 | ✅ | | +| 回复富文本消息 | ✅ | 文本和图片结合 | +| 发送主动消息 | ✅ | | +| 发送流式响应 | ❌ | | + ## 企业微信(对外客服) ## 企业微信智能机器人 From 6b1ae23d657e01f8953feb4b320541af57f18ce0 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 21:24:43 +0800 Subject: [PATCH 08/29] Update features.mdx --- zh/insight/features.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/zh/insight/features.mdx b/zh/insight/features.mdx index eaea2d906..1940fafef 100644 --- a/zh/insight/features.mdx +++ b/zh/insight/features.mdx @@ -19,6 +19,7 @@ LangBot 是一个开源的大语言模型原生即时通信机器人开发平台 | Discord | ✅ | | | Telegram | ✅ | 支持流式输出 | | Slack | ✅ | | +| Satori | ✅ | [Satori](https://satori.chat/zh-CN/introduction.html) 是一个通用的聊天协议,理论上支持QQ,Zulip,米游社,等15个平台 | | LINE | ✅ | | | KOOK | ✅ | | | WhatsApp | 🚧 | | From f4593f8599ef9c5c859c60d59638a3baff6e4c96 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 22:25:22 +0800 Subject: [PATCH 09/29] Update docs.json --- docs.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs.json b/docs.json index ec3819edf..edc9ee2ab 100644 --- a/docs.json +++ b/docs.json @@ -102,6 +102,12 @@ "zh/usage/platforms/qq/aiocqhttp/llonebot" ] }, + { + "group": "Satori (包含QQ)", + "pages": [ + "zh/usage/platforms/satori/llonebot" + ] + }, { "group": "QQ 官方机器人", "pages": [ From f4e6edc34527b2405a5b94f4e9a9527d41ce7113 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 22:34:39 +0800 Subject: [PATCH 10/29] Add files via upload --- zh/usage/platforms/satori/llonebot | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 zh/usage/platforms/satori/llonebot diff --git a/zh/usage/platforms/satori/llonebot b/zh/usage/platforms/satori/llonebot new file mode 100644 index 000000000..fb868c26e --- /dev/null +++ b/zh/usage/platforms/satori/llonebot @@ -0,0 +1,29 @@ +--- +title: "部署消息平台 Lucky Lilla Desktop" +--- + +通过 Satori 协议接入,需选择使用``Satori``作为适配器。 + +# LiteLoaderQQNT + +- [LiteLoaderQQNT 的 OneBot API 插件](https://github.com/LLOneBot/LLOneBot) 注入 QQ 客户端并将其转换为 OneBot 11 协议 + +安装LiteLoaderQQNT的教程:https://llonebot.github.io/zh-CN/guide/getting-started + +![图片1](/images/zh/deploy/bots/qq/onebot/llonebot/llob_cfg.png) + +确保地址中 IP地址 是 LangBot 运行的主机的地址(若在同一网络内运行则为 127.0.0.1) + +## Lagrange 对接 + +接下来打开 LangBot 配置页面 + +点击机器人,点击添加 + +`平台/适配器选择`为`OneBot v11` + +![napcat_webui_03](/images/zh/deploy/bots/qq/onebot/napcat/napcat_webui_03.png) + + +注意,如果涉及多个 docker 容器的网络连接问题,请参考[网络配置详解](/zh/workshop/network-details) + From 49026008bbbb7ab8629a5f9909626f415e7bb91e Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 23:23:18 +0800 Subject: [PATCH 11/29] Add files via upload --- .../deploy/bots/satori/llbot_local_setting.png | Bin 0 -> 7317 bytes .../deploy/bots/satori/llbot_open_setting.png | Bin 0 -> 8166 bytes .../deploy/bots/satori/llone_langbot_build.png | Bin 0 -> 36271 bytes .../bots/satori/llone_langbot_setting.png | Bin 0 -> 42141 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/zh/deploy/bots/satori/llbot_local_setting.png create mode 100644 images/zh/deploy/bots/satori/llbot_open_setting.png create mode 100644 images/zh/deploy/bots/satori/llone_langbot_build.png create mode 100644 images/zh/deploy/bots/satori/llone_langbot_setting.png diff --git a/images/zh/deploy/bots/satori/llbot_local_setting.png b/images/zh/deploy/bots/satori/llbot_local_setting.png new file mode 100644 index 0000000000000000000000000000000000000000..558ee53208509abd3909dc531c537cf5f32b5f52 GIT binary patch literal 7317 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 JVrk=7{{uh3Qgr|T literal 0 HcmV?d00001 diff --git a/images/zh/deploy/bots/satori/llbot_open_setting.png b/images/zh/deploy/bots/satori/llbot_open_setting.png new file mode 100644 index 0000000000000000000000000000000000000000..2a5d4c235cbfcb8970a30426f55ca73fb2d16631 GIT binary patch literal 8166 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 OC(u;YQ7KWf3j7a33#wfJ literal 0 HcmV?d00001 diff --git a/images/zh/deploy/bots/satori/llone_langbot_build.png b/images/zh/deploy/bots/satori/llone_langbot_build.png new file mode 100644 index 0000000000000000000000000000000000000000..d573edc63570a49fd76d7d2fe20bda210c279841 GIT binary patch literal 36271 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 literal 0 HcmV?d00001 From 3de1239a643d84cb2963cd330141a73452e30363 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 23:28:05 +0800 Subject: [PATCH 12/29] Update llonebot --- zh/usage/platforms/satori/llonebot | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/zh/usage/platforms/satori/llonebot b/zh/usage/platforms/satori/llonebot index fb868c26e..d53510dc4 100644 --- a/zh/usage/platforms/satori/llonebot +++ b/zh/usage/platforms/satori/llonebot @@ -4,26 +4,16 @@ title: "部署消息平台 Lucky Lilla Desktop" 通过 Satori 协议接入,需选择使用``Satori``作为适配器。 -# LiteLoaderQQNT +# LuckyLillia -- [LiteLoaderQQNT 的 OneBot API 插件](https://github.com/LLOneBot/LLOneBot) 注入 QQ 客户端并将其转换为 OneBot 11 协议 +- [LuckyLillia](https://github.com/LLOneBot/LuckyLilliaBot) 安装客户端以使用Satori协议 -安装LiteLoaderQQNT的教程:https://llonebot.github.io/zh-CN/guide/getting-started +安装LuckyLillia的教程:https://luckylillia.com/guide/choice_install -![图片1](/images/zh/deploy/bots/qq/onebot/llonebot/llob_cfg.png) +![图片1](/images/zh/deploy/bots/satori/llbot_local_setting.png) -确保地址中 IP地址 是 LangBot 运行的主机的地址(若在同一网络内运行则为 127.0.0.1) +确保地址中 IP地址 是 LangBot 运行的主机的地址(若在同一网络内运行则为 127.0.0.1) 默认端口 ``5600`` 可以根据需要更改, -## Lagrange 对接 +> ![图片2](/images/zh/deploy/bots/satori/llbot_open_setting.png) -接下来打开 LangBot 配置页面 - -点击机器人,点击添加 - -`平台/适配器选择`为`OneBot v11` - -![napcat_webui_03](/images/zh/deploy/bots/qq/onebot/napcat/napcat_webui_03.png) - - -注意,如果涉及多个 docker 容器的网络连接问题,请参考[网络配置详解](/zh/workshop/network-details) - +> 该图为公网配置确保地址中 IP地址 是 LangBot 运行的主机的地址 此时配置需要暴露langbot的该端口 From c7bf799d76545a88860945ea97587c279815a84b Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 23:30:05 +0800 Subject: [PATCH 13/29] Update and rename llonebot to llonebot.mdx --- zh/usage/platforms/satori/{llonebot => llonebot.mdx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename zh/usage/platforms/satori/{llonebot => llonebot.mdx} (100%) diff --git a/zh/usage/platforms/satori/llonebot b/zh/usage/platforms/satori/llonebot.mdx similarity index 100% rename from zh/usage/platforms/satori/llonebot rename to zh/usage/platforms/satori/llonebot.mdx From 30be5c45e6aa5249a2b8d36256f6a433fc9445be Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 23:30:30 +0800 Subject: [PATCH 14/29] Update llonebot.mdx --- zh/usage/platforms/satori/llonebot.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/zh/usage/platforms/satori/llonebot.mdx b/zh/usage/platforms/satori/llonebot.mdx index d53510dc4..a11d50312 100644 --- a/zh/usage/platforms/satori/llonebot.mdx +++ b/zh/usage/platforms/satori/llonebot.mdx @@ -13,7 +13,8 @@ title: "部署消息平台 Lucky Lilla Desktop" ![图片1](/images/zh/deploy/bots/satori/llbot_local_setting.png) 确保地址中 IP地址 是 LangBot 运行的主机的地址(若在同一网络内运行则为 127.0.0.1) 默认端口 ``5600`` 可以根据需要更改, - +> > ![图片2](/images/zh/deploy/bots/satori/llbot_open_setting.png) - +> > 该图为公网配置确保地址中 IP地址 是 LangBot 运行的主机的地址 此时配置需要暴露langbot的该端口 + From 3bab4684ac7bd788cfb688afe6684ad536dd9e42 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 23:30:52 +0800 Subject: [PATCH 15/29] Update llonebot.mdx --- zh/usage/platforms/satori/llonebot.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zh/usage/platforms/satori/llonebot.mdx b/zh/usage/platforms/satori/llonebot.mdx index a11d50312..cedb5e004 100644 --- a/zh/usage/platforms/satori/llonebot.mdx +++ b/zh/usage/platforms/satori/llonebot.mdx @@ -12,9 +12,10 @@ title: "部署消息平台 Lucky Lilla Desktop" ![图片1](/images/zh/deploy/bots/satori/llbot_local_setting.png) -确保地址中 IP地址 是 LangBot 运行的主机的地址(若在同一网络内运行则为 127.0.0.1) 默认端口 ``5600`` 可以根据需要更改, +确保地址中 IP地址 是 LangBot 运行的主机的地址(若在同一网络内运行则为 ```127.0.0.1```) 默认端口 ``5600`` 可以根据需要更改, > > ![图片2](/images/zh/deploy/bots/satori/llbot_open_setting.png) > > 该图为公网配置确保地址中 IP地址 是 LangBot 运行的主机的地址 此时配置需要暴露langbot的该端口 + From ca3aa6aed1bc9e319e17f77ef128232b8669b7b3 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 23:33:56 +0800 Subject: [PATCH 16/29] Update llonebot.mdx From 4dde74516087451561b8c5db10466d955f88c132 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 23:39:03 +0800 Subject: [PATCH 17/29] Update llonebot.mdx --- zh/usage/platforms/satori/llonebot.mdx | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/zh/usage/platforms/satori/llonebot.mdx b/zh/usage/platforms/satori/llonebot.mdx index cedb5e004..ec3c8d75a 100644 --- a/zh/usage/platforms/satori/llonebot.mdx +++ b/zh/usage/platforms/satori/llonebot.mdx @@ -12,10 +12,28 @@ title: "部署消息平台 Lucky Lilla Desktop" ![图片1](/images/zh/deploy/bots/satori/llbot_local_setting.png) -确保地址中 IP地址 是 LangBot 运行的主机的地址(若在同一网络内运行则为 ```127.0.0.1```) 默认端口 ``5600`` 可以根据需要更改, +确保地址中 IP地址 是 LangBot 运行的主机的地址(若在同一网络内运行则为 ```127.0.0.1```) 默认端口 ``5600`` 可以根据需要更改 推荐设置令牌 > > ![图片2](/images/zh/deploy/bots/satori/llbot_open_setting.png) > > 该图为公网配置确保地址中 IP地址 是 LangBot 运行的主机的地址 此时配置需要暴露langbot的该端口 +## LangBot 对接 + +接下来打开 LangBot 配置页面 + +点击机器人,点击添加 + +`平台/适配器选择`为`Satori` + +![图片3](/images/zh/deploy/bots/satori/llone_langbot_build.png) +> 如果你使用默认配置(内网)你甚至不用修改任何参数 + +创建好后你仍然可以调整参数 + +![图片4](/images/zh/deploy/bots/satori/llone_langbot_setting.png) + + +注意,如果涉及多个 docker 容器的网络连接问题,请参考[网络配置详解](/zh/workshop/network-details) + From e60fb250b8072478f171a736f3352cc9d38f9dab Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 23:39:56 +0800 Subject: [PATCH 18/29] Update llonebot.mdx --- zh/usage/platforms/satori/llonebot.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zh/usage/platforms/satori/llonebot.mdx b/zh/usage/platforms/satori/llonebot.mdx index ec3c8d75a..c12e8653d 100644 --- a/zh/usage/platforms/satori/llonebot.mdx +++ b/zh/usage/platforms/satori/llonebot.mdx @@ -34,6 +34,7 @@ title: "部署消息平台 Lucky Lilla Desktop" ![图片4](/images/zh/deploy/bots/satori/llone_langbot_setting.png) -注意,如果涉及多个 docker 容器的网络连接问题,请参考[网络配置详解](/zh/workshop/network-details) +注意,如果涉及多个 docker 容器的网络连接问题,请参考 [网络配置详解](/zh/workshop/network-details) + From 97bf660d7125d9ddd31371e47873970bbb25702c Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 23:55:04 +0800 Subject: [PATCH 19/29] Update community.mdx --- zh/insight/community.mdx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/zh/insight/community.mdx b/zh/insight/community.mdx index 57abf2941..fbaf95da9 100644 --- a/zh/insight/community.mdx +++ b/zh/insight/community.mdx @@ -29,3 +29,13 @@ title: "社区资源" - LangBot 插件&开发:1032327138 ([链接](https://qm.qq.com/q/G7ENGTjeou)) + +### ❤ 非官方交流群 + +插件和 LangBot 聊天、对话、交流 + + +此群群友只对闲聊兴趣,不会解答您的任何其他问题,由于不受官方干涉,我们无法确定信息真实性与正式性。 + + +- LangBot 插件&开发:472263434 ([链接](https://qm.qq.com/q/c5mH8rHlgQ)) From 1ca90bfcd579eac0b657679390d85a031fa02c8c Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Sun, 22 Feb 2026 23:55:28 +0800 Subject: [PATCH 20/29] Update community.mdx --- zh/insight/community.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/insight/community.mdx b/zh/insight/community.mdx index fbaf95da9..2ffa9275e 100644 --- a/zh/insight/community.mdx +++ b/zh/insight/community.mdx @@ -38,4 +38,4 @@ title: "社区资源" 此群群友只对闲聊兴趣,不会解答您的任何其他问题,由于不受官方干涉,我们无法确定信息真实性与正式性。 -- LangBot 插件&开发:472263434 ([链接](https://qm.qq.com/q/c5mH8rHlgQ)) +- LangBot 非官方交流群:472263434 ([链接](https://qm.qq.com/q/c5mH8rHlgQ)) From 3ef613d9942f58a13e287c65dcbee0f5a882ff48 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Mon, 23 Feb 2026 00:00:47 +0800 Subject: [PATCH 21/29] Add files via upload --- .../satori/cf44553581a8e8a404a57775b42ce24a.png | Bin 0 -> 11511 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/zh/deploy/bots/satori/cf44553581a8e8a404a57775b42ce24a.png diff --git a/images/zh/deploy/bots/satori/cf44553581a8e8a404a57775b42ce24a.png b/images/zh/deploy/bots/satori/cf44553581a8e8a404a57775b42ce24a.png new file mode 100644 index 0000000000000000000000000000000000000000..2bc26734405790034e053d829a826b53350463b3 GIT binary patch literal 11511 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 Date: Mon, 23 Feb 2026 00:01:42 +0800 Subject: [PATCH 22/29] Rename cf44553581a8e8a404a57775b42ce24a.png to satori_platform_open.png --- ...4a57775b42ce24a.png => satori_platform_open.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename images/zh/deploy/bots/satori/{cf44553581a8e8a404a57775b42ce24a.png => satori_platform_open.png} (100%) diff --git a/images/zh/deploy/bots/satori/cf44553581a8e8a404a57775b42ce24a.png b/images/zh/deploy/bots/satori/satori_platform_open.png similarity index 100% rename from images/zh/deploy/bots/satori/cf44553581a8e8a404a57775b42ce24a.png rename to images/zh/deploy/bots/satori/satori_platform_open.png From b903cc50e3d6564b1bcbe83428698ac556a6eb57 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Mon, 23 Feb 2026 00:03:45 +0800 Subject: [PATCH 23/29] Update llonebot.mdx --- zh/usage/platforms/satori/llonebot.mdx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/zh/usage/platforms/satori/llonebot.mdx b/zh/usage/platforms/satori/llonebot.mdx index c12e8653d..9f61096e7 100644 --- a/zh/usage/platforms/satori/llonebot.mdx +++ b/zh/usage/platforms/satori/llonebot.mdx @@ -33,8 +33,13 @@ title: "部署消息平台 Lucky Lilla Desktop" ![图片4](/images/zh/deploy/bots/satori/llone_langbot_setting.png) +确保你启用了本适配器 + +![图片5](/images/zh/deploy/bots/satori/satori_platform_open.png) + 注意,如果涉及多个 docker 容器的网络连接问题,请参考 [网络配置详解](/zh/workshop/network-details) + From 6b6d9c0e196d67c3264896da40084fd7e93d0d9e Mon Sep 17 00:00:00 2001 From: Junyan Qin Date: Mon, 23 Feb 2026 15:20:41 +0800 Subject: [PATCH 24/29] Update group name in docs.json and refine warning message in community.mdx --- docs.json | 2 +- zh/insight/community.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs.json b/docs.json index edc9ee2ab..1394d7dcb 100644 --- a/docs.json +++ b/docs.json @@ -103,7 +103,7 @@ ] }, { - "group": "Satori (包含QQ)", + "group": "Satori (QQ 等多平台)", "pages": [ "zh/usage/platforms/satori/llonebot" ] diff --git a/zh/insight/community.mdx b/zh/insight/community.mdx index 2ffa9275e..d643efe4a 100644 --- a/zh/insight/community.mdx +++ b/zh/insight/community.mdx @@ -35,7 +35,7 @@ title: "社区资源" 插件和 LangBot 聊天、对话、交流 -此群群友只对闲聊兴趣,不会解答您的任何其他问题,由于不受官方干涉,我们无法确定信息真实性与正式性。 +此群群友只对闲聊兴趣,不会解答您的任何其他问题。 - LangBot 非官方交流群:472263434 ([链接](https://qm.qq.com/q/c5mH8rHlgQ)) From 93a73a7c707488e5061f2db7c27a9bd6ca6ea369 Mon Sep 17 00:00:00 2001 From: Junyan Qin Date: Mon, 23 Feb 2026 15:26:50 +0800 Subject: [PATCH 25/29] Add Satori platform support in documentation, including features and usage instructions for Lucky Lilla Desktop --- docs.json | 12 ++++++++ en/insight/community.mdx | 10 ++++++ en/insight/features.mdx | 1 + en/insight/platform-features.mdx | 30 ++++++++++++++++++ en/plugin/dev/tutor.mdx | 2 ++ en/usage/platforms/satori/llonebot.mdx | 42 ++++++++++++++++++++++++++ ja/insight/community.mdx | 10 ++++++ ja/insight/features.mdx | 1 + ja/insight/platform-features.mdx | 30 ++++++++++++++++++ ja/plugin/dev/tutor.mdx | 2 ++ ja/usage/platforms/satori/llonebot.mdx | 42 ++++++++++++++++++++++++++ 11 files changed, 182 insertions(+) create mode 100644 en/usage/platforms/satori/llonebot.mdx create mode 100644 ja/usage/platforms/satori/llonebot.mdx diff --git a/docs.json b/docs.json index 1394d7dcb..0cd9951fa 100644 --- a/docs.json +++ b/docs.json @@ -316,6 +316,12 @@ "en/usage/platforms/qq/aiocqhttp/llonebot" ] }, + { + "group": "Satori (QQ & Multi-Platform)", + "pages": [ + "en/usage/platforms/satori/llonebot" + ] + }, { "group": "QQ Official Bot", "pages": [ @@ -494,6 +500,12 @@ "ja/usage/platforms/qq/aiocqhttp/llonebot" ] }, + { + "group": "Satori(QQ等マルチプラットフォーム)", + "pages": [ + "ja/usage/platforms/satori/llonebot" + ] + }, { "group": "QQ 公式ボット", "pages": [ diff --git a/en/insight/community.mdx b/en/insight/community.mdx index ee86eae20..774e8e8f5 100644 --- a/en/insight/community.mdx +++ b/en/insight/community.mdx @@ -11,3 +11,13 @@ Collected at: https://blog.thelazy.top/tags/langbot ## 🥰 Community Join our community on Discord: [![Discord](https://img.shields.io/discord/1335141740050649118?logo=discord&labelColor=%20%235462eb&logoColor=%20%23f5f5f5&color=%20%235462eb)](https://discord.gg/wdNEHETs87) + +### ❤ Unofficial Chat Groups + +Chat, discuss, and communicate about plugins and LangBot + + +Members in this group are only interested in casual chatting and will not answer any other questions. Since it is not under official supervision, we cannot guarantee the authenticity or formality of the information. + + +- LangBot Unofficial Chat Group: 472263434 ([Link](https://qm.qq.com/q/c5mH8rHlgQ)) diff --git a/en/insight/features.mdx b/en/insight/features.mdx index 1dcc0a4d1..0193a8172 100644 --- a/en/insight/features.mdx +++ b/en/insight/features.mdx @@ -19,6 +19,7 @@ LangBot is an open-source LLM native instant messaging robot development platfor | Discord | ✅ | | | Telegram | ✅ | Support streaming output | | Slack | ✅ | | +| Satori | ✅ | [Satori](https://satori.chat/zh-CN/introduction.html) is a universal chat protocol that theoretically supports QQ, Zulip, Miyoushe, and 15+ platforms | | LINE | ✅ | | | KOOK | ✅ | | | WhatsApp | 🚧 | | diff --git a/en/insight/platform-features.mdx b/en/insight/platform-features.mdx index a0c9ca95a..560f16aa0 100644 --- a/en/insight/platform-features.mdx +++ b/en/insight/platform-features.mdx @@ -66,6 +66,36 @@ The following is a list of features we have implemented and tested for each plat | Send proactive messages | ✅ | | | Send streaming response | ❌ | | +## Satori + +### Receive + +| Feature | Status | Remarks | +| --- | --- | --- | +| Receive private messages | ✅ | | +| Receive group mention messages | ✅ | | +| Receive group regular messages | ✅ | | +| Receive image messages | ✅ | | +| Receive voice messages | ✅ | | +| Receive file messages | ✅ | | +| Receive rich text messages | ✅ | Text and image combined | +| Get private message event user name | ✅ | | +| Get group message event group name | ✅ | | +| Get group message event sender name | ✅ | | + +### Send + +| Feature | Status | Remarks | +| --- | --- | --- | +| Reply to private messages | ✅ | | +| Reply to group messages | ✅ | | +| Reply with image messages | ✅ | | +| Reply with voice messages | ✅ | | +| Reply with file messages | ✅ | | +| Reply with rich text messages | ✅ | Text and image combined | +| Send proactive messages | ✅ | | +| Send streaming response | ❌ | | + ## WeCom (Customer Service) ## WeCom Intelligent Bot diff --git a/en/plugin/dev/tutor.mdx b/en/plugin/dev/tutor.mdx index dd851ae7a..86aa1af82 100644 --- a/en/plugin/dev/tutor.mdx +++ b/en/plugin/dev/tutor.mdx @@ -53,6 +53,8 @@ Please continue reading this tutorial to understand the plugin development proce ## AI-Assisted Development - [skills-LangBotplugin](https://github.com/TyperBody/skills-LangBotplugin) - Skills contributed by community member [@TyperBody](https://github.com/TyperBody), use AI to quickly develop plugins, welcome to try + - *langbotplugin* This skill provides automated plugin generation tools + - *langbotplugindebug* This skill provides plugin debugging tools ## Installing CLI diff --git a/en/usage/platforms/satori/llonebot.mdx b/en/usage/platforms/satori/llonebot.mdx new file mode 100644 index 000000000..d5fa28b42 --- /dev/null +++ b/en/usage/platforms/satori/llonebot.mdx @@ -0,0 +1,42 @@ +--- +title: "Deploy Message Platform: Lucky Lilla Desktop" +--- + +Connected via the Satori protocol, you need to select ``Satori`` as the adapter. + +# LuckyLillia + +- [LuckyLillia](https://github.com/LLOneBot/LuckyLilliaBot) Install the client to use the Satori protocol + +LuckyLillia installation tutorial: https://luckylillia.com/guide/choice_install + +![Image 1](/images/zh/deploy/bots/satori/llbot_local_setting.png) + +Make sure the IP address in the address field is the address of the host running LangBot (use ```127.0.0.1``` if running on the same network). The default port ``5600`` can be changed as needed. Setting a token is recommended. +> +> ![Image 2](/images/zh/deploy/bots/satori/llbot_open_setting.png) +> +> This image shows the public network configuration. Make sure the IP address is the address of the host running LangBot. In this case, you need to expose the corresponding LangBot port. + +## LangBot Integration + +Next, open the LangBot configuration page. + +Click on Bots, then click Add. + +Select `Satori` for `Platform/Adapter`. + +![Image 3](/images/zh/deploy/bots/satori/llone_langbot_build.png) +> If you use the default configuration (local network), you don't even need to modify any parameters. + +After creation, you can still adjust the parameters. + +![Image 4](/images/zh/deploy/bots/satori/llone_langbot_setting.png) + +Make sure you have enabled this adapter. + +![Image 5](/images/zh/deploy/bots/satori/satori_platform_open.png) + + +Note: If you encounter network connectivity issues between multiple Docker containers, please refer to [Network Configuration Details](/en/workshop/network-details). + diff --git a/ja/insight/community.mdx b/ja/insight/community.mdx index f022d1be8..98a5d69c1 100644 --- a/ja/insight/community.mdx +++ b/ja/insight/community.mdx @@ -11,3 +11,13 @@ title: "コミュニティリソース" ## 🥰 コミュニティ Discordコミュニティに参加してください: [![Discord](https://img.shields.io/discord/1335141740050649118?logo=discord&labelColor=%20%235462eb&logoColor=%20%23f5f5f5&color=%20%235462eb)](https://discord.gg/wdNEHETs87) + +### ❤ 非公式交流グループ + +プラグインとLangBotについてのチャット、ディスカッション、交流 + + +このグループのメンバーは雑談のみに関心があり、その他の質問には回答しません。公式の管理下にないため、情報の真実性や正式性を保証することはできません。 + + +- LangBot 非公式交流グループ: 472263434 ([リンク](https://qm.qq.com/q/c5mH8rHlgQ)) diff --git a/ja/insight/features.mdx b/ja/insight/features.mdx index c95a1598e..d97397d32 100644 --- a/ja/insight/features.mdx +++ b/ja/insight/features.mdx @@ -19,6 +19,7 @@ LangBotは、オープンソースのLLMネイティブインスタントメッ | Discord | ✅ | | | Telegram | ✅ | ストリーミング出力をサポート | | Slack | ✅ | | +| Satori | ✅ | [Satori](https://satori.chat/zh-CN/introduction.html) は汎用チャットプロトコルで、理論的にQQ、Zulip、米游社など15以上のプラットフォームをサポート | | LINE | ✅ | | | KOOK | ✅ | | | WhatsApp | 🚧 | | diff --git a/ja/insight/platform-features.mdx b/ja/insight/platform-features.mdx index e862c3ec2..f483fdded 100644 --- a/ja/insight/platform-features.mdx +++ b/ja/insight/platform-features.mdx @@ -66,6 +66,36 @@ title: "各メッセージプラットフォームの機能サポート" | 能動的メッセージの送信 | ✅ | | | ストリーミングレスポンスの送信 | ❌ | | +## Satori + +### 受信 + +| 機能 | ステータス | 備考 | +| --- | --- | --- | +| プライベートメッセージの受信 | ✅ | | +| グループメンションメッセージの受信 | ✅ | | +| グループ通常メッセージの受信 | ✅ | | +| 画像メッセージの受信 | ✅ | | +| 音声メッセージの受信 | ✅ | | +| ファイルメッセージの受信 | ✅ | | +| リッチテキストメッセージの受信 | ✅ | テキストと画像の組み合わせ | +| プライベートメッセージイベントのユーザー名取得 | ✅ | | +| グループメッセージイベントのグループ名取得 | ✅ | | +| グループメッセージイベントの送信者名取得 | ✅ | | + +### 送信 + +| 機能 | ステータス | 備考 | +| --- | --- | --- | +| プライベートメッセージへの返信 | ✅ | | +| グループメッセージへの返信 | ✅ | | +| 画像メッセージでの返信 | ✅ | | +| 音声メッセージでの返信 | ✅ | | +| ファイルメッセージでの返信 | ✅ | | +| リッチテキストメッセージでの返信 | ✅ | テキストと画像の組み合わせ | +| 能動的メッセージの送信 | ✅ | | +| ストリーミングレスポンスの送信 | ❌ | | + ## 企業微信(カスタマーサービス) ## 企業微信インテリジェントボット diff --git a/ja/plugin/dev/tutor.mdx b/ja/plugin/dev/tutor.mdx index 6490400a0..967efae8c 100644 --- a/ja/plugin/dev/tutor.mdx +++ b/ja/plugin/dev/tutor.mdx @@ -53,6 +53,8 @@ main.pyのプラグインクラスは各プラグインの共通コードで、 ## AI 支援開発 - [skills-LangBotplugin](https://github.com/TyperBody/skills-LangBotplugin) - コミュニティメンバー [@TyperBody](https://github.com/TyperBody) が提供する Skills、AI を使ってプラグインを迅速に開発できます、ぜひお試しください + - *langbotplugin* このSkillはプラグインの自動生成ツールを提供します + - *langbotplugindebug* このSkillはプラグインのデバッグツールを提供します ## CLIのインストール diff --git a/ja/usage/platforms/satori/llonebot.mdx b/ja/usage/platforms/satori/llonebot.mdx new file mode 100644 index 000000000..d6bf6a41c --- /dev/null +++ b/ja/usage/platforms/satori/llonebot.mdx @@ -0,0 +1,42 @@ +--- +title: "メッセージプラットフォームのデプロイ: Lucky Lilla Desktop" +--- + +Satoriプロトコル経由で接続するため、アダプターとして``Satori``を選択する必要があります。 + +# LuckyLillia + +- [LuckyLillia](https://github.com/LLOneBot/LuckyLilliaBot) Satoriプロトコルを使用するためにクライアントをインストールしてください + +LuckyLilliaのインストールチュートリアル: https://luckylillia.com/guide/choice_install + +![画像1](/images/zh/deploy/bots/satori/llbot_local_setting.png) + +アドレスフィールドのIPアドレスがLangBotを実行しているホストのアドレスであることを確認してください(同じネットワーク内で実行している場合は```127.0.0.1```を使用)。デフォルトポート``5600``は必要に応じて変更できます。トークンの設定を推奨します。 +> +> ![画像2](/images/zh/deploy/bots/satori/llbot_open_setting.png) +> +> この画像はパブリックネットワーク設定を示しています。IPアドレスがLangBotを実行しているホストのアドレスであることを確認してください。この場合、LangBotの該当ポートを公開する必要があります。 + +## LangBot 連携 + +次に、LangBotの設定ページを開きます。 + +ボットをクリックし、追加をクリックします。 + +`プラットフォーム/アダプター`で`Satori`を選択します。 + +![画像3](/images/zh/deploy/bots/satori/llone_langbot_build.png) +> デフォルト設定(ローカルネットワーク)を使用する場合、パラメータを変更する必要はありません。 + +作成後もパラメータを調整できます。 + +![画像4](/images/zh/deploy/bots/satori/llone_langbot_setting.png) + +このアダプターが有効になっていることを確認してください。 + +![画像5](/images/zh/deploy/bots/satori/satori_platform_open.png) + + +注意:複数のDockerコンテナ間のネットワーク接続に問題がある場合は、[ネットワーク設定の詳細](/ja/workshop/network-details)を参照してください。 + From 8b4e6918f37f69b396e336dd7ea1057e717f1900 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Mon, 23 Feb 2026 16:16:58 +0800 Subject: [PATCH 26/29] Update community.mdx --- ja/insight/community.mdx | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/ja/insight/community.mdx b/ja/insight/community.mdx index 98a5d69c1..f022d1be8 100644 --- a/ja/insight/community.mdx +++ b/ja/insight/community.mdx @@ -11,13 +11,3 @@ title: "コミュニティリソース" ## 🥰 コミュニティ Discordコミュニティに参加してください: [![Discord](https://img.shields.io/discord/1335141740050649118?logo=discord&labelColor=%20%235462eb&logoColor=%20%23f5f5f5&color=%20%235462eb)](https://discord.gg/wdNEHETs87) - -### ❤ 非公式交流グループ - -プラグインとLangBotについてのチャット、ディスカッション、交流 - - -このグループのメンバーは雑談のみに関心があり、その他の質問には回答しません。公式の管理下にないため、情報の真実性や正式性を保証することはできません。 - - -- LangBot 非公式交流グループ: 472263434 ([リンク](https://qm.qq.com/q/c5mH8rHlgQ)) From b2b5f88e17e03d41a70b7c870b71b8cdeb60d28f Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Mon, 23 Feb 2026 16:17:56 +0800 Subject: [PATCH 27/29] Update community.mdx --- en/insight/community.mdx | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/en/insight/community.mdx b/en/insight/community.mdx index 774e8e8f5..ee86eae20 100644 --- a/en/insight/community.mdx +++ b/en/insight/community.mdx @@ -11,13 +11,3 @@ Collected at: https://blog.thelazy.top/tags/langbot ## 🥰 Community Join our community on Discord: [![Discord](https://img.shields.io/discord/1335141740050649118?logo=discord&labelColor=%20%235462eb&logoColor=%20%23f5f5f5&color=%20%235462eb)](https://discord.gg/wdNEHETs87) - -### ❤ Unofficial Chat Groups - -Chat, discuss, and communicate about plugins and LangBot - - -Members in this group are only interested in casual chatting and will not answer any other questions. Since it is not under official supervision, we cannot guarantee the authenticity or formality of the information. - - -- LangBot Unofficial Chat Group: 472263434 ([Link](https://qm.qq.com/q/c5mH8rHlgQ)) From c192a873565f597cd39b7e48a99d687514a9d4a8 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Mon, 23 Feb 2026 16:18:36 +0800 Subject: [PATCH 28/29] Update community.mdx --- zh/insight/community.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/insight/community.mdx b/zh/insight/community.mdx index d643efe4a..0a6ada44e 100644 --- a/zh/insight/community.mdx +++ b/zh/insight/community.mdx @@ -38,4 +38,4 @@ title: "社区资源" 此群群友只对闲聊兴趣,不会解答您的任何其他问题。 -- LangBot 非官方交流群:472263434 ([链接](https://qm.qq.com/q/c5mH8rHlgQ)) +- LangBot 非官方社区群:472263434 ([链接](https://qm.qq.com/q/c5mH8rHlgQ)) From e265b7ba2f46ebd73e356d2add37e62e34b25cb8 Mon Sep 17 00:00:00 2001 From: Typer_Body Date: Mon, 23 Feb 2026 16:19:26 +0800 Subject: [PATCH 29/29] Update community.mdx --- zh/insight/community.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh/insight/community.mdx b/zh/insight/community.mdx index 0a6ada44e..3eeeca914 100644 --- a/zh/insight/community.mdx +++ b/zh/insight/community.mdx @@ -30,7 +30,7 @@ title: "社区资源" - LangBot 插件&开发:1032327138 ([链接](https://qm.qq.com/q/G7ENGTjeou)) -### ❤ 非官方交流群 +### ❤ 非官方社区群 插件和 LangBot 聊天、对话、交流 @@ -38,4 +38,4 @@ title: "社区资源" 此群群友只对闲聊兴趣,不会解答您的任何其他问题。 -- LangBot 非官方社区群:472263434 ([链接](https://qm.qq.com/q/c5mH8rHlgQ)) +- LangBot 非官方社区:472263434 ([链接](https://qm.qq.com/q/c5mH8rHlgQ))