Skip to content

Coordinate Agents

Coordinator owns agent runtime state. It records agent sessions, service leases, invocation lifecycle, and delegation edges that STS later uses to validate delegated exchanges.

sequenceDiagram
  participant SDK as Agent SDK
  participant Coord as Coordinator
  participant PG as Postgres
  participant Redis as Redis Streams
  participant STS
  SDK->>Coord: create or update agent session
  Coord->>PG: persist session and leases
  Coord->>Redis: publish caracal.agents.lifecycle
  SDK->>Coord: create delegation edge
  Coord->>PG: persist edge and graph epoch
  Coord->>Redis: publish delegation invalidation
  SDK->>STS: exchange with agent_session_id/delegation_edge_id
  STS->>PG: validate session, edge, constraints, and graph state
StatePurpose
agent_sessionsAgent session tree, parent-child relationships, status, leases, and root subject session.
agent_servicesService agents and heartbeat health.
delegation_edgesSource/target sessions, resource/scope bounds, expiry, constraints, and status.
agent_invocationsInvocation lifecycle and deadline tracking.
delegation_graph_epochsGraph invalidation and traversal consistency.
caracal_outboxDurable event publication for Coordinator-produced topics.
TopicMeaning
caracal.agents.lifecycleAgent session lifecycle.
caracal.invocations.lifecycleInvocation lifecycle.
caracal.delegations.invalidateDelegation graph invalidation.
caracal.sessions.revokeSession, agent, and delegation revocation propagation.

Human operators use Console agent session and delegation views. Automation uses Coordinator API/Admin SDK surfaces. Top-level caracal runtime commands do not manage agent sessions or delegation.

Use Propagate Events to understand how lifecycle, invalidation, revocation, and audit messages move.