ソーシャルチャンネル
ブロードキャストやソーシャルフィードの統合。これらはチャネルと2つの点で異なります:メッセージは一般的に公開され、エージェントは双方向の応答者ではなく投稿者として機能することが多い。
ビルドに関する注意: ソーシャルチャンネルは、軽量なデフォルトビルドには含まれていません。これらを使用するには、
--features channels-full(すべてのチャンネル)または特定のフィーチャーフラグ(例:--features channel-twitter)を指定してビルドしてください。ビルド済みバイナリには、デフォルトではこれらのチャンネルは含まれていません。ビルドオプションの完全な一覧については、Channels → Overview を参照してください。
Twitch
Twitch チャットは IRC 用の薄いアダプターです。--features channel-twitch でビルドするか、--features channels-full で組み込んでください。軽量なデフォルトビルドには含まれていません。
Twitch エイリアスの下で、enabled、bot_username、oauth_token、および参加するチャンネルを設定します。mention_only はオプションで、デフォルトは false です。最小限のインスタンスは次のようになります:
[channels.twitch.default]
enabled = true
bot_username = "zeroclaw_bot"
oauth_token = "replace-with-twitch-token"
channels = ["zeroclaw_channel"]
mention_only = true
[peer_groups.twitch_default]
channel = "twitch.default"
external_peers = ["zeroclaw_user"]
- 認証: bot アカウント用の Twitch ユーザーアクセストークンを、
chat:readとchat:editとともに使用します。Twitch CLI を設定した後、そのアカウントでサインインした状態でtwitch token -u -s 'chat:read chat:edit'を実行して生成し、保護された設定インターフェースを通じて保存します。ZeroClaw は値をトリミングし、省略されている場合は必須のoauth:プレフィックスを追加します。 - チャンネル:
channelsのエントリには先頭の#を含めることができます。ZeroClaw は不足している場合にこれを追加し、チャンネル名を小文字に正規化します。 - 受信と送信: チャンネルメッセージには同じチャンネルで応答します。
mention_only = trueを設定すると、bot_usernameに言及していないチャンネルメッセージは無視されます。Twitch がボットのログイン名に対してチャンネル宛てではない IRCPRIVMSGを配信した場合、ZeroClaw はその送信者に返信します。アダプターでは別個の whisper トランスポートは設定しません。 - 書式: Twitch の返信はプレーンテキストを使用し、IRC フレームに収まるよう分割されます。Markdown の書式は保持されません。
- レート制限: アダプターは IRC の
PRIVMSGフレームを直接書き込み、Twitch 固有のレートリミッターも HTTP429のバックオフも備えていません。エージェントの投稿頻度を Twitch Chat の制限内に保ち、バーストの多いワークフローはその発生元でスロットリングしてください。
Bluesky (AT プロトコル)
- 認証: Bluesky アプリパスワード(実際のパスワードではありません)。設定で生成してください。
- 送信側: 300文字以内の投稿; より長い応答は自動的にスレッド化されます。
- プロトコル:
atrium-apiクレートを介した AT Protocol。
Nostr
受信側の送信者は、バインドされたエージェントに対して解決されたピアセットに照らして制御されます。これはエージェントが所属する peer_groups 設定から導出されます。照合では先頭の @ を取り除き、チャネルのネイティブな送信者識別子に対して大文字・小文字を区別せずに行われます。空のセットはすべてを拒否し、"*" を含むセットはすべてを受け入れます。それ以外の場合は、リストに記載された外部ピア(およびピアエージェント)のみが受け入れられます。これはゲートウェイのペアリング(gateway.require_pairing)とは別物であり、ペアリングはチャットチャネルの送信者ではなく HTTP/WebSocket クライアントを認証します。
nostr のピアグループでは、channel に nostr を設定し、許可する送信者を external_peers に列挙します(nostr の場合は送信者の16進公開鍵。["*"] は誰でも受け付けます)。オプションで、エージェント間ディスパッチ用のピア agents、ignore ブロックリスト、output_modality(mirror、voice、または text)を指定できます。フィールドの詳細は Peer Groups を参照してください。
この設定の場所:
- 認証: 生の秘密鍵(
nsecbech32 または16進数)。 - Inbound: kind-1 (テキスト)、kind-4 (DM、NIP-04)、および kind-1059 (ギフトラップ、NIP-17)。
- アウトバウンド: 同じ種類。Zapの処理は実験的です。
- Relays: エージェントは記載されたすべてのリレーに接続します。信頼性のために3〜5個を使用してください。
relaysを省略した場合、ZeroClaw は組み込みの人気のあるパブリックリレーのセットに接続します。
Twitter / X
受信側の送信者は、バインドされたエージェントに対して解決されたピアセットに照らして制御されます。これはエージェントが所属する peer_groups 設定から導出されます。照合では先頭の @ を取り除き、チャネルのネイティブな送信者識別子に対して大文字・小文字を区別せずに行われます。空のセットはすべてを拒否し、"*" を含むセットはすべてを受け入れます。それ以外の場合は、リストに記載された外部ピア(およびピアエージェント)のみが受け入れられます。これはゲートウェイのペアリング(gateway.require_pairing)とは別物であり、ペアリングはチャットチャネルの送信者ではなく HTTP/WebSocket クライアントを認証します。
twitter のピアグループは、channel を twitter に設定し、許可する送信者を external_peers に列挙します(twitter の場合は Twitter/X の @username。["*"] は誰でも受け入れます)。オプションで、エージェント間ディスパッチ用のピア agents、ignore ブロックリスト、output_modality(mirror、voice、または text)を指定できます。フィールドリファレンスについては Peer Groups を参照してください。
この設定の場所:
- 認証: Twitter API v2 OAuth 2.0 Bearer Token のみ。
- インバウンド: フィルタリングストリームエンドポイント経由のメンション。
- 送信: 投稿、返信、スレッド。
- 注意: フリーティアはレート制限が非常に厳しく、実質的に使用できないレベルです。予算を適切に計画してください。
- 認証: リフレッシュトークンを使用した OAuth 2.0。スクリプトタイプの Reddit アプリと
passwordまたはcodeフローで生成します。 - 受信: 設定されたサブレディット(または
subredditsが空の場合はボットがアクセスできるすべてのサブレディット)の新しい投稿とコメント、加えてエージェント自身の投稿への返信。 - アウトバウンド: 投稿、コメント、プライベートメッセージ。
ソーシャルチャネルを安全に運用する
パブリックなソーシャルネットワーク上のボットは敵対的な入力を引き寄せます。2つの予防策:
- エージェントが応答する相手を制限します。 ピアグループ(上記のチャネルごと)で受信した送信者をゲートします。空のピアセットはすべてを拒否し、
["*"]は誰でも受け入れます。Bluesky にはピアグループの送信者フィールドがないため、代わりに自律性 / ツールレイヤーでゲートしてください。 - 自律レベルは
Supervised以下に保ってください。Full自律状態の公開エージェントは、実質的に公開シェルと同じです。公開チャネルの場合は、チャネルごとのtools_allow(そのようなチャネル単位のフィールドは存在しません)に頼るのではなく、グローバルなツールポリシー設定でツールサーフェスを制限してください。
レート制限
レート制限の処理はチャネルごとに異なります。Twitch は IRC の PRIVMSG フレームを直接書き込み、アダプター固有のリミッターはありません。レート制限が継続的に発生する場合は、チャネルごとのストリーミング設定(これらのチャネルはいずれも下書き更新間隔を公開しておらず、スキーマは意図的に最小限です)に依存するのではなく、エージェントの投稿頻度を送信元側で制御してください。