通过 IRC 协议接入经典频道(#room)和私信。IRC 作为内置插件,配置在 channels.irc 下。

最小配置

{
  channels: {
    irc: {
      enabled: true,
      host: "irc.example.com",
      port: 6697,
      tls: true,
      nick: "openclaw-bot",
      channels: ["#openclaw"],
    },
  },
}

安全默认值

  • dmPolicy 默认 "pairing"
  • groupPolicy 默认 "allowlist"
  • 建议启用 TLS(tls: true)
  • IRC 使用原始 TCP/TLS,不经过 OpenClaw 的正向代理路由

访问控制(两道门)

  1. 频道访问(groupPolicy + groups):bot 是否接受该频道的消息
  2. 发送者访问(groupAllowFrom / 每频道 allowFrom):谁可以在频道内触发 bot

常见配置:

{
  channels: {
    irc: {
      groupPolicy: "allowlist",
      groups: {
        "#tuirc-dev": {
          allowFrom: ["*"],
          requireMention: false,  // 无需 @mention 即可触发
        },
      },
    },
  },
}

注意:allowFrom 用于 DM,不用于频道。频道发送者用 groupAllowFrom 或每频道 allowFrom。

Mention 门控

即使频道和发送者都被允许,默认仍需 @mention 才能触发回复。日志中出现 drop channel … (missing-mention) 时,设置 requireMention: false 解除。

工具限制(公开频道安全)

{
  channels: {
    irc: {
      groups: {
        "#tuirc-dev": {
          allowFrom: ["*"],
          tools: {
            deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
          },
          toolsBySender: {
            "id:owner-nick": { deny: ["gateway", "nodes"] },
          },
        },
      },
    },
  },
}

NickServ 认证

{
  channels: {
    irc: {
      nickserv: {
        enabled: true,
        service: "NickServ",
        password: "your-nickserv-password",
      },
    },
  },
}

环境变量(默认账号)

IRC_HOST、IRC_PORT、IRC_TLS、IRC_NICK、IRC_PASSWORD、IRC_CHANNELS(逗号分隔)、IRC_NICKSERV_PASSWORD

相关链接