Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

ピアグループ

ピアグループは、エージェントがチャネル上でどこからの受信メッセージを受け入れるか、またそこでどの他のエージェントとメッセージを交換できるかを宣言します。これはチャットチャネルの受信ゲートであり、エージェント間ディスパッチのためのルーティングプリミティブです。設定では [peer_groups.<name>] に配置されます。ピアグループがエージェントの構成にどのように組み込まれるかについては、Agents を参照してください。

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

フィールド

[peer_groups.<name>] ブロックには以下が含まれます:

フィールド意味
channelチャネルタイプ("telegram"、そのタイプのすべてのエイリアスに適用されます)またはドット付きエイリアス("telegram.work"、その特定のインスタンスにのみ適用されます)。
agentsエイリアスによるメンバーエージェント。2つのエージェントは、両方が同じグループに属している場合にのみピアとなります。メンバーシップは相互的です。
external_peersチャンネルのネイティブなユーザー名/IDによる非エージェントメンバー。["*"] は誰でも受け入れます。空の場合は誰も受け入れません。
ignoreグループごとのブロックリスト。解決されたピアセットから減算されます。
output_modalityグループの優先返信モダリティ: mirror(入力に応じる、デフォルト)、voice(音声対応チャンネルでは常にTTSノートとして返信し、プロアクティブなメッセージを配信する)、または text(常にテキスト)。
admin_for_agent_scopetrue の場合、グループの external_peers はバインドされたエージェントに対して /model --agent <model> を発行する権限を持ちます。デフォルトは false(デフォルトで拒否)です。管理者エージェントスコープ承認を参照してください。

解決

あるエージェントについて、ランタイムはそのエージェントが属するすべてのグループを巡回し、(エージェントピアとしての)他のメンバーのエイリアスと、そのグループのチャネル上の external_peers を統合してから、ignore リストを差し引きます。エージェント自身のエイリアスは、自己ループを避けるため防御的に除去されます。どのピアグループにも属さないエージェントは、エージェント間ディスパッチなしで単独で実行されます。

各チャネルが照合する送信者識別子は、プラットフォームによって異なります(Telegram のユーザー ID、Matrix の @user:server、E.164 形式の番号、UUID など)。各チャネルのページに、想定される識別子の形式が記載されています。

Example

my_discord_group のような名前の discord ピアグループでは、channel = "discord" を設定し、external_peers111111111111111111 を許可し、ピアエージェントに researcher、summariser という名前を付け、ignore を介して 222222222222222222 をブロックします。これは gateway ダッシュボード、zerocode、または zeroclaw config set を使って設定します。

各チャネルページには、そのチャネルの送信者識別子の形式を持つディレクティブ形式が表示されます。

管理者エージェントスコープ認可

admin_for_agent_scope = true はグループの権限境界を拡張します。ルーティング可能なピアであることに加え、各 external_peers メンバーはバインドされたエージェントに対して /model --agent <model> を発行できるようになります。すなわち、エージェントの バインディング をデフォルト以外のモデルに切り替えられます。このフラグはデフォルトで拒否されます。明示的に true に設定されていないすべてのグループはこの機能を拒否し、これには空でない external_peers を持つグループも含まれます。/model --user <model>(セッション限定のオーバーライドで、エージェントの再バインディングは行われません)はこのフラグによって制御されず、受け入れられたすべてのピアが利用できます。

オーケストレーターは、認可された管理者セットを Config::channel_agent_scope_admins からライブで解決しますが、ディスパッチゲートはランタイムの起動時に使用された設定スナップショットを通じて読み取ります。したがって、admin_for_agent_scope(またはグループの external_peers / channel / agents)へのオペレーターによる編集は、実行中のプロセスではなく、次回のデーモン再起動時に反映されます。稼働中のデーモンでフラグを切り替えても、それ自体では現在のセッション内で新しい送信者が認可されることはありません。

これは意図的な動作です。認可は起動時に不変となる設定に対して計算されるため、実行中に管理グループへ_追加された_ピアは、現在のプロセスの存続期間中に権限を昇格させることはできません。この集合が再解決されるのは完全な設定リロード時のみであり、これ自体が再起動のパスとなります。スコープ内にあると想定していた送信者に対して /model --agent の呼び出しが「not authorized」と報告する場合は、admin_for_agent_scope を編集した後にデーモンを再起動し、さらなる結論を導く前に新しいクライアントセッションからコマンドを再発行してください。