Skip to main content
The roster is the authoritative record of every member in a mob. It tracks active and retiring members, their profiles, peer wiring, and labels. All roster mutations flow through the gateway’s JSON-RPC interface, and every query returns a consistent MobMemberSnapshot.
The member API on this page is the worker plane: it is the right surface for ephemeral, disposable members — helpers a parent agent spawns and an idle-retire policy reaps. Durable members (per-user agents, long-lived coordinators, anything that must survive a restart) belong on the identity plane: declare them in an identity roster and reconcile, instead of ensure_member-ing them into the mob roster. Identity-plane members get continuity records, lease-fenced embodiment, and resume across restarts — mob-plane members get none of that. On an identity-first gateway the member methods below re-dispatch to identity semantics automatically.

Member states

Each member is in exactly one lifecycle state at any time.
Idle members with no active sessions may be immediately disposed when retired, skipping the retiring phase entirely.

Roster operations

All operations are exposed as JSON-RPC methods on the gateway.

MobMemberSnapshot

Every roster query returns one or more MobMemberSnapshot objects:

Python SDK

The Python SDK exposes typed wrappers for every roster operation:
list_members() and find_members() return list[MemberSnapshot]. Single-member operations (get_member, ensure_member) return a single MemberSnapshot. Mutation operations (retire_member, respawn_member) return the updated snapshot after the state transition completes.

Reconciliation

The reconcile() call uses the roster to determine which members to spawn, retain, or retire. It compares the desired member set (from the session build options) against the current roster and applies the minimal set of mutations to converge. See the unified runtime guide for the full reconciliation flow.

See also