Signal
ZeroClawのSignalチャネルは、実行中のsignal-cli HTTPデーモンと通信します。Signalは公式のボットAPIを提供していないため、ZeroClawはローカルHTTP経由でsignal-cliに接続し、signal-cliがSignalアカウント、デバイスキー、メッセージ転送を管理します。
既に signal-cli で Signal アカウントを運用している場合、または ZeroClaw の隣でデーモンを実行できる場合は、このチャネルを使用してください。Signal のデスクトップアプリまたはモバイルアプリのみがインストールされている場合、それだけでは不十分です。ZeroClaw には HTTP デーモンのエンドポイントが必要です。
エージェントと対話できるユーザー
受信側の送信者は、バインドされたエージェントに対して解決されたピアセットに照らして制御されます。これはエージェントが所属する peer_groups 設定から導出されます。照合では先頭の @ を取り除き、チャネルのネイティブな送信者識別子に対して大文字・小文字を区別せずに行われます。空のセットはすべてを拒否し、"*" を含むセットはすべてを受け入れます。それ以外の場合は、リストに記載された外部ピア(およびピアエージェント)のみが受け入れられます。これはゲートウェイのペアリング(gateway.require_pairing)とは別物であり、ペアリングはチャットチャネルの送信者ではなく HTTP/WebSocket クライアントを認証します。
signal 用のピアグループは、channel に signal を設定し、許可された送信者を external_peers に列挙し(signal の場合、E.164 形式の電話番号または signal-cli ソース識別子。["*"] は誰でも受け付けます)、必要に応じてクロスエージェントディスパッチ用のピア agents を指定し、ignore ブロックリスト、および output_modality(mirror、voice、または text)を指定します。フィールドのリファレンスについては Peer Groups を参照してください。
この設定の場所:
チャンネルレベルでトラフィックを絞り込むこともできます。dm_only = true はグループを無視します。group_ids = ["<signal-group-id>"] は、DMを受け付けつつ、リストに記載されたグループのみを受け付けます。ignore_attachments と ignore_stories は、これらのメッセージタイプをエージェントに到達する前に破棄します。
前提条件
signal-cliでリンクまたは登録された Signal アカウント。- 実行中の
signal-cliHTTP デーモン。例:signal-cli daemon --http 127.0.0.1:8686。 channel-signal機能を有効にした ZeroClaw ビルド。
デーモンは、独自の認証済みネットワーク境界の背後に配置しない限り、localhost にバインドしたままにしてください。デーモンは、リンクされた Signal アカウントとして送受信できます。
チャネルを構成する
account*
signal-cli アカウントの E.164 形式の電話番号(例: “+1234567890”)。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/signal を開いて、channels.signal.<alias>.account フィールドを設定してください。
zerocode
Config ペインで、channels.signal.<alias>.account フィールドを設定します。
zeroclaw config
zeroclaw config set channels.signal.<alias>.account <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__signal__<alias>__account=
approval_timeout_secs
always_ask ツールに対するオペレーターの承認を待機する秒数。これを過ぎると自動的に拒否されます。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/signal を開いて、channels.signal.<alias>.approval_timeout_secs フィールドを設定します。
zerocode
Config ペインで、channels.signal.<alias>.approval_timeout_secs フィールドを設定します。
zeroclaw config
zeroclaw config set channels.signal.<alias>.approval_timeout_secs <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__signal__<alias>__approval_timeout_secs=
dm_only
trueの場合、ダイレクトメッセージのみを受け付け、すべてのグループトラフィックを無視します。group_idsとは相互排他的です(これが設定されている場合、group_idsは無視されます)。レガシーなgroup_id = "dm"センチネルから移行されました。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/signal を開き、channels.signal.<alias>.dm_only フィールドを設定します。
zerocode
Config ペインで、channels.signal.<alias>.dm_only フィールドを設定します。
zeroclaw config
zeroclaw config set channels.signal.<alias>.dm_only <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__signal__<alias>__dm_only=
excluded_tools
このチャネルのツール仕様から除外されるツールです。設定すると、これらのツールはこのチャネル経由で応答する際にモデルに公開されません。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/signal を開いて、channels.signal.<alias>.excluded_tools フィールドを設定してください。
zerocode
Config ペインで、channels.signal.<alias>.excluded_tools フィールドを設定します。
zeroclaw config
zeroclaw config set channels.signal.<alias>.excluded_tools <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__signal__<alias>__excluded_tools=
group_ids
メッセージをフィルタリングするためのグループID。空 = すべてのメッセージ(DMとグループ)を受け入れます。空でない場合、リストに含まれるグループからのメッセージのみが受け入れられます(dm_only がポリシーをDMのみに切り替えない限り、DMは引き続き受け入れられます)。従来の単数形フィールド group_id から移行されました。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/signal を開いて、channels.signal.<alias>.group_ids フィールドを設定します。
zerocode
Config ペインで、channels.signal.<alias>.group_ids フィールドを設定します。
zeroclaw config
zeroclaw config set channels.signal.<alias>.group_ids <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__signal__<alias>__group_ids=
http_url*
signal-cli HTTP デーモンのベース URL(例: "http://127.0.0.1:8686")。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/signal を開き、channels.signal.<alias>.http_url フィールドを設定します。
zerocode
Config ペインで、channels.signal.<alias>.http_url フィールドを設定します。
zeroclaw config
zeroclaw config set channels.signal.<alias>.http_url <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__signal__<alias>__http_url=
ignore_attachments
添付ファイルのみ(本文テキストなし)のメッセージをスキップします。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/signal を開いて、channels.signal.<alias>.ignore_attachments フィールドを設定してください。
zerocode
Config ペインで、channels.signal.<alias>.ignore_attachments フィールドを設定します。
zeroclaw config
zeroclaw config set channels.signal.<alias>.ignore_attachments <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__signal__<alias>__ignore_attachments=
ignore_stories
ストーリーの受信メッセージをスキップします。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/signal を開いて、channels.signal.<alias>.ignore_stories フィールドを設定します。
zerocode
Config ペインで、channels.signal.<alias>.ignore_stories フィールドを設定します。
zeroclaw config
zeroclaw config set channels.signal.<alias>.ignore_stories <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__signal__<alias>__ignore_stories=
proxy_url
チャンネルごとのプロキシURL(http、https、socks5、socks5h)。このチャンネルに対してのみ、グローバルな [proxy] 設定を上書きします。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/signal を開き、channels.signal.<alias>.proxy_url フィールドを設定します。
zerocode
Config ペインで、channels.signal.<alias>.proxy_url フィールドを設定します。
zeroclaw config
zeroclaw config set channels.signal.<alias>.proxy_url <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__signal__<alias>__proxy_url=
reply_min_interval_secs
チャンネルと受信者の組み合わせごとの送信ペーシングの下限値(秒)。範囲: 0..=REPLY_MIN_INTERVAL_MAX_SECS(0 で無効化)。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/signal を開き、channels.signal.<alias>.reply_min_interval_secs フィールドを設定します。
zerocode
Config ペインで、channels.signal.<alias>.reply_min_interval_secs フィールドを設定します。
zeroclaw config
zeroclaw config set channels.signal.<alias>.reply_min_interval_secs <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__signal__<alias>__reply_min_interval_secs=
reply_queue_depth_max
(チャネル, 受信者)単位の送信ペーシングキューの深さ。範囲: 0..=REPLY_QUEUE_DEPTH_CEILING。reply_min_interval_secs > 0 かつこの値が 0 の場合、ペーシングラッパーは DEFAULT_REPLY_QUEUE_DEPTH (16) で代替します。キューが満杯の場合、最新の送信が破棄され、WARN がログに記録されます。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/signal を開いて、channels.signal.<alias>.reply_queue_depth_max フィールドを設定します。
zerocode
Config ペインで、channels.signal.<alias>.reply_queue_depth_max フィールドを設定します。
zeroclaw config
zeroclaw config set channels.signal.<alias>.reply_queue_depth_max <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__signal__<alias>__reply_queue_depth_max=
エージェントの channels リストを使用して、チャネルをそのエージェントにバインドします。
開始と確認
最初にデーモンを起動し、その後 ZeroClaw チャンネルを起動します:
sh
signal-cli daemon --http 127.0.0.1:8686
zeroclaw channel start
zeroclaw channel doctor を使用して、ZeroClaw が設定済みのチャンネルを読み込めることを確認してください。チャンネルが実行時に失敗する場合は、http_url がデーモンを指していること、アカウントが signal-cli に登録されていること、ビルドに channel-signal が含まれていることを確認してください。
よくある混乱
signal-cli プロジェクトは主に CLI として知られていますが、ZeroClaw はその HTTP デーモンモードを必要とします。コマンドラインバイナリのみをインストールしてデーモンを起動していない場合、ZeroClaw には接続先がありません。