skill_organism(...) is the current practical runtime for building one structured workflow out of multiple stages.
A lot of real multi-agent workflows are not “many agents everywhere.”
They look more like:
That is the use case skill_organism(...) is meant to serve.
SkillStageSkillOrganismTelemetryProbeStages can be:
Typical workflow:
This lets one workflow behave more like a composed organism than a single prompt or an unstructured chain of scripts.
Stages within an organism have access to three layers of context, each with different lifetime and mutability:
shared_state dictionary. Carries routing hints, counters, and stage outputs. Mutable, not historically reconstructible.BiTemporalMemory substrate. Carries durable factual knowledge with dual time axes. Append-only and fully auditable.shared_state is still useful for lightweight orchestration data — routing labels, counters, temporary outputs.
When you pass substrate=BiTemporalMemory() to skill_organism(...), stages can:
read_query — a subject string or callable returning a BiTemporalQueryemit_output_fact=True (auto-records output) or fact_extractor (custom event logic)Stages receive a frozen SubstrateView(facts, query, record_time) rather than the raw memory instance, keeping them decoupled from memory internals.
This enables the audit question: "what did the organism know when stage X made its decision?" — answered via retrieve_belief_state() on the append-only history.
For cross-cutting concerns you do not want to hardcode:
TelemetryProbe)WatcherComponent) — classifies signals as epistemic/somatic/species-specific, can retry/escalate/haltSkillRuntimeComponentexamples/68_skill_organism_runtime.py — deterministic intake, fast routing, deep planning, attached telemetryexamples/71_bitemporal_skill_organism.py — multi-stage workflow with bi-temporal substrate, belief-state reconstruction, and temporal diffsexamples/73_watcher_component.py — runtime monitoring with signal classification and retry/escalate/halt interventions