ID: ADR-011 タイトル: 設定済みエージェントは単一デーモンの下で明示的なランタイム境界を持つ 日付: 2026-07-19 ステータス: 承認済み 関連:
- https://github.com/zeroclaw-labs/zeroclaw/issues/5890
- https://github.com/zeroclaw-labs/zeroclaw/pull/6398
- ADR-005
- ADR-010
- docs/book/src/agents/overview.md
- docs/book/src/agents/internals.md
- docs/book/src/channels/peer-groups.md
ADR-011: 設定されたエージェントは単一のデーモン下で明示的なランタイム境界を持つ
これは、v0.8.0-beta-1 で #6398 を通じてリリースされたマルチエージェントアーキテクチャの遡及的な記録です。上記の日付は、この ADR が追加された日付であり、元の実装日ではありません。
採択済み RFC #5890 は、より広範なマルチエージェント UX と構成モデルを提案しました。この記録は、リリースされた5つの永続的な境界を記録しています: 名前付きアイデンティティ、単一の監督デーモン、明示的なチャネル関係、エージェントスコープのメモリ、エージェントごとのランタイムポリシーとワークスペーススコープ。これは、RFC の未リリースのエイリアスのみの参加要件、memory_namespaces スキーマ、バンドル分類、スウォーム形状、または延期されたダッシュボードとオブザーバビリティのコントラクトを正式承認するものではありません。
コンテキスト
ZeroClaw は元々、1つの暗黙的なエージェントを中心に設定とランタイムの動作を構築していました。マルチエージェント操作では、ワークスペース、メモリ、パーミッション、またはチャネルの到達可能性を誤って共有することなく共存できるアイデンティティが必要です。
V3 の実装では、暗黙的なシングルトンをエイリアスをキーとする設定済みエージェントに置き換えました。各エージェントは自身の実行時入力とスコープ境界を解決し、1 つのデーモンが有効なエージェント集合を調整します。明示的な許可によって、連携を意図したエージェント同士が接続されます。
決定
エージェントのアイデンティティと監督
各 [agents.<alias>] エントリは、アドレス指定可能なエージェント ID を定義します。エイリアスは、CLI、チャンネル、デーモン、その他のランタイム エントリ ポイントで、構成済みのエージェントを選択します。単一エージェントのインストールでは、1 つの構成済みエントリで同じモデルを使用します。特権を持つ独立したシングルトン アーキテクチャは存在しません。
各エージェントは独自のワークスペース境界とアイデンティティソースを持ちます。アイデンティティファイルは、インストール全体の共通パーソナリティからではなく、そのエージェントに対して解決されます。
1つの zeroclaw daemon プロセスが、有効化され設定されたエージェントとそのチャネルバインディングを管理します。これは、各エージェントが常時実行されるプロセスやループを所有することを意味するものではありません。デーモンの動作は、アイデンティティごとに1つのデーモンを必要とするのではなく、設定されたセットを起動して連携させることを意味します。
明示的なコミュニケーション
恒久的なルールは、承認済みのチャネル関係を明示することです。現在の実装では、エージェントごとのチャネルバインディングとピアグループを使用しています。同じデーモン内に共存していても、エージェント同士がチャネルピアになるわけではありません。
現在、エージェント間のチャネルメッセージングには、該当チャネルにおける共有ピアグループ関係が必要です。ピアグループは相互ルーティングおよびインバウンド受け入れの境界であり、その関係の外部にあるエージェントは、同じインストール内に設定されているというだけでは到達可能になりません。
互換性のため、いずれの構成済みエージェントもチャネルバインディングを宣言していない場合、ランタイムは決定論的にチャネル所有権を割り当てます。このフォールバックは古いインストール環境との互換性を維持しますが、マルチエージェントのコントラクトとして暗黙的な共有を確立するものではありません。
委任やその他のエージェント間機能では、追加のゲートが課される場合があります。この ADR は、ピアグループのメンバーシップをすべての機能に対する普遍的な認可メカニズムとするものではありません。
ワークスペースとランタイムポリシーのスコープ
有効化された各エージェントは、リスクプロファイルとワークスペース境界を解決します。デフォルトのファイルシステム境界は、そのエージェント自身のワークスペースです。対象のエージェント上のアクセスエントリは、そのエージェントに指定された同階層のワークスペースへのアクセスを明示的に付与します。
ワークスペース専用の jail は、完全自律を含む解決済みリスクプロファイル、またはエージェントの unrestricted-filesystem 設定によって無効化できます。残りの禁止パスポリシーとホスト権限は引き続き適用されます。
プロバイダー、チャネルアダプター、バンドル、またはその他の参照済み設定を共有しても、エージェントのワークスペースや解決済みのランタイムポリシースコープはマージされません。参照リソースまたは認証情報を意図的に共有する場合があります。シークレットはエージェントごとではなく、インストール全体で共有されます。
メモリの分離
構成されたエージェントアイデンティティは、メモリコントラクトが使用するスコープです。バックエンドは、保存されたエージェントメタデータ、またはエージェント所有のストレージ境界とスコープ付きアダプターを通じて、そのスコープを適用します。
クロスエージェントリコールは加算的かつ明示的です。これには互換性のある同一バックエンドへのアクセスが必要であり、ランタイムが異なるバックエンド種別を暗黙に橋渡しすることはありません。
ADR-005 は、ストレージ、帰属、リコール許可リスト、バックエンド互換性、および破壊的操作の制約を管轄します。 ADR-010 は、セッション履歴、キュレーション済みメモリ、およびエンリッチメントの間で権限を別途割り当てます。
スキーマ進化の境界
永続的な決定は、上記の名前付きアイデンティティと明示的な境界モデルである。それらの境界が維持される限り、具体的な設定リファレンス、バンドルエイリアス、およびファイルシステムフィールドは、このADRを無効化することなく変更される場合がある。
結果
肯定的な結果:
- シングルエージェントとマルチエージェントのインストールは、1つのランタイムモデルを共有します。
- オペレーターは、名前付きエージェントごとにワークスペース、メモリ、ランタイムポリシー、およびチャネル到達可能性について推論できます。
- 共有は、プロセスの共存から推測するのではなく、構成によって明示されます。
- エージェント間のコラボレーションは、デフォルトのスコープ境界を弱めることなく、選択的に追加できます。
否定的な結果:
- すべてのエージェント対応エントリポイントは、エージェントエイリアスを正しく保持するか解決する必要があります。
- 設定の検証では、ランタイムで使用する前に、無効なエイリアスや互換性のないエージェント間の付与を拒否する必要があります。
- インストール全体で共有されるバックエンドとアダプターには、スコープを分離プロセスに依存するのではなく、エージェントの帰属情報とフィルタリングが必要です。
- シークレットはインストール全体で共有されるため、エージェントごとのワークスペースおよびランタイムポリシーのスコープは、エージェントごとの認証情報の分離を意味しません。
フォローアップの決定:
- 新しいエージェント間機能では、ピアグループやデーモンのメンバーシップだけで十分だと仮定するのではなく、それぞれ独自の認可および帰属境界を定義する必要があります。
- デフォルトのワークスペース、リスクプロファイル、またはメモリスコープを弱める変更には、明示的なアーキテクチャおよびセキュリティの意思決定が必要です。
参照
- RFC #5890: マルチエージェント UX フロー
- PR #6398: マルチエージェント V3 ランタイムとスキーマ
- エージェント
- 実行中のエージェント
- ランタイムの内部
- ピアグループ
crates/zeroclaw-config/src/schema.rscrates/zeroclaw-config/src/multi_agent.rscrates/zeroclaw-config/src/policy.rscrates/zeroclaw-channels/src/orchestrator/mod.rscrates/zeroclaw-memory/src/agent_scoped.rs