重构MaiBot适配器为官方API Server长连接采集模式并补全Dashboard说明

This commit is contained in:
liuwei
2026-04-29 09:58:50 +08:00
parent d22e380c4e
commit a6f3eb9688
4 changed files with 871 additions and 513 deletions

View File

@@ -1,45 +1,104 @@
[MaiBotAdapter]
enable = true
# 命令触发词
# 1. 不需要前缀,直接使用 “麦麦 你好” 这种形式即可
# 2. 群聊里也支持 @机器人 后直接转发给 MaiBot
# 3. 如果你后面希望只保留自动插话入口,可以把命令缩减到一个内部调试词
commands = ["麦麦", "maibot", "mai"]
command-tip = """
🤖MaiBot 对话指令:
麦麦 你好
"""
# 是否默认采集群消息到 MaiBot
# 1. 这是“把消息送给 MaiBot 做上下文与记忆”的总开关
# 2. 关闭后,群消息不会再进入 MaiBot
# 3. 这个开关只影响采集,不影响 MaiBot 已经生成中的历史任务
collect_group_messages = true
# 是否允许群聊里通过 @机器人 触发。
allow_group_at = true
# 是否默认采集私聊消息到 MaiBot
# 1. 打开后,私聊也会进入 MaiBot 的上下文链路;
# 2. 如果你暂时只想把 MaiBot 当群聊人格,就可以先关掉;
# 3. 当前按你的要求默认开启“全量采集”能力。
collect_private_messages = true
# MaiBot WebUI 服务根地址
# 1. 不要带末尾斜杠
# 2. 插件会基于这个地址自动请求:
# - /api/webui/auth/verify
# - /api/webui/ws-token
# - /ws
server_url = "http://192.168.2.240:8001"
# 是否允许把 MaiBot 的回复真正发回微信
# 1. true 表示 MaiBot 不仅接收消息,也可以实际参与说话
# 2. false 表示只做上下文采集与记忆沉淀,不做回声输出;
# 3. 这是你要求的“采集默认开启,回复单独用开关控制”的核心开关。
enable_reply_output = true
# MaiBot WebUI 的访问令牌
# 1. 这是你在 MaiBot WebUI 登录页里使用的 token
# 2. 插件会先调用 auth/verify 写入 Cookie再换取一次性 ws-token
# 3. 建议部署完成后改成你自己的正式 token
access_token = ""
# 是否允许 MaiBot 往群里回复
# 1. 只影响群输出,不影响群消息采集
# 2. 如果你希望先观察 MaiBot 记忆效果、不让它插话,可以改成 false
# 3. 与 enable_reply_output 共同生效
reply_group_messages = true
# WebSocket 聊天的超时配置(秒)
# 1. connect_timeout 控制 HTTP/WS 建连超时
# 2. reply_timeout 控制发送问题后等待 MaiBot 回复的最长时间。
connect_timeout = 15
reply_timeout = 90
# 是否允许 MaiBot 往私聊里回复
# 1. 只影响私聊输出,不影响私聊消息采集
# 2. 如果你担心它先在私聊里误触发,可以单独关闭;
# 3. 与 enable_reply_output 共同生效。
reply_private_messages = true
# 会话维度
# 1. room 表示同一个群共享一个 MaiBot 身份语境
# 2. sender 表示每个发言人各自独立会话;
# 3. 当前默认 room更适合群聊人格连续性
session_scope = "room"
# 群功能开关是否参与“能不能往群里说话”的判断
# 1. true继续复用 abot 现有的群功能权限体系
# 2. false只要 enable_reply_output/reply_group_messages 打开,就允许 MaiBot 在群里说话;
# 3. 无论 true 还是 false消息都会照常采集并发送给 MaiBot
respect_group_feature_switch = true
# 是否校验 HTTPS 证书。
# 如果你后面给 MaiBot 挂了自签名证书,可以临时改成 false。
# 群回复时是否自动 @ 触发者:
# 1. false直接发普通文本更像群里自然插话
# 2. true会尝试 @ 原发言人,更适合点对点回应;
# 3. 当前默认 false更贴近“参与聊天”的体验。
mention_user_on_group_reply = false
# MaiBot 官方 API Server 的 WebSocket 地址:
# 1. 这里必须填官方 API Server 暴露出来的 /ws
# 2. 当前远端部署已经映射为 18009 -> 8090
# 3. 不再使用 WebUI 的 /api/webui/ws-token 和 /api/webui/ws。
api_server_ws_url = "ws://192.168.2.240:18009/ws"
# MaiBot API Server 的 api_key
# 1. 这个值会进入握手头 x-apikey 和消息维度 message_dim.api_key
# 2. MaiBot 服务端会基于它做用户路由与会话归属;
# 3. 当前远端为了联调方便允许空列表校验,但客户端这里依旧建议明确填入一个稳定值。
api_key = "abot-maibot"
# 平台名:
# 1. 会进入握手头 x-platform
# 2. 也会进入 message_info.platform 与 message_dim.platform
# 3. 建议保持稳定,后续日志、路由和排障都会更清晰。
platform_name = "abot-maibot"
# 是否校验 SSL 证书:
# 1. 当前局域网 http/ws 直连场景保持 true 也不会有问题;
# 2. 如果以后切成 wss 且用自签名证书,可临时改成 false
# 3. 生产上仍建议优先使用有效证书。
verify_ssl = true
# 建连超时(秒):
# 1. 控制首次连接和重连时的握手超时;
# 2. 局域网场景通常 10~15 秒足够;
# 3. 太短容易误判网络抖动,太长则故障恢复慢。
connect_timeout = 15
# 接收超时(秒):
# 1. 长连接空闲时不代表异常,因此这里要比 connect_timeout 大很多;
# 2. aiohttp 会结合 heartbeat 做活性检测;
# 3. 当前默认 120 秒,适合持续在线聊天场景。
receive_timeout = 120
# 心跳间隔(秒):
# 1. 用于保持官方 API Server 长连接活性;
# 2. 太短会增加无意义流量,太长会让断线发现变慢;
# 3. 当前默认 20 秒,与 maim_message 默认配置接近。
heartbeat_interval = 20
# 重连间隔(秒):
# 1. 长连接断开后,这里控制多久再尝试重连;
# 2. 当前默认 5 秒,适合局域网服务;
# 3. 如果后面网络更不稳定,可以适当调大。
reconnect_delay = 5
# 本地待发送消息队列长度:
# 1. 这是 abot -> MaiBot 的缓冲区;
# 2. 队列满了以后,新消息会直接丢弃并打印详细日志;
# 3. 默认 500足够覆盖绝大多数群聊高峰。
queue_maxsize = 500
# 单条消息发送到 MaiBot 的最大重试次数:
# 1. 只处理瞬时断线这类临时故障;
# 2. 超过次数后会落日志并丢弃,避免消息永久堆积;
# 3. 当前默认 3 次,兼顾稳定性与可控性。
max_send_retries = 3