コンテンツにスキップ

OpenClaw IRC設定ガイド:3ステップで接続を完了

開発を進める中で、チャットツールと AI を連携させたい場面は多いですよね。特に IRC のような歴史のある環境でボットを動かそうとすると、設定が複雑で挫折してしまうこともあるかもしれません。

OpenClaw を使えば、シンプルな設定で IRC チャンネルやダイレクトメッセージに AI を導入できます。クラシックな #room でボットを動かすための設定方法を詳しく見ていきましょう。

OpenClaw を従来の IRC チャンネル(#room)やダイレクトメッセージで使用したい場合にこの設定を行います。 IRC は拡張プラグインとして提供されていますが、設定はメインの設定ファイル内の 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 を起動または再起動します。
Terminal window
openclaw gateway run

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

Section titled “セキュリティのデフォルト設定”
  • 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): そのチャンネル内で誰がボットを起動できるか。

設定キーの詳細は以下の通りです。

  • 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 用です

Section titled “よくある落とし穴: allowFrom はチャンネル用ではなく DM 用です”

ログに以下のような内容が表示される場合があります。

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

これは、その送信者が グループ/チャンネル メッセージに対して許可されていないことを意味します。以下のいずれかの方法で解決してください。

  • channels.irc.groupAllowFrom を設定する(全チャンネル共通のグローバル設定)。
  • チャンネルごとに送信者許可リストを設定する: channels.irc.groups["#channel"].allowFrom

例(#tuirc-dev 内の全員がボットと会話できるようにする場合):

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

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

Section titled “返信のトリガー(メンション)”

チャンネル(groupPolicy + groups)と送信者の両方が許可されていても、OpenClaw のグループコンテキストではデフォルトで メンションによる制限 がかかります。

そのため、メッセージにボットへのメンションが含まれていない場合、ログに drop channel … (missing-mention) と表示されることがあります。

メンションなしでボットに返信させたい場合は、そのチャンネルのメンション制限を無効にしてください。

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

すべての IRC チャンネルを許可し(チャンネルごとの許可リストなし)、かつメンションなしで返信させる設定は以下の通りです。

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

セキュリティに関する注意点(公開チャンネル推奨)

Section titled “セキュリティに関する注意点(公開チャンネル推奨)”

公開チャンネルで allowFrom: ["*"] を設定すると、誰でもボットを操作できるようになります。リスクを抑えるために、そのチャンネルで使用できるツールを制限することをおすすめします。

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

Section titled “チャンネル内の全員に対して同じツール制限を適用する”
{
channels: {
irc: {
groups: {
"#tuirc-dev": {
allowFrom: ["*"],
tools: {
deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
},
},
},
},
},
}

送信者ごとに異なるツール制限を適用する(オーナーに強い権限を与える)

Section titled “送信者ごとに異なるツール制限を適用する(オーナーに強い権限を与える)”

toolsBySender を使用して、"*"(全員)には厳しいポリシーを、自分のニックネームには緩いポリシーを適用します。

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

注意点:

  • toolsBySender のキーには、IRC の送信者識別子として id: プレフィックスを使用してください(例: id:eigen)。より確実に照合するには id:eigen!~eigen@174.127.248.171 のような形式を使用します。
  • プレフィックスのない古い形式のキーも受け付けられますが、id: として照合されます。
  • 最初に一致した送信者ポリシーが適用されます。"*" はワイルドカードとして最後に評価されます。

グループアクセスとメンション制限の相互作用についての詳細は、/channels/groups を参照してください。

接続後に NickServ で認証を行う設定です。

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

接続時に一度だけ登録を行うオプション設定です。

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

ニックネームの登録が完了した後は、重複して 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)によってメッセージが破棄されていないか確認してください。
  • メンションなしで反応させたい場合は、チャンネル設定で requireMention: false を指定します。
  • ログインに失敗する場合は、ニックネームが既に使用されていないか、またはサーバーパスワードが正しいかを確認してください。
  • カスタムネットワークで TLS 接続に失敗する場合は、ホスト、ポート、および証明書の設定を再確認してください。
  • Channels Overview — サポートされているすべてのチャンネル
  • Pairing — DM 認証とペアリングの流れ
  • Groups — グループチャットの挙動とメンション制限
  • Channel Routing — メッセージのセッションルーティング
  • Security — アクセスモデルとセキュリティ強化
  • Documentation Index — ドキュメントのトップページ

設定で困ったことがあれば、AI Setup Assistant に相談してみてください。最適な設定方法をガイドしてくれます。

OpenClaw

OpenClaw Expert

まだ解決しませんか?

このページで解決しない場合は、OpenClaw Expertに直接質問してください。