IRC
クラシックなチャネル(#room)やダイレクトメッセージで OpenClaw を使いたい場合は IRC を使用します。
IRC は拡張プラグインとして提供されますが、設定はメイン設定の channels.irc で行います。
クイックスタート
~/.openclaw/openclaw.jsonで IRC 設定を有効にします。- 少なくとも次を設定します。
- Gateway を起動または再起動します。
既定のセキュリティ設定
channels.irc.dmPolicyの既定値は"pairing"です。channels.irc.groupPolicyの既定値は"allowlist"です。groupPolicy="allowlist"の場合は、許可するチャネルを定義するためにchannels.irc.groupsを設定します。- 平文転送を意図的に許可するのでない限り、TLS(
channels.irc.tls=true)を使用してください。
アクセス制御
IRC チャネルには、2 つの独立した「ゲート」があります。- チャネルアクセス(
groupPolicy+groups): そのチャネルからのメッセージをボットが受け付けるかどうか。 - 送信者アクセス(
groupAllowFrom/ チャネルごとのgroups["#channel"].allowFrom): そのチャネル内で誰がボットをトリガーできるか。
- DM 許可リスト(DM 送信者アクセス):
channels.irc.allowFrom - グループ送信者許可リスト(チャネル送信者アクセス):
channels.irc.groupAllowFrom - チャネルごとの制御(チャネル + 送信者 + メンションルール):
channels.irc.groups["#channel"] channels.irc.groupPolicy="open"は未設定のチャネルを許可します(それでも既定ではメンションゲートが有効です)
nick!user@host)を使用してください。
ニックネームだけの一致は変更可能であり、channels.irc.dangerouslyAllowNameMatching: true の場合にのみ有効になります。
よくある落とし穴: allowFrom は DM 用であり、チャネル用ではない
次のようなログが表示される場合:
irc: drop group sender alice!ident@host (policy=allowlist)
channels.irc.groupAllowFromを設定する(すべてのチャネルに対するグローバル設定)- チャネルごとの送信者許可リストを設定する:
channels.irc.groups["#channel"].allowFrom
#tuirc-dev 内の誰でもボットに話しかけられるようにする):
返信トリガー(メンション)
チャネルが許可されていて(groupPolicy + groups)、送信者も許可されていても、OpenClaw はグループコンテキストでは既定でメンションゲートを使います。
つまり、メッセージにボットへ一致するメンションパターンが含まれていない限り、drop channel … (missing-mention) のようなログが表示されることがあります。
IRC チャネルでメンションなしでボットに返信させたい場合は、そのチャネルのメンションゲートを無効にします。
セキュリティに関する注意(公開チャネルで推奨)
公開チャネルでallowFrom: ["*"] を許可すると、誰でもボットをプロンプトできます。
リスクを減らすには、そのチャネルで使えるツールを制限してください。
チャネル内の全員に同じツールを適用する
送信者ごとに異なるツールを適用する(オーナーにはより強い権限を付与)
toolsBySender を使うと、"*" にはより厳しいポリシーを適用し、自分のニックにはより緩いポリシーを適用できます。
toolsBySenderのキーには、IRC 送信者 ID 値としてid:を使用してください:id:eigen、またはより強い一致にはid:eigen!~eigen@174.127.248.171を使います。- 従来の接頭辞なしキーも引き続き受け付けられますが、
id:としてのみ一致します。 - 最初に一致した送信者ポリシーが優先され、
"*"はワイルドカードのフォールバックです。
NickServ
接続後に NickServ で認証するには:register を無効にして、REGISTER の繰り返し試行を避けてください。
環境変数
既定のアカウントで次をサポートします。IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(カンマ区切り)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
トラブルシューティング
- ボットは接続するのにチャネルでまったく返信しない場合は、
channels.irc.groupsと メンションゲートによってメッセージが落とされていないか(missing-mention)を確認してください。ping なしで返信させたい場合は、そのチャネルにrequireMention:falseを設定します。 - ログインに失敗する場合は、ニックネームの利用可否とサーバーパスワードを確認してください。
- カスタムネットワークで TLS に失敗する場合は、ホスト/ポートと証明書設定を確認してください。
関連
- チャネル概要 — サポートされているすべてのチャネル
- ペアリング — DM 認証とペアリングフロー
- グループ — グループチャットの動作とメンションゲート
- チャネルルーティング — メッセージのセッションルーティング
- セキュリティ — アクセスモデルとハードニング