IRC 是互联网最古老的实时通讯协议之一,至今仍在开源社区、技术圈广泛使用。OpenClaw 支持通过 IRC 扩展插件接入任意 IRC 服务器,让 AI Agent 出现在你的 IRC 频道和私信中。
快速开始
在 ~/.openclaw/openclaw.json 中添加:
{
"channels": {
"irc": {
"enabled": true,
"host": "irc.libera.chat",
"port": 6697,
"tls": true,
"nick": "openclaw-bot",
"channels": ["#openclaw"]
}
}
}启动 Gateway:
openclaw gateway run安全默认值
OpenClaw IRC 默认采用保守安全策略:
dmPolicy:默认"pairing",未知用户需配对后才能私信groupPolicy:默认"allowlist",未配置的频道不会响应- TLS:强烈建议开启(
tls: true),避免明文传输
访问控制:两道门
IRC 访问控制分两个独立层级:
第一道:频道访问(Channel Gate)
由 groupPolicy + groups 控制,决定 Bot 是否接收某个频道的消息。
第二道:发言人访问(Sender Gate)
由 groupAllowFrom / 每频道的 allowFrom 控制,决定频道内谁能触发 Bot。
{
"channels": {
"irc": {
"groupPolicy": "allowlist",
"groups": {
"#dev": {
"allowFrom": ["alice!~alice@trusted.host"],
"requireMention": true
}
}
}
}
}建议用
nick!user@host格式识别用户(稳定身份)。若要用昵称匹配,需开启dangerouslyAllowNameMatching: true,但昵称可被任何人占用,存在安全风险。
常见坑:allowFrom 只管私信,不管频道
如果日志中出现:
irc: drop group sender alice!ident@host (policy=allowlist)
说明是频道发言人被拒绝,不是私信策略问题。修复方式:
{
"channels": {
"irc": {
"groupPolicy": "allowlist",
"groups": {
"#tuirc-dev": {
"allowFrom": ["*"]
}
}
}
}
}@提及触发控制
即使频道和发言人都已放行,默认情况下 Bot 只在被 @提及时才响应。
如需 Bot 响应所有消息(不要求提及):
{
"channels": {
"irc": {
"groupPolicy": "allowlist",
"groups": {
"#tuirc-dev": {
"requireMention": false,
"allowFrom": ["*"]
}
}
}
}
}⚠️ 公开频道中关闭提及要求风险较高,建议配合严格的
allowFrom白名单使用。
工具权限:按用户分级
可以为不同用户配置不同的工具权限,实现「普通用户 vs 管理员」分级:
所有频道用户使用相同工具集:
{
"channels": {
"irc": {
"groups": {
"#dev": {
"tools": { "profile": "minimal" }
}
}
}
}
}按发言人分配不同工具(管理员拥有更多权限):
{
"channels": {
"irc": {
"groups": {
"#dev": {
"senderTools": {
"alice!~alice@trusted.host": { "profile": "coding" },
"*": { "profile": "minimal" }
}
}
}
}
}
}NickServ 认证
在需要注册昵称的 IRC 服务器(如 Libera.Chat)上,配置 NickServ 自动认证:
{
"channels": {
"irc": {
"nickserv": {
"password": "your-nickserv-password"
}
}
}
}环境变量
| 变量名 | 说明 |
|---|---|
IRC_HOST | IRC 服务器地址 |
IRC_PORT | 端口(默认 6697) |
IRC_NICK | Bot 昵称 |
IRC_PASSWORD | 服务器/NickServ 密码 |
IRC_CHANNELS | 加入频道(逗号分隔) |
常见问题
Bot 加入频道但不响应?
检查 requireMention 设置,以及日志中是否有 drop channel 或 drop group sender 提示,按提示调整 groupPolicy 和 allowFrom。
昵称被占用?
配置 NickServ 认证,或在 nick 中设置备用昵称列表。
原文:IRC - OpenClaw | 来源:OpenClaw 官方文档