IRC は、クラシックなチャンネル(Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
#room)とダイレクトメッセージで OpenClaw を使いたい場合に使用します。
IRC はバンドルされた Plugin として同梱されていますが、メイン設定の channels.irc で構成します。
クイックスタート
~/.openclaw/openclaw.jsonで IRC 設定を有効にします。- 少なくとも次を設定します。
- Gateway を起動/再起動します。
セキュリティのデフォルト
- IRC は、OpenClaw のオペレーター管理フォワードプロキシルーティングの外側で raw TCP/TLS ソケットを使用します。すべての送信通信でそのフォワードプロキシを必須とするデプロイでは、直接の IRC 送信が明示的に承認されていない限り、
channels.irc.enabled=falseを設定してください。 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)を使用してください。
bare nick の照合は変更可能であり、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 を使用して、"*" にはより厳しいポリシーを、自分の nick にはより緩いポリシーを適用します。
toolsBySenderキーでは、IRC 送信者 ID 値にid:を使用してください。 より強い照合にはid:eigenまたはid:eigen!~eigen@174.127.248.171を使用します。- 従来のプレフィックスなしキーも引き続き受け入れられ、
id:としてのみ照合されます。 - 最初に一致した送信者ポリシーが優先されます。
"*"はワイルドカードのフォールバックです。
NickServ
接続後に NickServ で識別するには:register を無効にしてください。
環境変数
デフォルトアカウントは次に対応しています。IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(カンマ区切り)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
IRC_HOST はワークスペースの .env からは設定できません。ワークスペース .env ファイルを参照してください。
トラブルシューティング
- ボットが接続しているのにチャンネルでまったく返信しない場合は、
channels.irc.groupsおよび メンションゲートがメッセージをドロップしていないか(missing-mention)を確認してください。ping なしで返信させたい場合は、そのチャンネルにrequireMention:falseを設定します。 - ログインに失敗する場合は、nick の利用可否とサーバーパスワードを確認してください。
- カスタムネットワークで TLS が失敗する場合は、ホスト/ポートと証明書設定を確認してください。
関連
- チャンネル概要 — 対応しているすべてのチャンネル
- ペアリング — DM 認証とペアリングフロー
- グループ — グループチャットの動作とメンションゲート
- チャンネルルーティング — メッセージのセッションルーティング
- セキュリティ — アクセスモデルと強化