IRCでOpenClawを使うイメージ

【最新版】IRCでOpenClawを使う方法(チャンネル/DMに接続)

IRC

OpenClaw を IRC のチャンネルとダイレクトメッセージに接続します。

IRC は、クラシックなチャンネル(#room)や DM に OpenClaw を参加させたいときに使います。 IRC は拡張プラグインとして提供されていますが、設定はメインの config のchannels.irc に記述します。

クイックスタート

  1. ~/.openclaw/openclaw.json で IRC 設定を有効化します。
  2. 最低限、次を設定します:
{
  "channels": {
    "irc": {
      "enabled": true,
      "host": "irc.libera.chat",
      "port": 6697,
      "tls": true,
      "nick": "openclaw-bot",
      "channels": ["#openclaw"]
    }
  }
}
  1. Gateway を起動/再起動します:
openclaw gateway run

セキュリティのデフォルト

  • channels.irc.dmPolicy のデフォルトは "pairing" です。
  • channels.irc.groupPolicy のデフォルトは "allowlist" です。
  • groupPolicy="allowlist" の場合、許可するチャンネルは channels.irc.groups で定義します。
  • 意図的に平文トランスポートを許容する場合を除き、TLS(channels.irc.tls=true)を使ってください。

アクセス制御

IRC チャンネルの扱いには、2つの独立した「ゲート」があります:

  1. チャンネルの許可groupPolicy + groups): ボットがそのチャンネルからのメッセージを受け付けるかどうか。
  2. 送信者の許可groupAllowFrom / チャンネル単位の groups["#channel"].allowFrom): そのチャンネル内で、誰がボットをトリガーできるか。

config キー:

  • DM allowlist(DM 送信者の許可):channels.irc.allowFrom
  • グループ送信者 allowlist(チャンネル内送信者の許可):channels.irc.groupAllowFrom
  • チャンネル単位の制御(チャンネル + 送信者 + メンションルール):channels.irc.groups["#channel"]
  • channels.irc.groupPolicy="open" は、未設定のチャンネルも許可します(ただしデフォルトではメンション必須が有効です)。

allowlist のエントリは、安定した送信者 ID(nick!user@host)を使ってください。 bare nick のみでの照合は変更可能で危険なため、channels.irc.dangerouslyAllowNameMatching: true のときだけ有効です。

よくある落とし穴:allowFrom は DM 用で、チャンネル用ではない

ログに次のように出る場合:

  • irc: drop group sender alice!ident@host (policy=allowlist)

これは、送信者がグループ/チャンネルメッセージとして許可されていないことを意味します。次のいずれかで修正します:

  • channels.irc.groupAllowFrom を設定(全チャンネル共通)
  • チャンネル単位の送信者 allowlist:channels.irc.groups["#channel"].allowFrom

例(#tuirc-dev では誰でもボットに話しかけられるようにする):

{
  channels: {
    irc: {
      groupPolicy: "allowlist",
      groups: {
        "#tuirc-dev": { allowFrom: ["*"] },
      },
    },
  },
}

返信トリガー(メンション)

チャンネルが許可され(groupPolicy + groups)、送信者も許可されていても、OpenClaw はグループ文脈ではデフォルトでメンション必須(mention-gating)です。

そのため、メッセージにメンションパターンが含まれないと、drop channel … (missing-mention) のようなログが出ることがあります。

IRC チャンネルでメンションなしで返信させたい場合は、そのチャンネルでメンション必須を無効化します:

{
  channels: {
    irc: {
      groupPolicy: "allowlist",
      groups: {
        "#tuirc-dev": {
          requireMention: false,
          allowFrom: ["*"],
        },
      },
    },
  },
}

もしくは、すべての IRC チャンネルを許可し、メンション不要で返信させるには:

{
  channels: {
    irc: {
      groupPolicy: "open",
      groups: {
        "*": { requireMention: false, allowFrom: ["*"] },
      },
    },
  },
}

セキュリティノート(公開チャンネル向けの推奨)

公開チャンネルで allowFrom: ["*"] を許可すると、誰でもボットをプロンプトできてしまいます。 リスクを下げるには、そのチャンネル向けにツールを制限してください。

チャンネル内の全員に同じツール制限を適用する

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

送信者ごとにツール制限を変える(オーナーは権限強め)

toolsBySender を使うと、"*" には厳しめ、あなたの nick には緩め、といった設定ができます:

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

Notes:

  • toolsBySender のキーは、IRC sender identity 値に対して id: を使います。id:eigen や、より強い一致にするなら id:eigen!~eigen@174.127.248.171
  • レガシーな prefix なしキーも受け付けられ、id: として一致判定されます。
  • 最初に一致した送信者ポリシーが採用され、"*" はワイルドカードのフォールバックです。

グループのアクセス制御とメンション必須(mention-gating)の関係については、/channels/groupsも参照してください。

NickServ

接続後に NickServ で identify するには:

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

(任意)接続時に一度だけ登録するには:

{
  "channels": {
    "irc": {
      "nickserv": {
        "register": true,
        "registerEmail": "bot@example.com"
      }
    }
  }
}

nick を登録したら、REGISTER を繰り返さないように register を無効化してください。

環境変数

デフォルトアカウントは次の環境変数をサポートします:

  • IRC_HOST
  • IRC_PORT
  • IRC_TLS
  • IRC_NICK
  • IRC_USERNAME
  • IRC_REALNAME
  • IRC_PASSWORD
  • IRC_CHANNELS(カンマ区切り)
  • IRC_NICKSERV_PASSWORD
  • IRC_NICKSERV_REGISTER_EMAIL

トラブルシューティング

  • ボットが接続できているのにチャンネルで返信しない場合は、channels.irc.groups と、メンション必須が missing-mention で drop していないかを確認します。 ping なしで返信させたい場合は、チャンネルに requireMention:false を設定してください。
  • ログインが失敗する場合は、nick の空き状況とサーバーパスワードを確認します。
  • カスタムネットワークで TLS が失敗する場合は、host/port と証明書設定を確認します。

参考

BizClaw 導入支援

OpenClaw の構築を
まるごと代行します

Mac mini のセットアップから Slack・iMessage 連携まで、届いた日から使える状態でお届けします。

サービスを見る

関連記事

Read article
AIエージェントのメモリスタックとは?2026年に重要度が上がる理由をやさしく解説

AIエージェントのメモリスタックとは?2026年に重要度が上がる理由をやさしく解説

Read article
OpenClaw vs Hermes vs Claude、創業者はどれを選ぶべき?2026年版の実務比較

OpenClaw vs Hermes vs Claude、創業者はどれを選ぶべき?2026年版の実務比較

Read article
X公式MCPサーバーとは?AIエージェント運用で何が変わるのかを実務目線で解説

X公式MCPサーバーとは?AIエージェント運用で何が変わるのかを実務目線で解説