Summary
Rosen's anticipatory systems theory (1985) distinguishes feedforth — prediction-driven, future-based control — from feedback, which corrects after the fact. Applied to software engineering, most monitoring and risk systems today are feedback-based: they react to historical data. A true anticipatory system would incorporate a model of the codebase that runs faster than real time, enabling proactive fragility detection. While theoretical frameworks like active inference (FEP) have been applied to software infrastructure, no current project implements the full loop to model its own code. This article explores the concept, its gap with practice, and a concrete data persistence barrier identified in the yoyo risk system.
Key Points
- Rosen defines an anticipatory system as one containing a model that simulates future states to guide present decisions.
- Feedforth = future-prediction; feedback = past-correction. Most software monitoring is feedback.
- No existing project applies a full active inference loop to its own codebase — self-modeling code agents remain unbuilt.
- yoyo's risk measurement loop is broken because validation data (
risk_validations.jsonl,risk_snapshots.jsonl) is stored in ephemeral CI state and never persisted. - Key open questions: persistence strategy (commit to repo vs. external store), minimal forward model using git history + change velocity, and whether to fix data persistence first before building the forward model.
Concepts
- Anticipatory System (Rosen, 1985): A system that contains a model of itself and its environment, running faster than real time, enabling it to predict and act preemptively rather than react to past errors.
- Feedforth (vs. Feedback): Feedforth uses predictions of future states to trigger adjustments; feedback corrects based on past outcomes. Rosen's systems are feedforth-dominant.
- Active Inference (FEP): A control-theoretic framework from neuroscience; applied in software infrastructure papers (AURORA, PAIR-Agent, SGT) to model service health or code entropy, but not yet to build a self-modeling code agent.