Skip to content

FSM Signal Compression Architecture

Principle

Core Design Rule: Service agents compress "noisy external signals" into fundamental FSM inputs. FSMs maintain O(1) performance with minimal discrete signals.

Signal Compression Mapping

Service Cycle FSM (8 Fundamental Inputs)

DEPOSIT_CONFIRMED     ← SERVICE_ACTIVATED, contract execution
BATTERY_ISSUED        ← ASSET_ALLOCATED, fleet allocation, handover  
BATTERY_RETURNED      ← ASSET_RETURNED, personnel validation, completion
BATTERY_LOST          ← ASSET_LOST_DETECTED, damage/theft reports
BATTERY_FOUND         ← ASSET_FOUND, recovery completion
SERVICE_CANCELLED     ← cancellation scenarios, timeouts
ASSET_SETTLEMENT_COMPLETE ← compensation, legal resolution
CONTINUE_SERVICE_REQUESTED ← SERVICE_CONTINUATION_APPROVED, confirmations

Payment Cycle FSM (7 Fundamental Inputs)

CONTRACT_SIGNED       ← CONTRACT_EXECUTED, legal completion
DEPOSIT_PAID          ← DEPOSIT_PAYMENT_CONFIRMED, Odoo sync
RENEWAL_PAID          ← RENEWAL_PAYMENT_CONFIRMED, Odoo sync  
SUBSCRIPTION_EXPIRED  ← SUBSCRIPTION_PERIOD_ENDED, billing cycles
QUOTA_EXHAUSTED       ← QUOTA_LIMIT_REACHED, usage analysis
FINAL_PAYMENT_DUE     ← FINAL_PAYMENT_TRIGGERED, contract end
FINAL_PAYMENT_PAID    ← FINAL_PAYMENT_CONFIRMED, Odoo sync

External Signal Categories

W1-W5 Rider Workflow → Fundamental Signals

  • ASSET_IDS_RESOLVEDDEPOSIT_CONFIRMED
  • INTENT_SIGNAL_EMITTEDCONTINUE_SERVICE_REQUESTED
  • BINDING_ESTABLISHEDDEPOSIT_CONFIRMED
  • INSTRUCTION_SENTBATTERY_ISSUED
  • ALL_STATES_UPDATEDBATTERY_RETURNED

MQTT/Personnel/Odoo → Fundamental Signals

  • Personnel validation → BATTERY_RETURNED / BATTERY_LOST
  • MQTT operational → BATTERY_ISSUED / SERVICE_CANCELLED
  • Odoo integration → payment cycle inputs

Benefits

  1. FSM Mathematical Rigor: O(1) performance, deterministic behavior
  2. Agent Flexibility: Handles operational complexity, external changes
  3. System Boundaries: Clear FSM (core logic) vs Agent (operations) separation

Implementation Reference

See models/battery-swap/bss-agent-v2.ts for BSS implementation example.