channels.* 配下のチャネルごとの設定キーです。DMとグループアクセス、複数アカウント構成、メンションゲーティング、Slack、Discord、Telegram、WhatsApp、Matrix、iMessage、その他のバンドル済みチャネルPlugin向けのチャネルごとのキーを扱います。
エージェント、ツール、Gatewayランタイム、その他のトップレベルキーについては、設定リファレンス を参照してください。
チャネル
各チャネルは、その設定セクションが存在すれば自動的に起動します(enabled: false の場合を除く)。
DMとグループアクセス
すべてのチャネルはDMポリシーとグループポリシーをサポートします。| DMポリシー | 動作 |
|---|---|
pairing(デフォルト) | 未知の送信者は1回限りのペアリングコードを受け取り、オーナーが承認する必要があります |
allowlist | allowFrom(またはペアリングallowストア)内の送信者のみ |
open | すべての受信DMを許可します(allowFrom: ["*"] が必要) |
disabled | すべての受信DMを無視します |
| グループポリシー | 動作 |
|---|---|
allowlist(デフォルト) | 設定されたallowlistに一致するグループのみ |
open | グループallowlistをバイパスします(メンションゲーティングは引き続き適用されます) |
disabled | すべてのグループ/ルームメッセージをブロックします |
channels.defaults.groupPolicy は、プロバイダの groupPolicy が未設定の場合のデフォルトを設定します。
ペアリングコードは1時間で期限切れになります。保留中のDMペアリング要求はチャネルごとに3件までに制限されます。
プロバイダブロック全体が欠落している場合(channels.<provider> が存在しない場合)、実行時のグループポリシーは起動警告とともに allowlist(フェイルクローズド)にフォールバックします。チャネルごとのモデル上書き
channels.modelByChannel を使うと、特定のチャネルIDを特定のモデルに固定できます。値には provider/model または設定済みのモデルエイリアスを指定できます。このチャネルマッピングは、セッションにすでにモデル上書き(たとえば /model で設定) が存在しない場合に適用されます。
チャネルデフォルトとHeartbeat
channels.defaults を使うと、プロバイダ間で共有されるグループポリシーとHeartbeat動作を設定できます。
channels.defaults.groupPolicy: プロバイダレベルのgroupPolicyが未設定の場合のフォールバックグループポリシー。channels.defaults.contextVisibility: すべてのチャネルに対する補足コンテキスト可視性モードのデフォルト。値:all(デフォルト。すべての引用/スレッド/履歴コンテキストを含む)、allowlist(allowlistに登録された送信者からのコンテキストのみ含む)、allowlist_quote(allowlistと同じだが明示的な引用/返信コンテキストは保持)。チャネルごとの上書き:channels.<channel>.contextVisibility。channels.defaults.heartbeat.showOk: 正常なチャネルステータスをHeartbeat出力に含めます。channels.defaults.heartbeat.showAlerts: 劣化/エラー状態をHeartbeat出力に含めます。channels.defaults.heartbeat.useIndicator: コンパクトなインジケータ形式のHeartbeat出力を表示します。
複数アカウントWhatsApp
複数アカウントWhatsApp
- 送信コマンドは、
defaultアカウントが存在すればデフォルトでそれを使います。なければ最初に設定されたアカウントid(ソート順)を使います。 - 任意の
channels.whatsapp.defaultAccountは、設定済みアカウントidと一致する場合、このフォールバックのデフォルトアカウント選択を上書きします。 - 従来の単一アカウントBaileys auth dirは、
openclaw doctorによりwhatsapp/defaultへ移行されます。 - アカウントごとの上書き:
channels.whatsapp.accounts.<id>.sendReadReceipts、channels.whatsapp.accounts.<id>.dmPolicy、channels.whatsapp.accounts.<id>.allowFrom。
Telegram
- ボットトークン:
channels.telegram.botTokenまたはchannels.telegram.tokenFile(通常ファイルのみ。シンボリックリンクは拒否)、デフォルトアカウント向けフォールバックとしてTELEGRAM_BOT_TOKENを使用可能。 - 任意の
channels.telegram.defaultAccountは、設定済みアカウントidと一致する場合、デフォルトアカウント選択を上書きします。 - 複数アカウント構成(2つ以上のaccount id)では、フォールバックルーティングを避けるために明示的なデフォルト(
channels.telegram.defaultAccountまたはchannels.telegram.accounts.default)を設定してください。これが欠落または不正な場合、openclaw doctorが警告します。 configWrites: falseは、Telegram起点の設定書き込み(supergroup ID移行、/config set|unset)をブロックします。type: "acp"を持つトップレベルのbindings[]エントリは、フォーラムトピック向けの永続的なACP bindingsを設定します(match.peer.idでは標準形式のchatId:topic:topicIdを使用)。フィールドの意味は ACPエージェント で共通です。- Telegramのストリームプレビューは
sendMessage+editMessageTextを使います(ダイレクトチャットとグループチャットの両方で動作)。 - リトライポリシー: リトライポリシー を参照してください。
Discord
- トークン:
channels.discord.token。デフォルトアカウント向けのフォールバックとしてDISCORD_BOT_TOKENを使用できます。 - 明示的なDiscord
tokenを提供するダイレクト送信呼び出しでは、その呼び出しにそのトークンが使われます。アカウントのリトライ/ポリシー設定は、引き続きアクティブなランタイムスナップショット内の選択アカウントから取得されます。 - 任意の
channels.discord.defaultAccountは、設定済みアカウントidと一致する場合、デフォルトアカウント選択を上書きします。 - 配信ターゲットには
user:<id>(DM)またはchannel:<id>(guildチャネル)を使います。プレフィックスなしの数値IDは拒否されます。 - guild slugは小文字で、空白は
-に置き換えられます。チャネルキーはslug化された名前(#なし)を使います。guild IDの使用を推奨します。 - ボット自身が作成したメッセージはデフォルトで無視されます。
allowBots: trueで有効になります。ボットへのメンションがあるボットメッセージのみ受け入れたい場合はallowBots: "mentions"を使います(自分自身のメッセージは引き続きフィルタされます)。 channels.discord.guilds.<id>.ignoreOtherMentions(およびチャネル上書き)は、別のユーザーまたはroleにメンションしていてボットにはメンションしていないメッセージを破棄します(@everyone/@hereを除く)。maxLinesPerMessage(デフォルト17)は、2000文字未満であっても縦に長いメッセージを分割します。channels.discord.threadBindingsは、Discordのスレッド束縛ルーティングを制御します:enabled: スレッド束縛セッション機能(/focus、/unfocus、/agents、/session idle、/session max-age、および束縛された配信/ルーティング)に対するDiscord上書きidleHours: 非アクティブ時の自動unfocusまでの時間(時間単位、0で無効)maxAgeHours: 強制的な最大有効期間のDiscord上書き(時間単位、0で無効)spawnSubagentSessions:sessions_spawn({ thread: true })による自動スレッド作成/束縛のオプトインスイッチ
type: "acp"を持つトップレベルのbindings[]エントリは、チャネルとスレッド向けの永続的なACP bindingsを設定します(match.peer.idにはチャネル/スレッドidを使用)。フィールドの意味は ACPエージェント で共通です。channels.discord.ui.components.accentColorは、Discord components v2コンテナのアクセントカラーを設定します。channels.discord.voiceは、Discord音声チャネル会話と、任意の自動参加 + TTS上書きを有効にします。channels.discord.voice.daveEncryptionとchannels.discord.voice.decryptionFailureToleranceは、@discordjs/voiceのDAVEオプションにそのまま渡されます(デフォルトはtrueと24)。- OpenClawは追加で、繰り返し復号失敗が起きた後に音声セッションから退出して再参加することで、音声受信の復旧を試みます。
channels.discord.streamingは正規のストリームモードキーです。従来のstreamModeと真偽値のstreaming値は自動移行されます。channels.discord.autoPresenceはランタイム可用性をボットpresenceにマッピングし(healthy => online、degraded => idle、exhausted => dnd)、任意のステータステキスト上書きを可能にします。channels.discord.dangerouslyAllowNameMatchingは、可変の名前/tag一致を再有効化します(緊急用の互換モード)。channels.discord.execApprovals: Discordネイティブのexec承認配信と承認者認可。enabled:true、false、または"auto"(デフォルト)。autoモードでは、approversまたはcommands.ownerAllowFromから承認者を解決できるとexec承認が有効になります。approvers: exec要求を承認できるDiscordユーザーID。省略時はcommands.ownerAllowFromにフォールバックします。agentFilter: 任意のagent ID allowlist。省略すると、すべてのエージェントの承認を転送します。sessionFilter: 任意のsession keyパターン(部分文字列または正規表現)。target: 承認プロンプトの送信先。"dm"(デフォルト)は承認者DMへ、"channel"は元チャネルへ、"both"は両方へ送信します。targetに"channel"が含まれる場合、ボタンを使えるのは解決済み承認者のみです。cleanupAfterResolve:trueの場合、承認、拒否、またはタイムアウト後に承認DMを削除します。
off(なし)、own(ボット自身のメッセージ、デフォルト)、all(すべてのメッセージ)、allowlist(すべてのメッセージに対して guilds.<id>.users から)。
Google Chat
- サービスアカウントJSON: インライン(
serviceAccount)またはファイルベース(serviceAccountFile)。 - サービスアカウントのSecretRef(
serviceAccountRef)もサポートされます。 - 環境変数フォールバック:
GOOGLE_CHAT_SERVICE_ACCOUNTまたはGOOGLE_CHAT_SERVICE_ACCOUNT_FILE。 - 配信ターゲットには
spaces/<spaceId>またはusers/<userId>を使います。 channels.googlechat.dangerouslyAllowNameMatchingは、可変のメールprincipal一致を再有効化します(緊急用の互換モード)。
Slack
- Socket mode には
botTokenとappTokenの両方が必要です(デフォルトアカウント向け環境変数フォールバックはSLACK_BOT_TOKEN+SLACK_APP_TOKEN)。 - HTTP mode には
botTokenとsigningSecretが必要です(ルートまたはアカウントごと)。 botToken、appToken、signingSecret、userTokenは、平文文字列またはSecretRefオブジェクトを受け付けます。- Slackアカウントスナップショットは、
botTokenSource、botTokenStatus、appTokenStatus、HTTP modeではsigningSecretStatusのような資格情報ごとのsource/statusフィールドを公開します。configured_unavailableは、そのアカウントがSecretRef経由で設定されているが、現在のコマンド/ランタイム経路ではsecret値を解決できなかったことを意味します。 configWrites: falseは、Slack起点の設定書き込みをブロックします。- 任意の
channels.slack.defaultAccountは、設定済みアカウントidと一致する場合、デフォルトアカウント選択を上書きします。 channels.slack.streaming.modeは正規のSlackストリームモードキーです。channels.slack.streaming.nativeTransportはSlackのネイティブストリーミングトランスポートを制御します。従来のstreamMode、真偽値のstreaming、nativeStreaming値は自動移行されます。- 配信ターゲットには
user:<id>(DM)またはchannel:<id>を使います。
off、own(デフォルト)、all、allowlist(reactionAllowlist から)。
スレッドセッション分離: thread.historyScope はスレッド単位(デフォルト)またはチャネル共有です。thread.inheritParent は親チャネルのトランスクリプトを新しいスレッドへコピーします。
- SlackネイティブストリーミングとSlack assistantスタイルの「入力中…」スレッドステータスには、返信スレッドターゲットが必要です。トップレベルDMはデフォルトではスレッド外のままなので、スレッドスタイルのプレビューではなく
typingReactionまたは通常配信を使います。 typingReactionは、返信実行中に受信Slackメッセージへ一時的なリアクションを追加し、完了時に削除します。"hourglass_flowing_sand"のようなSlack絵文字ショートコードを使ってください。channels.slack.execApprovals: Slackネイティブのexec承認配信と承認者認可。スキーマはDiscordと同じです:enabled(true/false/"auto")、approvers(SlackユーザーID)、agentFilter、sessionFilter、target("dm"、"channel"、または"both")。
| アクショングループ | デフォルト | 注記 |
|---|---|---|
| reactions | 有効 | リアクション + リアクション一覧 |
| messages | 有効 | 読み取り/送信/編集/削除 |
| pins | 有効 | ピン留め/解除/一覧 |
| memberInfo | 有効 | メンバー情報 |
| emojiList | 有効 | カスタム絵文字一覧 |
Mattermost
MattermostはPluginとして提供されます:openclaw plugins install @openclaw/mattermost。
oncall(@mention で応答、デフォルト)、onmessage(すべてのメッセージ)、onchar(トリガープレフィックスで始まるメッセージ)。
Mattermostネイティブコマンドが有効な場合:
commands.callbackPathは完全URLではなくパスでなければなりません(例:/api/channels/mattermost/command)。commands.callbackUrlはOpenClaw gateway endpointに解決され、Mattermostサーバーから到達可能である必要があります。- ネイティブスラッシュコールバックは、スラッシュコマンド登録時にMattermostから返されるコマンドごとのトークンで認証されます。登録に失敗した、または有効化されたコマンドがない場合、OpenClawはコールバックを
Unauthorized: invalid command token.で拒否します。 - プライベート/tailnet/internalのコールバックホストでは、Mattermostに
ServiceSettings.AllowedUntrustedInternalConnectionsでコールバックホスト/ドメインを含める必要がある場合があります。完全URLではなく、ホスト/ドメイン値を使ってください。 channels.mattermost.configWrites: Mattermost起点の設定書き込みを許可または拒否します。channels.mattermost.requireMention: チャネルで返信する前に@mentionを必須にします。channels.mattermost.groups.<channelId>.requireMention: チャネルごとのメンションゲーティング上書き(デフォルトには"*")。- 任意の
channels.mattermost.defaultAccountは、設定済みアカウントidと一致する場合、デフォルトアカウント選択を上書きします。
Signal
off、own(デフォルト)、all、allowlist(reactionAllowlist から)。
channels.signal.account: チャネル起動を特定のSignalアカウントidentityに固定します。channels.signal.configWrites: Signal起点の設定書き込みを許可または拒否します。- 任意の
channels.signal.defaultAccountは、設定済みアカウントidと一致する場合、デフォルトアカウント選択を上書きします。
BlueBubbles
BlueBubblesは推奨されるiMessage経路です(Pluginバックエンドで、channels.bluebubbles の下に設定します)。
- ここで扱う主要なキーパス:
channels.bluebubbles、channels.bluebubbles.dmPolicy。 - 任意の
channels.bluebubbles.defaultAccountは、設定済みアカウントidと一致する場合、デフォルトアカウント選択を上書きします。 type: "acp"を持つトップレベルのbindings[]エントリは、BlueBubbles会話を永続的なACPセッションにバインドできます。match.peer.idにはBlueBubbles handleまたはターゲット文字列(chat_id:*、chat_guid:*、chat_identifier:*)を使います。共通のフィールドセマンティクス: ACPエージェント。- 完全なBlueBubblesチャネル設定は BlueBubbles に文書化されています。
iMessage
OpenClawはimsg rpc(stdio上のJSON-RPC)を起動します。デーモンやポートは不要です。
-
任意の
channels.imessage.defaultAccountは、設定済みアカウントidと一致する場合、デフォルトアカウント選択を上書きします。 - Messages DBへのフルディスクアクセスが必要です。
-
chat_id:<id>ターゲットを推奨します。チャット一覧の取得にはimsg chats --limit 20を使います。 -
cliPathはSSHラッパーを指せます。SCPで添付ファイルを取得するにはremoteHost(hostまたはuser@host)を設定してください。 -
attachmentRootsとremoteAttachmentRootsは受信添付ファイルパスを制限します(デフォルト:/Users/*/Library/Messages/Attachments)。 -
SCPは厳格なホストキー検証を使うため、リレーホストキーがすでに
~/.ssh/known_hostsに存在していることを確認してください。 -
channels.imessage.configWrites: iMessage起点の設定書き込みを許可または拒否します。 -
type: "acp"を持つトップレベルのbindings[]エントリは、iMessage会話を永続的なACPセッションにバインドできます。match.peer.idには正規化されたhandleまたは明示的なチャットターゲット(chat_id:*、chat_guid:*、chat_identifier:*)を使います。共通のフィールドセマンティクス: ACPエージェント。
iMessage SSHラッパーの例
iMessage SSHラッパーの例
Matrix
MatrixはPluginバックエンドで、channels.matrix の下に設定します。
- トークン認証では
accessTokenを使い、パスワード認証ではuserId+passwordを使います。 channels.matrix.proxyは、Matrix HTTPトラフィックを明示的なHTTP(S) proxy経由にします。名前付きアカウントではchannels.matrix.accounts.<id>.proxyで上書きできます。channels.matrix.network.dangerouslyAllowPrivateNetworkは、private/internal homeserverを許可します。proxyとこのネットワークオプトインは独立した制御です。channels.matrix.defaultAccountは、複数アカウント構成で優先アカウントを選択します。channels.matrix.autoJoinのデフォルトはoffなので、autoJoin: "allowlist"とautoJoinAllowlist、またはautoJoin: "always"を設定するまで、招待されたルームや新しいDM風の招待は無視されます。channels.matrix.execApprovals: Matrixネイティブのexec承認配信と承認者認可。enabled:true、false、または"auto"(デフォルト)。autoモードでは、approversまたはcommands.ownerAllowFromから承認者を解決できるとexec承認が有効になります。approvers: exec要求を承認できるMatrixユーザーID(例@owner:example.org)。agentFilter: 任意のagent ID allowlist。省略すると、すべてのエージェントの承認を転送します。sessionFilter: 任意のsession keyパターン(部分文字列または正規表現)。target: 承認プロンプトの送信先。"dm"(デフォルト)、"channel"(元のルーム)、または"both"。- アカウントごとの上書き:
channels.matrix.accounts.<id>.execApprovals。
channels.matrix.dm.sessionScopeは、Matrix DMをどのようにセッションへまとめるかを制御します:per-user(デフォルト)はルーティングされたpeerごとに共有し、per-roomは各DMルームを分離します。- Matrixステータスprobeとライブディレクトリ検索は、ランタイムトラフィックと同じproxyポリシーを使います。
- 完全なMatrix設定、ターゲティングルール、セットアップ例は Matrix に文書化されています。
Microsoft Teams
Microsoft TeamsはPluginバックエンドで、channels.msteams の下に設定します。
- ここで扱う主要なキーパス:
channels.msteams、channels.msteams.configWrites。 - 完全なTeams設定(認証情報、Webhook、DM/グループポリシー、team/channelごとの上書き)は Microsoft Teams に文書化されています。
IRC
IRCはPluginバックエンドで、channels.irc の下に設定します。
- ここで扱う主要なキーパス:
channels.irc、channels.irc.dmPolicy、channels.irc.configWrites、channels.irc.nickserv.*。 - 任意の
channels.irc.defaultAccountは、設定済みアカウントidと一致する場合、デフォルトアカウント選択を上書きします。 - 完全なIRCチャネル設定(host/port/TLS/channels/allowlists/mention gating)は IRC に文書化されています。
複数アカウント(全チャネル)
チャネルごとに複数アカウントを実行できます(各アカウントは独自のaccountId を持ちます)。
accountIdが省略された場合はdefaultが使われます(CLI + ルーティング)。- 環境変数トークンは default アカウントにのみ適用されます。
- ベースチャネル設定は、アカウントごとに上書きされない限り、すべてのアカウントに適用されます。
- 各アカウントを異なるエージェントへルーティングするには
bindings[].match.accountIdを使います。 - まだ単一アカウントのトップレベルチャネル設定のまま、
openclaw channels add(またはチャネルオンボーディング)でdefault以外のアカウントを追加すると、OpenClawはまず、元のアカウントが動作し続けるように、アカウントスコープ付きのトップレベル単一アカウント値をチャネルアカウントマップへ昇格させます。ほとんどのチャネルではそれらをchannels.<channel>.accounts.defaultへ移します。Matrixでは、代わりに既存の一致する名前付き/defaultターゲットを保持できます。 - 既存のチャネルのみbinding(
accountIdなし)は引き続きdefaultアカウントに一致します。アカウントスコープ付きbindingは引き続き任意です。 openclaw doctor --fixも、アカウントスコープ付きトップレベル単一アカウント値を、そのチャネル用に選ばれた昇格先アカウントへ移動することで、混在した形状を修復します。ほとんどのチャネルではaccounts.defaultを使います。Matrixでは代わりに既存の一致する名前付き/defaultターゲットを保持できます。
その他のPluginチャネル
多くのPluginチャネルはchannels.<id> として設定され、それぞれ専用のチャネルページに文書化されています(たとえば Feishu、Matrix、LINE、Nostr、Zalo、Nextcloud Talk、Synology Chat、Twitch)。
完全なチャネル一覧は Channels を参照してください。
グループチャットのメンションゲーティング
グループメッセージはデフォルトでメンション必須です(メタデータメンションまたは安全な正規表現パターン)。WhatsApp、Telegram、Discord、Google Chat、iMessageのグループチャットに適用されます。 メンションの種類:- メタデータメンション: ネイティブなプラットフォームの
@mention。WhatsApp self-chat modeでは無視されます。 - テキストパターン:
agents.list[].groupChat.mentionPatternsにある安全な正規表現パターン。無効なパターンや安全でないネスト反復は無視されます。 - メンションゲーティングは、検出が可能な場合にのみ適用されます(ネイティブメンションがある、または少なくとも1つのパターンがある場合)。
messages.groupChat.historyLimit はグローバルデフォルトを設定します。チャネルは channels.<channel>.historyLimit(またはアカウントごと)で上書きできます。無効化するには 0 を設定します。
DM履歴上限
telegram、whatsapp、discord、slack、signal、imessage、msteams。
self-chat mode
自分自身の番号をallowFrom に含めるとself-chat modeを有効にできます(ネイティブの @mention を無視し、テキストパターンにのみ応答します)。
コマンド(チャットコマンド処理)
コマンドの詳細
コマンドの詳細
- このブロックはコマンドサーフェスを設定します。現在の組み込み + バンドル済みコマンドカタログについては、スラッシュコマンド を参照してください。
- このページは設定キーのリファレンスであり、完全なコマンドカタログではありません。QQ Bot の
/bot-ping/bot-help/bot-logs、LINE の/card、device-pair の/pair、memory の/dreaming、phone-control の/phone、Talk の/voiceのようなチャネル/Plugin所有コマンドは、それぞれのチャネル/Pluginページと スラッシュコマンド に文書化されています。 - テキストコマンドは、先頭に
/が付いた単独のメッセージである必要があります。 native: "auto"はDiscord/Telegramのネイティブコマンドを有効にし、Slackではオフのままにします。nativeSkills: "auto"はDiscord/TelegramのネイティブSkillsコマンドを有効にし、Slackではオフのままにします。- チャネルごとの上書き:
channels.discord.commands.native(bool または"auto")。falseは以前に登録されたコマンドをクリアします。 - ネイティブskill登録は
channels.<provider>.commands.nativeSkillsでチャネルごとに上書きできます。 channels.telegram.customCommandsは、追加のTelegramボットメニュー項目を加えます。bash: trueは、ホストシェル向けの! <cmd>を有効にします。tools.elevated.enabledと、送信者がtools.elevated.allowFrom.<channel>に含まれていることが必要です。config: trueは/configを有効にします(openclaw.jsonの読み書き)。gatewaychat.sendクライアントでは、永続的な/config set|unset書き込みにはoperator.adminも必要です。読み取り専用の/config showは、通常のwrite-scope付きoperatorクライアントでも引き続き利用できます。mcp: trueは、mcp.servers配下のOpenClaw管理MCPサーバー設定に対する/mcpを有効にします。plugins: trueは、Pluginの検出、インストール、有効/無効制御のための/pluginsを有効にします。channels.<provider>.configWritesは、チャネルごとの設定変更を制御します(デフォルト: true)。- 複数アカウントチャネルでは、
channels.<provider>.accounts.<id>.configWritesも、そのアカウントを対象とする書き込み(たとえば/allowlist --config --account <id>や/config set channels.<provider>.accounts.<id>...)を制御します。 restart: falseは/restartとgateway再起動ツールアクションを無効にします。デフォルト:true。ownerAllowFromは、オーナー専用コマンド/ツール向けの明示的なオーナーallowlistです。allowFromとは別です。ownerDisplay: "hash"は、システムプロンプト内のオーナーIDをハッシュ化します。ハッシュを制御するにはownerDisplaySecretを設定してください。allowFromはプロバイダごとです。これが設定されると、それが唯一の認可ソースになります(チャネルallowlist/ペアリングとuseAccessGroupsは無視されます)。useAccessGroups: falseは、allowFromが設定されていない場合に、コマンドがaccess-groupポリシーをバイパスできるようにします。- コマンドドキュメントの対応表:
関連
- 設定リファレンス — トップレベルキー
- 設定 — エージェント
- チャネル概要