AI Research & Engineering · Multi-Agent Coordination

HCT Patterns Library

Diagnostic and Functional Patterns for Multi-Agent Systems
HCT Patterns

Diagnose why your agent swarm is failing and get drop-in solutions.

The Patterns Library translates the "Musical Ontology" of Harmonic Coordination Theory into practical, enterprise-ready diagnostic patterns.


Diagnostic Patterns

⏱️ Timing & Synchronization

SymptomDiagnosisPatternSolution
Deadlock / HangingStuck FermataEscalation PatternAdd timeout with caesura fallback
Hallucination / SkippingRushingTempo ControlChain-of-Verification gates
Analysis ParalysisDraggingUrgency InjectionExplicit urgency signals
Premature ActionFalse EntryUpbeat PatternBarrier synchronization
Out-of-Order ResultsEnsemble TearingSyncopation PatternA2A async handling

🎼 Coherence & Quality

SymptomDiagnosisPatternSolution
Agents contradict each otherHarmonic ClashShared ProgressionsDefine voice hierarchy
Same error repeatsDeaf AgentFeedback InjectionWire SVRL loop
Context mismatchDissonanceTuning PatternShared reference frame
Scope creepImprovisation DriftScore ComplianceExplicit constraints
Echo chamberSycophancyConsensus PatternMulti-verifier debate

🔊 Resource & Dynamics

SymptomDiagnosisPatternSolution
Silent outputGhost NotesPulse PatternHeartbeat monitoring
Budget explosionRunaway DynamicFade Out PatternToken budgets
Context overflowSectional BalanceMixing PatternContext pruning
Inconsistent formatUneven PhrasingLegato PatternStyle prompting
Wrong tool selectionInstrument ConfusionOrchestration PatternTool filtering

Functional Patterns

Human-in-the-Loop (Fermata)

Use Case: Pausing execution for human approval or input.

from hct_mcp_signals import fermata

# Pause for human review before publishing
hold = fermata(
    source="report_agent",
    reason="Ready for compliance review",
    hold_type="human"
)

Status Streaming (Ostinato)

Use Case: Long-running task updates with repeating status signals.

# Stream progress during lengthy operations
for chunk in process_document(doc):
    signal = ostinato("processor", progress=chunk.percent)
    yield signal

How to Use

Each pattern includes:

  1. Symptom: How it looks in your logs
  2. Diagnosis: The HCT concept explaining the failure
  3. Solution: Python/pseudocode to fix it

View full patterns on GitHub →