通道适配器

LibreFang 支持 45 个消息平台适配器,连接您的 agent 到用户所在的每个平台。


支持的平台

核心平台

平台说明状态
TelegramBot API
DiscordBot API
SlackBot API
WhatsAppBusiness API
SignalBot API
MatrixClient API
EmailIMAP/SMTP

企业平台

平台说明
Microsoft TeamsBot Framework
MattermostWebhook/API
Google ChatBot API
WebexBot API
Feishu/LarkOpen Platform
ZulipAPI

社交平台

平台说明
LINEMessaging API
ViberBot API
Facebook MessengerGraph API
MastodonClient API
BlueskyAT Protocol
RedditOAuth API
LinkedInMarketing API
TwitchPubSub

社区平台

平台说明
IRCClient/Server
XMPPClient API
GuildedHTTP API
RevoltHTTP API
KeybaseClient API
DiscourseAPI
GitterClient API

隐私平台

平台说明
ThreemaGateway API
NostrNIP-04/26
MumbleMurmur API
Nextcloud TalkHTTP API
Rocket.ChatClient API
NtfyHTTP API
GotifyHTTP API

工作平台

平台说明
PumbleHTTP API
FlockWebhook/API
TwistAPI
DingTalkOpen API
ZaloAPI
QQBot API
WeCom / 企业微信企业 API
微信(个人)iLink Bot API

IoT / 集成

平台说明功能标志
MQTTMQTT v3.1.1/v5 pub/sub(使用 rumqttc 库)all-channels

MQTT 说明: 需要在编译时启用 all-channels feature flag。支持订阅主题接收消息、发布 agent 响应到响应主题,内置自动重连和指数退避。支持 QoS 三种级别(AtMostOnce / AtLeastOnce / ExactlyOnce),支持用户名/密码认证。

MQTT 配置示例:

[channels.mqtt]
host = "broker.example.com"
port = 1883
client_id = "librefang-bot"
subscribe_topics = ["home/agents/input"]
response_topic = "home/agents/output"
qos = "at_least_once"
default_agent = "home-assistant"

配置

Telegram

[telegram]
bot_token_env = "TELEGRAM_BOT_TOKEN"
allowed_users = ["user_id_1", "user_id_2"]

Discord

[discord]
bot_token_env = "DISCORD_BOT_TOKEN"
guild_ids = ["server_id_1", "server_id_2"]

Slack

[slack]
bot_token_env = "SLACK_BOT_TOKEN"
app_token_env = "SLACK_APP_TOKEN"

微信(个人)

通过腾讯官方 iLink 协议(ilinkai.weixin.qq.com)接入个人微信,与 WeChat ClawBot 插件使用相同的底层协议。

[channels.wechat]
# bot_token_env = "WECHAT_BOT_TOKEN"  # 可选:保存上次登录的 token,跳过扫码
default_agent = "assistant"
allowed_users = []                    # 留空允许所有人;格式: "hash@im.wechat"

使用方式:

  1. 启动 LibreFang 后,日志中会显示二维码
  2. 用微信扫码确认登录
  3. 开始收发消息

支持的消息类型: 文本、图片、语音、文件、视频

限制: 媒体上传暂不支持(CDN AES-128-ECB 加密流程待实现),群聊检测暂不支持。


通道覆盖

每个通道支持覆盖设置:

[channels.telegram]
model = "claude-sonnet-4-20250514"
system_prompt = "你是一个客服 agent"
dm_policy = "allow"  # allow/deny
group_policy = "allow"  # allow/deny
rate_limit = 10  # 每分钟消息数
output_format = "markdown"  # markdown/html/plaintext

覆盖选项

选项说明
model覆盖默认模型
system_prompt覆盖系统提示
dm_policyDM 策略 (allow/deny)
group_policy群组策略 (allow/deny)
rate_limit每分钟限制
output_format输出格式

速率限制

每个通道有内置速率限制:

  • 每用户限制 - 防止滥用
  • 每通道限制 - 平台限制
  • 成本感知 - 跟踪 token 使用
[channels.telegram]
rate_limit = 10  # 每分钟 10 条消息

格式化

LibreFang 自动格式化消息:

  • Telegram → HTML
  • Slack → Mrkdwn
  • Discord → 嵌入
  • 其他 → 纯文本

CLI 命令

# 列出通道状态
librefang channel list

# 设置新通道
librefang channel setup telegram

# 测试通道
librefang channel test telegram

# 启用通道
librefang channel enable telegram

# 禁用通道
librefang channel disable telegram

消息路由

AgentRouter 根据规则路由消息:

  • 用户匹配 - 特定用户
  • 通道匹配 - 特定通道
  • 内容匹配 - 关键词/正则

最佳实践

  1. 限制访问 - 使用 allowed_users 限制谁可以访问
  2. 设置速率限制 - 防止滥用
  3. 使用覆盖 - 为不同通道定制行为
  4. 监控使用 - 定期检查通道统计