Use this file to discover all available pages before exploring further.
Mobs are Meerkat’s multi-agent runtime. A mob is a durable team of agent
members with stable identities, profile-driven behavior, peer wiring, optional
flows, and host-visible lifecycle state.Use mobs when one session is no longer the right unit of work: release triage
teams, code review panels, research teams, incident rooms, long-running helper
pools, and browser-deployed mobpacks all use the same underlying mob runtime.
Mobs are the multi-agent path in Meerkat. The agent-facing delegate tool,
explicit mob_* tools, SDK Mob classes, mob/* RPC methods, public MCP mob
tools, and mobpack deployment all route through the mob system.
A MobDefinition describes profiles, limits, wiring rules, topology, and
flows. The running mob records the roster, member lifecycle, events, flow runs,
and work state. Each member is an agent session, but public mob APIs address the
member by stable AgentIdentity, not by an internal session or runtime binding.
Let software create, inspect, drive, and supervise mobs
Public MCP tools
External MCP clients
meerkat_mob_*
Expose the typed host control plane through MCP
Agent-side tools are late-bound through the session build path. Host APIs are
the stable control plane for applications and SDKs. Do not treat raw mob_*
agent tools as if they were JSON-RPC methods.
delegate creates an implicit session-owned mob on first use, spawns a helper,
and wires the helper to the creating session. Use it for bounded helper work
that should report back.
rkat run --tools full "Ask one helper to inspect the test failure, then summarize what it found."
For recurring teams, use explicit mobs instead of a chain of ad hoc delegates.
Profiles are role contracts. Spawn requests may override selected profile
fields, but the definition remains the durable source for the mob’s intended
shape.
Mobs do not use prefabs or templates in 0.6.5. Create mobs from
MobDefinition directly, or package that definition as a mobpack.
rkat run --tools full "Create a release-triage mob with a lead and two analysts, then report member status."rkat mob spawn-helper release-triage "Investigate the latest failing check" --agent-identity analyst-3 --profile analyst --jsonrkat mob wait-kickoff release-triage --timeout-ms 30000 --json
Spawn defaults matter:
Field
Default
runtime_mode
autonomous_host
launch_mode
fresh member
tool_access_policy
inherit
budget_split_policy
equal
auto_wire_parent
surface-dependent helper behavior
Autonomous members run as long-lived peers. turn_driven members are useful
when a host wants explicit dispatch control.
Mobs separate stable member identity from runtime binding details:
Identity
Scope
AgentIdentity
Stable public member key; use this in APIs, wiring, status, work, and events
AgentRuntimeId
Current runtime binding; rotates when a member respawns
FenceToken
Monotonic stale-write guard for runtime binding effects
Generation
Member generation counter after respawn
Use AgentIdentity for facts that survive respawn, such as wiring and durable
configuration. Runtime IDs and fence tokens protect the lower-level binding.
Topology rules can reject wiring or dispatch that violates the definition. Use
strict topology when roles must not communicate outside an approved graph.
member_ref is an opaque handle returned by spawn, member list, member send,
helper spawn, fork, and respawn responses. Application code should pass it back
to work-lane APIs as-is instead of constructing it from mob_id and
agent_identity.
Flows are declarative mob workflows. They let a host dispatch repeatable work
without hard-coding all member turns in application code.The classic flow shape is a flat DAG: steps declare roles, messages,
dependencies, fan-out/fan-in behavior, optional conditions, and tool overlays.
Frame-based flows add nested FlowSpec.root frames and repeat_until loops.
Both are owned by the mob runtime; support modules such as flow-run projection
are not separate public machines.
{ "flows": { "triage": { "steps": { "scan": { "role": "lead", "message": "Review the incident queue and pick the top issue." }, "investigate": { "role": "analyst", "message": "Investigate the selected issue and return evidence.", "depends_on": ["scan"], "dispatch_mode": "fan_out" }, "summarize": { "role": "lead", "message": "Summarize findings and recommend next action.", "depends_on": ["investigate"], "dispatch_mode": "fan_in" } } } }}
Persistent mobs use SQLite/WAL-backed storage. In-memory storage is used for
tests and WASM/browser-embedded paths. The mob store is realm-scoped in the
runtime-backed surfaces, so a process restart can recover mob state, members,
events, flow snapshots, and work records.
Most members are normal session-backed agents. External members are advanced:
they require an external runtime binding with a concrete address and trusted
peer identity so the orchestrator can route supervisor bridge traffic to the
right process.Use external members only when the member must run outside the local Meerkat
runtime, such as another host, sandbox, or service process.
Live audio is per session. To use live audio with a mob member, give that
member a realtime-capable model such as gpt-realtime-2, spawn the member, then
open a live channel against the member’s session through the live/* surface.See Live channels.