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