From 3691c151757322f9b8cc790f78273e18ec0ab2be Mon Sep 17 00:00:00 2001 From: Shirong Lu <73147033+happysnaker@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:07:52 +0800 Subject: [PATCH 1/3] docs: add qq-ai-bot integration example --- readme.md | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/readme.md b/readme.md index c909842..60a3b73 100644 --- a/readme.md +++ b/readme.md @@ -42,6 +42,77 @@ docker run -d \ initialencounter/llonebot:latest ``` +## 接入 qq-ai-bot(可选) + +如果你想把 LLOneBot 作为 **QQ ↔ AI** 链路的协议侧,可以直接接一个现成的 `qq-ai-bot`: + +```yaml +version: "3" +services: + llonebot: + image: initialencounter/llonebot:latest + container_name: llonebot + restart: always + ports: + - 3001:3001 + - 3080:3080 + volumes: + - ./QQ:/root/.config/QQ + - ./llonebot:/root/llonebot + networks: + - qq_ai_bot + + qq-ai-bot: + image: ghcr.io/happysnaker/qq-ai-bot:latest + container_name: qq-ai-bot + restart: always + environment: + - BOT_PORT=8080 + - DATA_DIR=/app/data + - SESSION_FILE_PATH=/app/data/sessions.json + - ONEBOT_MODE=forward + - ONEBOT_FORWARD_WS_URL=ws://llonebot:3001 + - ONEBOT_ACCESS_TOKEN=llonebot-shared-token + - ONEBOT_ALLOW_GROUP=true + - ONEBOT_REQUIRE_MENTION_IN_GROUP=true + - ONEBOT_ALLOW_PRIVATE=true + - ONEBOT_PROGRESS_MODE=message + - ACP_AGENT_COMMAND=node + - 'ACP_AGENT_ARGS_JSON=["dist/examples/mock-acp-agent.js"]' + - ACP_AGENT_WORKDIR=/app + - ACP_REUSE_SESSION=true + - ACP_VERBOSE_MODE=verbose + ports: + - 18080:8080 + volumes: + - ./qq-ai-bot/data:/app/data + networks: + - qq_ai_bot + +networks: + qq_ai_bot: + driver: bridge +``` + +然后在 LLOneBot 的 OneBot11 配置里启用一个 **正向 WS**: + +```json5 +{ + "type": "ws", + "enable": true, + "host": "0.0.0.0", + "port": 3001, + "token": "llonebot-shared-token", + "messageFormat": "array", + "reportSelfMessage": false +} +``` + +注意:`qq-ai-bot` 里的 `ONEBOT_ACCESS_TOKEN` 必须和 LLOneBot OneBot11 配置里的 `token` 保持一致。 + +- 项目地址: +- 项目页: + ## 快速体验 ```bash From cfba5a8f6d1e2e7131b1aa75b46251b8788b7635 Mon Sep 17 00:00:00 2001 From: Shirong Lu <73147033+happysnaker@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:19:16 +0800 Subject: [PATCH 2/3] docs: add reusable qq-ai-bot compose example --- examples/qq-ai-bot-compose.yml | 48 ++++++++++++++++++++++++++++++++++ readme.md | 6 ++++- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 examples/qq-ai-bot-compose.yml diff --git a/examples/qq-ai-bot-compose.yml b/examples/qq-ai-bot-compose.yml new file mode 100644 index 0000000..c70a12e --- /dev/null +++ b/examples/qq-ai-bot-compose.yml @@ -0,0 +1,48 @@ +version: "3" + +services: + llonebot: + image: initialencounter/llonebot:latest + container_name: llonebot + restart: always + ports: + - 3001:3001 + - 3080:3080 + volumes: + - ./QQ:/root/.config/QQ + - ./llonebot:/root/llonebot + networks: + - qq_ai_bot + + qq-ai-bot: + image: ghcr.io/happysnaker/qq-ai-bot:latest + container_name: qq-ai-bot + restart: always + environment: + - BOT_PORT=8080 + - DATA_DIR=/app/data + - SESSION_FILE_PATH=/app/data/sessions.json + - ONEBOT_MODE=forward + # Docker 私有网络内可直接填 ws://llonebot:3001 + # 跨主机 / 公网 / 反向代理请改成 wss://... + - ONEBOT_FORWARD_WS_URL=${ONEBOT_FORWARD_WS_URL} + - ONEBOT_ACCESS_TOKEN=llonebot-shared-token + - ONEBOT_ALLOW_GROUP=true + - ONEBOT_REQUIRE_MENTION_IN_GROUP=true + - ONEBOT_ALLOW_PRIVATE=true + - ONEBOT_PROGRESS_MODE=message + - ACP_AGENT_COMMAND=node + - 'ACP_AGENT_ARGS_JSON=["dist/examples/mock-acp-agent.js"]' + - ACP_AGENT_WORKDIR=/app + - ACP_REUSE_SESSION=true + - ACP_VERBOSE_MODE=verbose + ports: + - 18080:8080 + volumes: + - ./qq-ai-bot/data:/app/data + networks: + - qq_ai_bot + +networks: + qq_ai_bot: + driver: bridge diff --git a/readme.md b/readme.md index 60a3b73..6e19a6c 100644 --- a/readme.md +++ b/readme.md @@ -46,6 +46,8 @@ docker run -d \ 如果你想把 LLOneBot 作为 **QQ ↔ AI** 链路的协议侧,可以直接接一个现成的 `qq-ai-bot`: +完整 compose 示例见:[examples/qq-ai-bot-compose.yml](./examples/qq-ai-bot-compose.yml) + ```yaml version: "3" services: @@ -71,7 +73,7 @@ services: - DATA_DIR=/app/data - SESSION_FILE_PATH=/app/data/sessions.json - ONEBOT_MODE=forward - - ONEBOT_FORWARD_WS_URL=ws://llonebot:3001 + - ONEBOT_FORWARD_WS_URL=${ONEBOT_FORWARD_WS_URL} - ONEBOT_ACCESS_TOKEN=llonebot-shared-token - ONEBOT_ALLOW_GROUP=true - ONEBOT_REQUIRE_MENTION_IN_GROUP=true @@ -108,6 +110,8 @@ networks: } ``` +如果你是在 **Docker 私有桥接网络** 内直接把两个容器互连,`ONEBOT_FORWARD_WS_URL` 可以填容器内网地址;如果你是跨主机、跨网络段,或者需要经过公网 / 反向代理,请改成带 TLS 的 `wss://...` 地址。 + 注意:`qq-ai-bot` 里的 `ONEBOT_ACCESS_TOKEN` 必须和 LLOneBot OneBot11 配置里的 `token` 保持一致。 - 项目地址: From 83312dfb4d3ceceb6c84b68d16d71d6114da8d89 Mon Sep 17 00:00:00 2001 From: Shirong Lu <73147033+happysnaker@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:21:56 +0800 Subject: [PATCH 3/3] docs: avoid hardcoded ws example in comment --- examples/qq-ai-bot-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/qq-ai-bot-compose.yml b/examples/qq-ai-bot-compose.yml index c70a12e..7a41b63 100644 --- a/examples/qq-ai-bot-compose.yml +++ b/examples/qq-ai-bot-compose.yml @@ -23,8 +23,8 @@ services: - DATA_DIR=/app/data - SESSION_FILE_PATH=/app/data/sessions.json - ONEBOT_MODE=forward - # Docker 私有网络内可直接填 ws://llonebot:3001 - # 跨主机 / 公网 / 反向代理请改成 wss://... + # Docker 私有网络内可直接填容器内网 WebSocket 地址 + # 跨主机 / 公网 / 反向代理请改成带 TLS 的 WSS 地址 - ONEBOT_FORWARD_WS_URL=${ONEBOT_FORWARD_WS_URL} - ONEBOT_ACCESS_TOKEN=llonebot-shared-token - ONEBOT_ALLOW_GROUP=true