Back to Lobehub

渠道概览

docs/usage/channels/overview.zh-CN.mdx

2.2.19.6 KB
Original Source

渠道

渠道功能允许您将 LobeHub 代理连接到外部消息平台。一旦连接,用户可以直接在他们已经使用的聊天应用中与您的 AI 助手互动,无需访问 LobeHub。

[!NOTE]

微信渠道目前需要有效订阅。如果您使用的是没有订阅的社区版,渠道设置中可能暂时不会显示微信选项。

支持的平台

平台描述
Discord连接到 Discord 服务器,用于频道聊天和私信
Slack连接到 Slack,用于频道和私信对话
Telegram连接到 Telegram,用于私人和群组对话
LINE通过 LINE Messaging API 连接到 LINE,支持私聊和群聊
iMessage通过 LobeHub Desktop 本地 BlueBubbles 桥接连接 iMessage(Labs)
QQ连接到 QQ,用于群聊和私信
微信通过 iLink Bot 连接到微信,用于私聊和群聊(需要有效订阅)
飞书连接到飞书,用于团队协作(中国版)
Lark连接到 Lark,用于团队协作(国际版)

工作原理

每个渠道集成都通过将目标平台上的机器人账户与 LobeHub 代理连接来实现。当用户向机器人发送消息时,LobeHub 会通过代理处理消息并将响应发送回同一对话。

  • 按代理配置 — 每个代理可以拥有自己的一组渠道连接,因此不同的代理可以服务于不同的平台或社区。
  • 同时支持多个渠道 — 单个代理可以同时连接到 Discord、Slack、Telegram、LINE、QQ、微信、飞书和 Lark。LobeHub 会自动将消息路由到正确的代理。
  • 安全的凭据存储 — 所有机器人令牌和应用密钥在存储前都会被加密。

快速开始

  1. 前往您的代理设置页面,选择 渠道 标签
  2. 选择一个平台并按照设置指南操作:

如果您在渠道列表中看不到 微信,请先确认当前账户是否拥有有效订阅。

功能支持

所有平台均支持文本消息。某些功能因平台而异:

功能DiscordSlackTelegramLINEQQ微信飞书Lark
文本消息
私人消息
群组聊天
表情反应部分支持部分支持
图片 / 文件附件仅入站

允许的用户(全局)

高级设置 里的 允许的用户 (allowFrom) 是一道全局用户级闸门。填入后,所有入站消息(私信和群聊 @提及 都算)都必须来自列表里的用户,无论私信策略 / 群组策略选什么都生效。留空则不做用户级过滤,由各 scope 的策略自行决定。

填入后的行为:

入口不在白名单的发送者
私信被拒绝,对方在私信里收到一条 "您没有私信此机器人的权限" 的系统提示。
群组 / 频道 @提及被拒绝,会在 @ 所在的同一线程里发一条 "您没有与该机器人交互的权限" 的提示(Discord 上这是 @ 时自动创建的 thread,不会污染父频道;其他平台则可见于该群组)。

每行填一个用户:左边是平台用户 ID(必填),右边是可选的 备注 —— 这个备注只会在设置页展示给你自己,让你日后回看时不用费力辨认 U01ABCXYZ 到底是张三还是值班号;运行时完全不读它。

防自我锁出:如果你已经填了 你的平台用户 ID(AI 工具字段),那个 ID 会被全局白名单隐式信任。即便你把 bot 收紧到只给朋友、忘了把自己加进 允许的用户,也不会被锁出。

私信策略

私信策略只影响私信 — 群聊里的 @提及 由下面的 群组策略 单独管理。全局 允许的用户 的用户级过滤也会同时生效;各 scope 的策略叠加在上面。

策略行为
开放 (Open)平台上的任何用户都可以私信机器人(如设置了全局白名单则受其约束)。适合面向所有人开放的助手。
白名单 (Allowlist)私信需要发送者在 允许的用户 里。和 Open 的差别在白名单为空时:Allowlist 模式下会全部拒绝,而 Open 模式下任何人都能私信。
配对审批 (Pairing)Allowlist 共享同一份名单,但非名单用户被拒后会收到一次性配对码,由你(属主)通过 /approve <code> 审批。审批通过的用户会被自动追加到 允许的用户,后续 DM 直通。需先填 你的平台用户 ID 并部署 Redis。
禁用 (Disabled)机器人会忽略所有私信。适合那种 " 只在群里被 @ 时才回复 " 的场景。

群组策略

同样适用于支持群聊的那些平台,每个渠道都有一个 群组策略 (Group Policy),用来控制机器人在群组、频道、子话题里的响应范围。它跟私信策略相互独立:groupPolicy=disabled 的机器人仍会接收私信(受私信策略约束),反之亦然。

策略行为
开放 (Open)在机器人能读取的任何群组、频道、子话题里被 @ 都响应(默认)。
白名单 (Allowlist)只有 允许的频道 里列出的频道 / 群组 / 会话才会响应,其他都忽略。
禁用 (Disabled)忽略所有非私信流量,机器人退化为纯私信模式。

选择 白名单 时会出现 允许的频道 编辑器:每行填一个平台原生的频道 / 群组 / 会话 ID,可附带一个备注(比如 #general),备注只展示给你自己,方便日后辨认每个 ID 是哪个频道。

Discord 父频道:在 Discord 频道里 @提及 机器人时,平台会自动开一个 reply thread,入站 thread ID 不等于 Discord「复制频道 ID」给你的那个值。这里直接粘贴父频道 ID 就行 —— 它会让父频道下的所有自动 reply thread 都通过白名单。如果你只想放行某个具体 thread,也可以填那个 thread 的 ID,效果就是只放行该 thread。

各平台默认值

所有支持的平台两个策略默认都为 开放 (Open),开箱即用。需要私有化时按渠道改成 白名单 (Allowlist)禁用 (Disabled) 即可。微信因本身就是 DM 模式,没有这两个策略选项。

如何获取用户的平台 ID

  • Discord — 在用户设置里开启开发者模式,右键用户头像选 复制用户 ID
  • Slack — 打开用户资料 → 点击 菜单 → 复制成员 ID(以 U 开头)。
  • Telegram — 让用户私信 @userinfobot,或者从机器人收到的 update 里读 from.id
  • QQ — 使用 OpenAPI 事件 payload 里的 tiny_id(用户对外可见的 QQ 号不一定就是平台 ID)。
  • 飞书 / Lark — 使用事件 payload 里的 open_id,或开发者后台显示的 User ID

如何获取频道 / 群组 ID

  • Discord — 开启开发者模式,右键频道选 复制频道 ID
  • Slack — 打开频道详情面板,底部能看到频道 ID(以 C 开头)。
  • Telegram — 把群里的一条消息转发给 @userinfobot,或者从机器人收到的 update 里读 chat.id(群组是负数)。
  • 飞书 / Lark — 使用事件 payload 里的 chat_id