コンテンツにスキップ

topology.yaml

.reyn/topologies/<name>.yaml に宣言された通信 Topology。reyn topology new で作成されます。すべてのプロセス起動時に AgentRegistry が読み込みます。

自動管理の _default network Topology はディスクに格納されません。メモリ上のみに存在し、「ユーザー宣言の Topology に含まれない agent」から計算されます。コンセプト/topology を参照してください。

スキーマ

name: team_research                       # 必須
kind: team                                # 必須: "network" | "team" | "pipeline"
members:                                  # 必須、kind=pipeline では順序が重要
  - default
  - researcher
  - writer
leader: default                           # kind=team では必須、members に含まれる必要がある
created_at: 2026-05-01T12:00:00+00:00     # ISO-8601 UTC、`reyn topology new` が設定

フィールド

name(文字列、必須)

Topology 名。^[a-z0-9][a-z0-9_-]{0,31}$ に一致しなければなりません。default_default は予約済みです。

kind(文字列、必須)

以下のいずれか:

  • networkmembers 間の完全グラフ。can_send(A, B) = (A != B and A,B ∈ members)
  • teamleader を中心とするスター型。can_send(A, B) = (leader ∈ {A, B} and A != B and A,B ∈ members)。ピア間通信(リーダーでないメンバー同士)は禁止。
  • pipeline — 有向パス。can_send(A, B) = members.index(B) == members.index(A) + 1。ジャンプ不可、逆方向不可、fan-out 不可。

treemeetingpairbroadcast の種類は実装されていませんtree は重複する team Topology として表現できます(コンセプト/topology を参照)。その他はニーズ待ちの残課題です。

members(文字列のリスト、必須)

参加する agent の名前。kind: pipeline では順序が重要(有向パスを定義)。kind: networkkind: team では情報提供目的。各名前は reyn topology new / add-member 時に既存の agent を参照する必要があります。reyn agent rm でのカスケードが参照を自動的に削除します。

teamleader に一致するメンバーが少なくとも 1 人必要です。pipeline は重複するメンバーを拒否します(サイクルが生まれます)。network は空の members リストを拒否します(許可されるエッジがない)。

leader(文字列、kind: team では必須)

チームのリーダーの agent 名。members に含まれる必要があります。kind: networkkind: pipeline では設定してはなりません。

created_at(文字列、デフォルト ""

reyn topology new が実行されたときに設定される ISO-8601 UTC タイムスタンプ。装飾的。

許可ルール(レジストリレベル)

レジストリの permit(A, B)AB の両方を members として含むすべての Topology をチェックし、そのどれかが can_send でエッジを許可すれば True を返します。許可的なフォールバックはありません。AB が Topology を共有しない場合(_default を含む)、エッジは拒否されます。

_default は空の状態をエルゴノミックにするために存在します: ユーザー Topology に agent が含まれなくなった瞬間、その agent は _default に再参加し、他の無所属ピアと再び自由に通信できます。

変更のカスケード

  • reyn agent rm <name> はすべての Topology の members から <name> を削除します。
  • リーダーが削除された team Topology は完全に削除されます。
  • members が空になった Topology も削除されます。

関連情報