Skip to main content
The Coordination Layer provides infrastructure for multi-agent collaboration. It ensures agents can share data, track progress, and hand off work reliably.

Why Coordination Matters

Without proper coordination infrastructure, multi-agent systems become unpredictable and unreliable. Agents can overwrite each other’s work causing data loss, fail to recover from errors resulting in wasted progress, operate without awareness of other agents’ activities leading to duplicated efforts, experience race conditions where timing determines outcomes inconsistently, and produce invalid outputs that cascade through the system. The lack of coordination transforms collaborative potential into operational chaos where agents work against each other rather than together. The Coordination Layer solves:
ProblemSolutionWhat it does
Data conflictsSharedStateSingle source of truth
Unauthorized writesStateOwnershipWho can write where
Lost progressCheckpointManagerSave and resume
Invalid dataSchemaValidatorValidate outputs
Bad handoffsHandoffManagerValidate between agents
No contextChainContextAgents see history
Unknown progressGoalTrackerTrack toward completion
Race conditionsActionEligibilityWho can act when
Unclear completionCompletionTrackerExplicit “I’m done”
Mystery waitsWaitTrackerWhy agents are idle

Quick Start

from splinter.coordination import SharedState, CheckpointManager

# Shared state for all agents
state = SharedState(initial_data={"topic": "AI trends"})

# Agent 1 writes
state.set("research.findings", ["trend1", "trend2", "trend3"])

# Agent 2 reads
findings = state.get("research.findings")

# Checkpoint for recovery
mgr = CheckpointManager()
mgr.create_checkpoint(workflow_id="wf-1", step=1, state=state)

Coordination Objects

SharedState

Single source of truth for all agents

StateOwnership

Control who can write to which fields

CheckpointManager

Save progress, resume after failure

SchemaValidator

Validate agent outputs

HandoffManager

Validate data between agents

ChainContext

Agents see what happened before

GoalTracker

Track progress toward goals

ActionEligibility

Control which agent can act

CompletionTracker

Track agent completion signals

WaitTracker

Track why agents are waiting

How Coordination Works

Combining Coordination Objects

from splinter.coordination import (
    SharedState,
    StateOwnership,
    CheckpointManager,
    HandoffManager,
    GoalTracker,
)

# State with ownership
state = SharedState()
ownership = StateOwnership()
ownership.register("researcher", ["research.*"])
ownership.register("writer", ["content.*"])

# Checkpoints
checkpoints = CheckpointManager()

# Handoff validation
handoffs = HandoffManager()
handoffs.register_schema("researcher", "writer", research_output_schema)

# Goal tracking
goals = GoalTracker()
goals.set_goal(Goal(
    goal_id="article",
    success_criteria=["Research", "Draft", "Review", "Publish"],
))

# All work together in a workflow
workflow = Workflow(workflow_id="pipeline")
workflow.set_state(state)
workflow.set_ownership(ownership)
workflow.set_checkpoint_manager(checkpoints)
workflow.set_handoff_manager(handoffs)
workflow.set_goal_tracker(goals)

Best Practices

Don’t pass data between agents manually. Use SharedState.
Before agents run, decide who owns which fields.
If an agent fails mid-handoff, you can recover.
Don’t assume agents output valid data. Validate.
Helps you (and agents) understand progress.