Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Discord

ZeroClaw エージェントを Discord ボットとして実行しましょう。このガイドでは、ボットの操作経験がなくても、クリックごとに手順を説明します。最後には、サーバー内でユーザーが話しかけると返信するボットが完成します。

エージェントと対話できるユーザー

受信側の送信者は、バインドされたエージェントに対して解決されたピアセットに照らして制御されます。これはエージェントが所属する peer_groups 設定から導出されます。照合では先頭の @ を取り除き、チャネルのネイティブな送信者識別子に対して大文字・小文字を区別せずに行われます。のセットはすべてを拒否し、"*" を含むセットはすべてを受け入れます。それ以外の場合は、リストに記載された外部ピア(およびピアエージェント)のみが受け入れられます。これはゲートウェイのペアリング(gateway.require_pairing)とは別物であり、ペアリングはチャットチャネルの送信者ではなく HTTP/WebSocket クライアントを認証します。

discord 用のピアグループでは、channeldiscord に設定し、許可する送信者を external_peers に列挙します(discord の場合は Discord ユーザー ID(snowflake)。["*"] は誰でも受け入れます)。また、エージェント間ディスパッチ用のピア agentsignore ブロックリスト、output_modalitymirrorvoice、または text)を任意で指定できます。フィールドのリファレンスについては Peer Groups を参照してください。

この設定の場所:

ゲートウェイダッシュボード

Web ダッシュボードで /config/peer_groups を開きます。

zerocode

Config ペインの Peer groups の下。

クイックスタート

5つのステップ: ボットを作成し、トークンをコピーし、2つのスイッチをオンにし、招待し、ZeroClawを起動します。

1. ボットを作成する

  1. Discord Developer Portal にアクセスします。
  2. New Application をクリックして名前を付け、Create をクリックします。
  3. 左側のサイドバーで、Bot をクリックします。
  4. Reset Token をクリックし、次に Copy をクリックします。この長い文字列が bot_token です。ステップ 3 で使用するため安全な場所に保管してください。後で再度表示することはできません(リセットのみ可能です)。

ボットトークンはボットのパスワードです。これを持っている人は誰でもあなたのボットを操作できます。公開チャットやスクリーンショットに貼り付けたり、gitにコミットしたりしないでください。

2. ボットが必要とする2つのスイッチをオンにする

Bot ページのまま、Privileged Gateway Intents までスクロールして、これらの両方をオンに切り替えます:

  • ボットがユーザーの入力内容を読み取れるようにするための Message Content Intent
  • サーバーメンバーインテント を有効にすると、サーバーに参加しているメンバーを確認できるようになります。

変更を保存 をクリックします。これを省略すると、Bot は接続しても一切メッセージを受信できず、「Bot が何も反応しない」という最も多い原因になります。

3. ZeroClawにボットについて伝える

ステップ1で取得したトークンを設定に入れてください。トークンは秘密情報なので、config.toml に直接入力するのではなく、暗号化するインターフェースを通じて設定してください。

ゲートウェイダッシュボード

Webダッシュボードで /config/channels/discord を開きます。

zerocode

Config ペインの Channels 配下にあります。

channels.discord.<alias>.bot_token はシークレットです。 暗号化して保存され、平文の config.toml には決して保存されません。書き込み時に暗号化する以下のいずれかの方法で設定してください:

ゲートウェイダッシュボード

/config/channels/discord を開いて、そこで channels.discord.<alias>.bot_token フィールドを設定してください。

zerocode

Config ペインで、channels.discord.<alias>.bot_token フィールドを設定します(入力はマスクされます)。

zeroclaw config

zeroclaw config set channels.discord.<alias>.bot_token    # マスク入力のプロンプトを表示し、暗号化して保存

4. ボットをサーバーに招待する

  1. Developer Portal に戻り、OAuth2 -> URL Generator を開きます。
  2. Scopesbot にチェックを入れます。
  3. Bot Permissions で、少なくとも Send MessagesRead Message HistoryView Channels をチェックしてください。
  4. 下部のURLをコピーしてブラウザで開き、サーバーを選択して認証します。

ボットがメンバーリストに表示されるようになります(ZeroClaw を起動するまではオフラインです)。

5. 起動とテスト

ZeroClaw を起動し(zeroclaw service restart または zeroclaw daemon)、ボットが見えるチャンネルでメッセージを送信します。返信されるはずです。返信されない場合は、トラブルシューティングに進んでください。

設定

ライブスキーマから取得した完全なフィールド一覧です。ほとんどには適切なデフォルト値が設定されており、基本的なボットでは bot_token のみを設定すれば十分です。

approval_timeout_secs integer · default 300

always_ask ツールに対するオペレーターの承認を待機する秒数。これを過ぎると自動的に拒否されます。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開いて、channels.discord.<alias>.approval_timeout_secs フィールドを設定してください。

zerocode

Config ペインで、channels.discord.<alias>.approval_timeout_secs フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.approval_timeout_secs <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__approval_timeout_secs=
archive bool · default false

true の場合、チャネルはサイドカーの discord.db SQLite メモリバックエンドを開き、ボット以外のすべてのメッセージをアーカイブし、それに対して discord_search ツールを登録します。デフォルト: false。レガシーの [channels.discord-history] ブロックから統合されました。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開き、channels.discord.<alias>.archive フィールドを設定します。

zerocode

Config ペインで、channels.discord.<alias>.archive フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.archive <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__archive=
bot_token 🔑 secret · default ""

Discord ボットトークン(Discord Developer Portal から取得)。#[serde(default)]TelegramConfig::bot_token と同じ理由で使用します。トークンが欠落している場合、エイリアスを救済のために破棄するのではなく、空の文字列としてデシリアライズする必要があります。validate_bot_tokenenabled = true の場合も実際のトークンを要求します。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開いて、channels.discord.<alias>.bot_token フィールドを設定してください。

zerocode

Config ペインで、channels.discord.<alias>.bot_token フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.bot_token    # マスクされた入力、暗号化して保存

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__bot_token=
channel_ids string[] · default []

監視するチャンネル ID。空欄の場合 = ボットが認識できるすべてのチャンネルを監視します。アーカイブ用サイドカー(archive = true の場合)と、設定時のチャンネル内フィルターで使用されます。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開いて、channels.discord.<alias>.channel_ids フィールドを設定してください。

zerocode

Config ペインで、channels.discord.<alias>.channel_ids フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.channel_ids <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__channel_ids=
draft_update_interval_ms integer · default 1000

レート制限を回避するためのドラフトメッセージ編集間の最小間隔(ミリ秒)。stream_mode = "partial" の場合にのみ使用されます。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開いて channels.discord.<alias>.draft_update_interval_ms フィールドを設定します。

zerocode

Config ペインで、channels.discord.<alias>.draft_update_interval_ms フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.draft_update_interval_ms <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__draft_update_interval_ms=
excluded_tools string[] · default []

このチャネルのツール仕様から除外されるツールです。設定すると、これらのツールはこのチャネル経由で応答する際にモデルに公開されません。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開き、channels.discord.<alias>.excluded_tools フィールドを設定します。

zerocode

Config ペインで、channels.discord.<alias>.excluded_tools フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.excluded_tools <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__excluded_tools=
guild_ids string[] · default []

ボットを制限するギルド(サーバー)ID。空の場合 = ボットが招待されているすべてのギルドでリッスンします。従来の単数形フィールド guild_id から移行されました。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開き、channels.discord.<alias>.guild_ids フィールドを設定します。

zerocode

Config ペインで、channels.discord.<alias>.guild_ids フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.guild_ids <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__guild_ids=
intents_mask integer? · default null

Raw ゲートウェイ intent マスクのオーバーライド。設定されている場合、派生したマスクの代わりに、この正確な値が IDENTIFY で送信されます。これは、カスタムビルドやフォークを通じてゲートウェイイベントを消費する下流デプロイメント向けのオペレーター用エスケープハッチです。その結果はオペレーターが負います。特権ビットには引き続き Developer Portal のトグルが必要であり、ベースラインビットを除外するとメッセージ処理が無効化されます(警告がログに記録されます)。未設定(デフォルト)の場合 = チャネルの機能設定からマスクを派生します。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開いて channels.discord.<alias>.intents_mask フィールドを設定してください。

zerocode

Config ペインで、channels.discord.<alias>.intents_mask フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.intents_mask <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__intents_mask=
interrupt_on_new_message bool · default false

trueの場合、同じチャンネル内の同じ送信者からの新しいDiscordメッセージが処理中のリクエストをキャンセルし、履歴を保持したまま新しいレスポンスを開始します。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開いて、channels.discord.<alias>.interrupt_on_new_message フィールドを設定してください。

zerocode

Config ペインで、channels.discord.<alias>.interrupt_on_new_message フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.interrupt_on_new_message <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__interrupt_on_new_message=
listen_to_bots bool · default false

trueの場合、他のボットからのメッセージも処理します(人間からのメッセージだけではありません)。ボットはフィードバックループを防ぐため、自身のメッセージは引き続き無視します。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開き、channels.discord.<alias>.listen_to_bots フィールドを設定します。

zerocode

Config ペインで、channels.discord.<alias>.listen_to_bots フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.listen_to_bots <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__listen_to_bots=
mention_only bool · default false

true の場合、ボットを @ メンションするメッセージにのみ応答します。ギルド内の他のメッセージは通知なしで無視されます。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開いて、channels.discord.<alias>.mention_only フィールドを設定してください。

zerocode

Config ペインで、channels.discord.<alias>.mention_only フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.mention_only <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__mention_only=
multi_message_delay_ms integer · default 800

マルチメッセージモードで各メッセージチャンクを送信する間の遅延(ミリ秒)。stream_mode = "multi_message" の場合のみ使用されます。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開いて、channels.discord.<alias>.multi_message_delay_ms フィールドを設定します。

zerocode

Config ペインで、channels.discord.<alias>.multi_message_delay_ms フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.multi_message_delay_ms <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__multi_message_delay_ms=
proxy_url string? · default null

チャンネルごとのプロキシURL(http、https、socks5、socks5h)。このチャンネルに対してのみ、グローバルな [proxy] 設定を上書きします。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開き、channels.discord.<alias>.proxy_url フィールドを設定します。

zerocode

Config ペインで、channels.discord.<alias>.proxy_url フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.proxy_url <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__proxy_url=
reaction_notifications DiscordReactionScope · default "off"

記録するインバウンドリアクション: off(デフォルト: リアクションイベントはゲートウェイから要求すらされません)、own(ボットのメッセージへのリアクション)、または all(チャンネルのフィルターを通過するすべてのメッセージへのリアクション)。記録されたリアクションは archive が有効な場合に discord.db へアーカイブされ、ユーザーがリアクションを削除すると再度削除されます(一括クリア、remove-all / remove-emoji はまだ処理されません)。intents_mask を設定すると、導出されたマスクが上書きされます: リアクションインテントを省略すると、何も記録されません。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開いて channels.discord.<alias>.reaction_notifications フィールドを設定してください。

zerocode

Config ペインで、channels.discord.<alias>.reaction_notifications フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.reaction_notifications <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__reaction_notifications=
reply_min_interval_secs integer · default 0

チャンネルと受信者の組み合わせごとの送信ペーシングの下限値(秒)。範囲: 0..=REPLY_MIN_INTERVAL_MAX_SECS(0 で無効化)。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開いて、channels.discord.<alias>.reply_min_interval_secs フィールドを設定してください。

zerocode

Config ペインで、channels.discord.<alias>.reply_min_interval_secs フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.reply_min_interval_secs <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__reply_min_interval_secs=
reply_queue_depth_max integer · default 0

(チャネル, 受信者)単位の送信ペーシングキューの深さ。範囲: 0..=REPLY_QUEUE_DEPTH_CEILINGreply_min_interval_secs > 0 かつこの値が 0 の場合、ペーシングラッパーは DEFAULT_REPLY_QUEUE_DEPTH (16) で代替します。キューが満杯の場合、最新の送信が破棄され、WARN がログに記録されます。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開き、channels.discord.<alias>.reply_queue_depth_max フィールドを設定してください。

zerocode

Config ペインで、channels.discord.<alias>.reply_queue_depth_max フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.reply_queue_depth_max <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__reply_queue_depth_max=
slash_command_scope SlashCommandScope · default "global"

登録されるスラッシュコマンドのスコープ: global(デフォルト、アプリケーション全体、伝播に約1時間)または guild(各 guild_ids エントリに登録、即時反映)。slash_commands = true の場合のみ意味を持ちます。guild_ids が空の状態で guild を指定すると警告が表示され、global にフォールバックします。スコープを切り替えると、非アクティブになったスコープが所有するコマンドが除去されます。guild_ids からギルドを_削除_しただけ(スコープを切り替えない場合)では、そのギルドのコマンドは除去されない点に注意してください。それらをクリアするには、ボットをギルドから削除するか、スコープを切り替えてください。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開き、channels.discord.<alias>.slash_command_scope フィールドを設定します。

zerocode

Config ペインで、channels.discord.<alias>.slash_command_scope フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.slash_command_scope <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__slash_command_scope=
slash_commands bool · default false

trueの場合、メッセージ処理に加えて、Gateway WebSocket経由でDiscordのスラッシュコマンド(例: /ask)を登録・処理します。デフォルトはfalseです。(プロトタイプ: 現在は単一の /ask <prompt> を登録します。)

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開き、channels.discord.<alias>.slash_commands フィールドを設定してください。

zerocode

Config ペインで、channels.discord.<alias>.slash_commands フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.slash_commands <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__slash_commands=
stall_timeout_secs integer · default 0

ストールウォッチドッグのタイムアウト(秒)。0以外の場合、この時間内に進行がなければボットは中止して再試行します。0 = 無効。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開き、channels.discord.<alias>.stall_timeout_secs フィールドを設定します。

zerocode

Config ペインで、channels.discord.<alias>.stall_timeout_secs フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.stall_timeout_secs <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__stall_timeout_secs=
stream_mode StreamMode · default "off"

プログレッシブなレスポンス配信のためのストリーミングモード。off(デフォルト):単一メッセージ。partial:編集可能なドラフトの更新。multi_message:段落の境界でレスポンスを別々のメッセージに分割。

任意のサーフェスに設定する場合:

ゲートウェイダッシュボード

/config/channels/discord を開き、channels.discord.<alias>.stream_mode フィールドを設定します。

zerocode

Config ペインで、channels.discord.<alias>.stream_mode フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.stream_mode <value>

環境変数

オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc~/.zshrc.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。

export ZEROCLAW_channels__discord__<alias>__stream_mode=

ボットがリッスンする範囲を絞り込む

デフォルトでは、ボットは招待されたすべてのサーバーと、表示できるすべてのチャンネルでリッスンします。範囲を絞り込むには:

  • guild_ids: ボットを特定のサーバー(ギルド)に制限します。空の場合はすべてを対象とします。
  • channel_ids: 特定のチャンネルに限定します。空の場合はすべての表示可能なチャンネルを対象とします。

IDを確認するには、Discordで開発者モードを有効にし(ユーザー設定 -> 詳細設定)、サーバーまたはチャンネルを右クリックしてIDをコピーしてください。

スレッドとコンテキスト

Discordでの会話がスレッド内で行われる場合、そのスレッドはそれ自体が独立した会話です。ZeroClawはスレッドごとに固有のセッションキーを生成するため、各スレッドは独立したコンテキストウィンドウと履歴を持ちます。あるスレッドのメッセージが別のスレッドに混入することはなく、エージェントが兄弟スレッドの過去のやり取りを参照することもありません。Discordの場合、スレッドはネイティブのチャネルであるため、各スレッドはすでに別々の会話として扱われます。設定すべきトグルはありません。

  • 分離こそが要点です。 各スレッドのコンテキストは自己完結しています。スレッドの外部に漏れることはなく、スレッドの外部からも何も漏れ込みません。並列スレッドは別々の会話状態を保持するため、無関係なタスクが互いに混ざり合うことはありません。
  • 長いスレッドはコンテキストを増大させます。 スレッドはアクティブな間、履歴を蓄積していくため、非常に長いスレッドは他の長い会話と同様に、最終的にはモデルのコンテキストウィンドウを埋め尽くします。リセットするには新しいスレッドを開始してください。
  • 処理中の作業はスレッドごとにスコープされます。 あるスレッドで新しいメッセージが届いても、別のスレッドで処理中の応答がキャンセルされることはありません。各スレッドのタスクは独立して動作します。

アーカイブと検索

archive = true を設定すると、チャンネルはサイドカーの discord.db メモリストアを開き、目にしたすべてのメッセージを記録し、エージェントが過去の会話を検索するために使用できる discord_search ツールを登録します。履歴検索が必要ない場合はオフのままにしておいてください。どちらの場合でもボットは通常どおり返信します。

ストリーミング

Discord は stream_mode 設定を通じて応答をストリーミングします:

  • off(デフォルト): エージェントの処理が完了すると、応答全体が1つのメッセージとして投稿されます。最もシンプルで、書きかけの回答が表示されることはありません。
  • partial: ボットはすぐに下書きを投稿し、回答がストリーミングされるにつれてその場で編集します。draft_update_interval_ms は編集の間隔を調整します。Discord によるレート制限が発生する場合は値を大きくしてください。
  • multi_message: 各段落が個別のメッセージとして投稿され、multi_message_delay_ms で区切られます。1つの長い文章の塊になってしまうような長い回答に適しています。

任意のサーフェスに設定します:

ゲートウェイダッシュボード

/config/channels/discord を開き、channels.discord.<alias>.stream_mode フィールドを設定します。

zerocode

Config ペインで、channels.discord.<alias>.stream_mode フィールドを設定します。

zeroclaw config

zeroclaw config set channels.discord.<alias>.stream_mode <value>

自然に感じられる返信

  • mention_only: true の場合、ボットは自身を @-メンションしたメッセージにのみ応答するため、混雑したチャンネルでは静かなままになります。
  • reply_min_interval_secs: 同じ相手への返信間隔の最小値。即座の応答が機械的に感じられる場合に役立ちます。

トラブルシューティング

症状考えられる原因修正
ボットはオンラインですが、まったく返信しませんメッセージコンテンツインテントが無効です開発者ポータルで有効にして(手順2)、再起動してください
ボットはどこにも返信しません招待されていないか、View Channels / Send Messages 権限がありません権限を正しく設定して招待(手順4)を再実行してください
ボットはほとんどのメッセージを無視しますmention_only = true@メンションでボットを呼び出すか、false に設定してください
起動時の “Invalid token”トークンの入力ミスまたはリセットポータルでトークンをリセットし、再度設定してください (ステップ 3)

関連項目も参照してください