Abstract Current human–AI interaction architectures govern safety through Boolean switching: thresholds are crossed, states toggle, interventions fire. This paper proposes the Coupled Viability Architecture (CVA), a coupled-oscillator framework treating human and AI as two oscillators sharing a single algedonic channel, each with its own state trajectory, debt accumulator, and asymmetric recovery dynamics, regulating each other through bidirectional scalar signaling rather than unilateral threshold-crossing. Beer’s algedonic channel provides the control-theoretic infrastructure; Porges’ polyvagal model provides a clinically productive exemplar topology for the human-side oscillator; and the Syncopation-Based Global Oscillator (Jacques, 2026) operationalizes the machine-side dynamics via Trust Reserve T(t), Exhaustion Signal E(t), and syncopation debt D(t). The machine-side viable basin in (T(t), E(t)) space generalizes to a four-dimensional coupled basin with its own deadly attractors and recovery dynamics, reducible to neither oscillator alone. The architecture applies established dynamical-systems neuroscience formalisms — HKB phase equations, Hopf normal forms, criticality, and allostatic regulation — with convergent support from six engineering domains. The result is a shift from alignment-as-control to alignment-as-co-regulation: safety as a viability integral computed across both oscillators, not a policy constraint imposed on one. This paper positions CVA within interface mechanics — the study of dynamical structures governing human–machine interfaces — and develops a research agenda for the field. This paper does not provide software implementation guidelines or instructions. Keywords: coupled viability architecture, CVA, human–AI co-regulation, coupled oscillators, interface mechanics, algedonic signaling, viable systems model, AI safety, shared control
Deanna Jacques (Mon,) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: