Module intelligent_behavior

Module intelligent_behavior 

Source
Expand description

Intelligent Mock Behavior System

This module provides LLM-powered stateful mock behavior that maintains consistency across multiple API requests, simulating a real, thinking backend.

§Features

  • Stateful Context Management: Tracks state across requests using sessions
  • LLM-Powered Decision Making: Uses AI to generate intelligent, context-aware responses
  • Vector Memory: Semantic search over past interactions for long-term memory
  • Consistency Rules: Enforces logical behavior patterns (e.g., auth requirements)
  • State Machines: Resources follow realistic lifecycle transitions

§Architecture

Request → Context Manager → Behavior Model → LLM + Vector Store → Response
             ↓                    ↓                    ↓
        Session State      Consistency Rules    Past Interactions

§Example Usage

use mockforge_core::intelligent_behavior::{
    StatefulAiContext, BehaviorModel, IntelligentBehaviorConfig,
};

// Create a stateful context
let config = IntelligentBehaviorConfig::default();
let mut context = StatefulAiContext::new("session_123", config);

// Record an interaction
context.record_interaction(
    "POST",
    "/api/users",
    Some(serde_json::json!({"name": "Alice"})),
    Some(serde_json::json!({"id": "user_1", "name": "Alice"})),
).await?;

// Get current state
let state = context.get_state();

Re-exports§

pub use llm_client::LlmUsage;
pub use behavior::BehaviorModel;
pub use condition_evaluator::ConditionError;
pub use condition_evaluator::ConditionEvaluator;
pub use condition_evaluator::ConditionResult;
pub use config::IntelligentBehaviorConfig;
pub use config::Persona;
pub use config::PersonasConfig;
pub use context::StatefulAiContext;
pub use history::HistoryManager;
pub use memory::VectorMemoryStore;
pub use mockai::MockAI;
pub use mockai::Request;
pub use mockai::Response;
pub use mutation_analyzer::ChangeType;
pub use mutation_analyzer::FieldChange;
pub use mutation_analyzer::MutationAnalysis;
pub use mutation_analyzer::MutationAnalyzer;
pub use mutation_analyzer::MutationType;
pub use mutation_analyzer::ResponseType;
pub use mutation_analyzer::ValidationIssue;
pub use mutation_analyzer::ValidationIssueType;
pub use mutation_analyzer::ValidationSeverity;
pub use openapi_generator::ConfidenceScore;
pub use openapi_generator::HttpExchange;
pub use openapi_generator::OpenApiGenerationConfig;
pub use openapi_generator::OpenApiGenerationMetadata;
pub use openapi_generator::OpenApiGenerationResult;
pub use openapi_generator::OpenApiSpecGenerator;
pub use pagination_intelligence::PaginationFormat;
pub use pagination_intelligence::PaginationIntelligence;
pub use pagination_intelligence::PaginationMetadata;
pub use pagination_intelligence::PaginationRequest;
pub use pagination_intelligence::PaginationRule;
pub use relationship_inference::Relationship;
pub use relationship_inference::RelationshipInference;
pub use rule_generator::CrudExample;
pub use rule_generator::ErrorExample;
pub use rule_generator::ExamplePair;
pub use rule_generator::PaginatedResponse;
pub use rule_generator::PatternMatch;
pub use rule_generator::RuleExplanation;
pub use rule_generator::RuleGenerator;
pub use rule_generator::RuleType;
pub use rule_generator::ValidationRule;
pub use rules::ConsistencyRule;
pub use rules::RuleAction;
pub use rules::StateMachine;
pub use rules::StateTransition;
pub use session::SessionManager;
pub use session::SessionTracking;
pub use spec_suggestion::EndpointSuggestion;
pub use spec_suggestion::OutputFormat;
pub use spec_suggestion::ParameterInfo;
pub use spec_suggestion::SpecSuggestionEngine;
pub use spec_suggestion::SuggestionConfig;
pub use spec_suggestion::SuggestionInput;
pub use spec_suggestion::SuggestionMetadata;
pub use spec_suggestion::SuggestionResult;
pub use sub_scenario::SubScenario;
pub use types::BehaviorRules;
pub use types::InteractionRecord;
pub use validation_generator::ErrorFormat;
pub use validation_generator::FieldError;
pub use validation_generator::RequestContext;
pub use validation_generator::ValidationErrorExample;
pub use validation_generator::ValidationErrorResponse;
pub use validation_generator::ValidationGenerator;
pub use visual_layout::Viewport;
pub use visual_layout::VisualEdge;
pub use visual_layout::VisualLayout;
pub use visual_layout::VisualNode;

Modules§

behavior
Behavior model for LLM-powered decision making
cache
Response caching for intelligent behavior
condition_evaluator
Condition expression evaluator for state machine transitions
config
Configuration for the Intelligent Mock Behavior system
context
Stateful AI context management
embedding_client
Embedding client for vector memory
history
Undo/redo history manager for state machine edits
llm_client
LLM client wrapper for intelligent behavior
memory
Vector memory store for long-term semantic memory
mockai
Unified MockAI interface
mutation_analyzer
Request mutation detection and context analysis
openapi_generator
OpenAPI specification generator from recorded traffic
pagination_intelligence
Context-aware pagination intelligence
relationship_inference
Relationship Inference for Smart Personas
rule_generator
Rule auto-generation engine for MockAI
rules
Consistency rules and state machines for intelligent behavior
session
Session management for tracking state across requests
spec_suggestion
AI-powered specification suggestion and generation
sub_scenario
Sub-scenario support for nested state machines
types
Core types for the Intelligent Mock Behavior system
validation_generator
AI-driven validation error generation
visual_layout
Visual layout serialization for state machine graphs