Module behavioral_cloning

Module behavioral_cloning 

Source
Expand description

Behavioral cloning of backends - learn from recorded traffic to create realistic mock behavior Behavioral Cloning of Backends

This module provides functionality to learn from recorded traffic and create realistic mock behavior that captures the “personality” of the real backend.

§Features

  • Sequence Learning: Discover and model multi-step flows from real traffic
  • Probabilistic Outcomes: Model probabilities of errors, latency, and edge cases per endpoint
  • Rare Edge Amplification: Option to increase rare error frequency for testing

§Example Usage

use mockforge_core::behavioral_cloning::{
    SequenceLearner, ProbabilisticModel, EdgeAmplifier,
};

// Learn sequences from recorded traffic
let sequences = SequenceLearner::discover_sequences_from_traces(&database).await?;

// Build probability models for endpoints
let model = ProbabilisticModel::build_probability_model(
    &database,
    "/api/users",
    "GET"
).await?;

// Sample a status code based on learned distribution
let status_code = model.sample_status_code();

// Amplify rare errors for testing
let amplifier = EdgeAmplifier::new();
amplifier.apply_amplification(&mut model, 0.5)?; // 50% frequency

Re-exports§

pub use edge_amplifier::EdgeAmplifier;
pub use probabilistic_model::ProbabilisticModel;
pub use sequence_learner::SequenceLearner;
pub use sequence_learner::TraceQueryProvider;
pub use sequence_learner::TraceRequest;
pub use types::AmplificationScope;
pub use types::BehavioralSequence;
pub use types::EdgeAmplificationConfig;
pub use types::EndpointProbabilityModel;
pub use types::ErrorPattern;
pub use types::LatencyDistribution;
pub use types::PayloadVariation;
pub use types::SequenceStep;

Modules§

edge_amplifier
Rare edge case amplification
probabilistic_model
Probabilistic outcome modeling
sequence_learner
Sequence learning from recorded traffic
types
Behavioral cloning type definitions