Work in progress. AI gen code, use at own risk.
A sophisticated multi-agent cognitive system implementing asynchronous event-driven architecture for advanced AI coordination and decision-making.
The ESAF Framework represents an evolution in multi-agent system design, moving from traditional synchronous sequential processing to a dynamic, event-driven architecture. The system features specialized agents that communicate through a central Cognitive Substrate, enabling parallel processing, real-time adaptation, and emergent intelligence.
- ๐ง Cognitive Substrate: Central event-driven communication bus
- ๐ค Specialized Agents: Modular agents with distinct cognitive functions
- โก Asynchronous Processing: Non-blocking, parallel task execution
- ๐๏ธ Dynamic Orchestration: Intelligent task routing and dependency management
- ๐ก๏ธ Governance Layer: Ethical constraints and safety mechanisms
- ๐ Real-time Monitoring: Live dashboard with agent status and event logging
-
Cognitive Substrate (
CognitiveSubstrate)- Event-driven message bus using EventEmitter3
- Pub/sub pattern for agent communication
- Event history and filtering capabilities
-
ESAF Orchestrator (
ESAFOrchestrator)- Task creation and distribution
- Agent lifecycle management
- System coordination and monitoring
-
Base Agent Framework (
BaseESAFAgent)- Common agent contract and behavior
- Event subscription management
- Error handling and graceful shutdown
-
Specialized Agents
- Data Analysis Agent (DA): Bayesian data processing, validation, feature extraction
- Optimization Agent (OA): Linear programming, constraint formulation, algorithm selection
- Game Theory Agent (GT): Strategic analysis, equilibrium computation, conflict resolution
- Swarm Intelligence Agent (SI): Adaptive learning, emergent behavior, system optimization
- Decision Making Agent (DM): Multi-criteria analysis, stakeholder synthesis, final recommendations
User Request โ Orchestrator โ Task Creation โ Agent Assignment โ
Processing โ Event Publishing โ Result Collection โ Response
The ESAF Framework includes sophisticated dynamic model fetching capabilities that automatically discover and manage available models across all supported LLM providers.
| Provider | Discovery Method | Real-time Fetching |
|---|---|---|
| Google Gemini | /v1beta/models API |
โ Live from Google |
| LM Studio | /api/v0/models REST |
โ Local server |
| Ollama | /api/tags endpoint |
โ Local models |
| OpenAI | models.list() SDK |
โ Live from OpenAI |
| Anthropic | Known model list | ๐ Static catalog |
- ๐ Real-time Discovery: Fetches available models directly from provider APIs
- ๐พ Intelligent Caching: 5-minute TTL reduces API calls while staying current
- ๐ฅ Health Monitoring: Tracks provider availability and latency
- โก Bulk Operations: Fetch from all providers simultaneously
- ๐ก๏ธ Error Resilience: Graceful fallbacks when providers are unavailable
import { llmService, LLMProvider } from '@/core/llm-service';
// Get models for a specific provider
const models = await llmService.getModelsForProvider(LLMProvider.GOOGLE_GENAI);
// Check provider health
const status = await llmService.checkProviderStatus(LLMProvider.OLLAMA);
// Get all models from all providers
const allModels = await llmService.getAllModels();node test-dynamic-models.jsSee DYNAMIC_MODEL_FETCHING.md for comprehensive documentation.
- Node.js 18+ with npm/yarn
- Rust (for Tauri desktop app)
- UV package manager (preferred)
-
Clone and setup the project:
cd /home/ty/Repositories/ai_workspace/esaf-framework npm install -
Install Rust dependencies:
cd src-tauri cargo fetch cd ..
on Ubuntu systems you may need to install the following packages to run the Tauri version:
sudo apt install -y libwebkit2gtk-4.0-dev libgtk-3-dev librsvg2-dev patchelf libsoup2.4-devsudo apt install -y libayatana-appindicator3-devsudo apt update && sudo apt install -y libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev libsoup-3.0-dev libjavascriptcoregtk-4.1-devIf process left running:
pkill -f "npm run tauri:dev" && pkill -f "vite" && sleep 2-
Development server:
npm run tauri:dev
-
Build for production:
npm run tauri:build
๐ Features That Are Already Implemented- a bit wrong still, scroll all the way up in chat to reveal download and history buttons- AI being absurd.
You can find pre-built packages here, they may work even.
esaf-framework/src-tauri/target/release/bundle/deb/ESAF Framework_0.1.0_amd64.deb
- Every conversation is automatically saved
- Switch between sessions in the History tab
- Previous context is included in new messages
- Sessions persist across app restarts
- Upload files (drag & drop or browse)
- Add URLs for web content
- Select documents to include as AI context
- Manage with tags and descriptions
- All agents use REAL mathematical algorithms
- Data Analysis Agent: Bayesian inference, statistical analysis
- Optimization Agent: Linear programming, genetic algorithms
- Game Theory Agent: Nash equilibrium calculations
- All coordinated by the Orchestrator
import { frameworkInstance } from '@/core/orchestrator.js';
import { TaskPriority } from '@/core/types.js';
// Initialize the framework
await frameworkInstance.initialize();
// Create a data validation task
const taskId = await frameworkInstance.createTask(
'data_validation',
{
dataSources: [
{
id: 'source-1',
type: 'api',
status: 'verified',
lastUpdated: Date.now(),
reliability: 0.8
}
]
},
TaskPriority.HIGH
);
// Monitor results
const result = frameworkInstance.getResult(taskId);
console.log('Analysis result:', result);// Execute a complete multi-agent analysis workflow
const workflowResults = await frameworkInstance.executeCompleteWorkflow(
{
// Your data to analyze
salesData: [100, 120, 95, 140, 160],
customerFeedback: ["positive", "neutral", "positive"],
marketConditions: { competition: "high", demand: "growing" }
},
[
"Optimize sales performance",
"Improve customer satisfaction",
"Strategic market positioning"
],
{
constraints: ["budget < 100000", "timeline < 6months"],
stakeholders: ["sales_team", "customers", "management"],
riskTolerance: "moderate"
}
);
console.log('Complete Analysis Results:', {
dataInsights: workflowResults.dataAnalysis,
optimizationPlan: workflowResults.optimization,
strategicAnalysis: workflowResults.gameTheory,
adaptiveLearning: workflowResults.swarmIntelligence,
finalRecommendation: workflowResults.finalDecision
});data_validation: Validate data sources using Bayesian confidence scoringfeature_extraction: Extract statistical features from data objectsanomaly_detection: Detect outliers and structural anomaliesdata_backup: Version and backup data with metadataintelligent_analysis: General intelligent data analysis for complex queries
constraint_formulation: Formulate mathematical constraints from problem descriptionsalgorithm_selection: Select optimal algorithms (Simplex, Genetic, Multi-objective)solve_optimization: Solve optimization problems using selected algorithmsmulti_objective_optimization: Handle multiple competing objectives with Pareto analysisconstraint_relaxation: Relax infeasible constraints to find solutions
strategy_formulation: Formulate optimal strategies for strategic interactionsequilibrium_analysis: Calculate Nash, Stackelberg, and other equilibriaconflict_resolution: Resolve conflicts between competing interestsrisk_assessment: Assess strategic risks and uncertaintiescoalition_analysis: Analyze coalition formation and stabilitymechanism_design: Design mechanisms for desired strategic outcomes
adaptive_learning: Perform adaptive learning with dynamic parameter adjustmentswarm_optimization: Run swarm algorithms (PSO, ACO, Tabu Search, Simulated Annealing)learning_rate_control: Control and adjust learning rates dynamicallyemergent_behavior_analysis: Analyze emergent behavior in multi-agent systemsmemory_retention: Optimize memory retention and forgetting mechanismssystem_adaptation: Adapt entire system based on performance feedback
decision_integration: Integrate inputs from all agents into cohesive decisionsmulti_criteria_analysis: Perform MCDA using various methods (Weighted Sum, TOPSIS, AHP)contingency_planning: Develop comprehensive contingency plansfallback_strategy: Create fallback strategies for critical failuresstakeholder_synthesis: Synthesize inputs from multiple stakeholdersfinal_recommendation: Generate final comprehensive recommendations
// Data Validation
{
dataSources: [
{
id: string,
type: 'file' | 'api' | 'database' | 'stream',
status: 'verified' | 'unverified' | 'error',
lastUpdated: number,
reliability: number // 0-1
}
]
}
// Feature Extraction
{
data: object,
extractionMethod?: string
}
// Anomaly Detection
{
data: unknown[] | object
}
// Optimization - Algorithm Selection
{
problemType: string,
constraints: OptimizationConstraint[],
variables: OptimizationVariable[],
objectives: string[],
complexity?: 'low' | 'medium' | 'high'
}
// Game Theory - Strategy Formulation
{
scenario: string,
players: GamePlayer[],
objectives: Record<string, string>,
constraints?: string[],
informationStructure?: string
}
// Swarm Intelligence - Adaptive Learning
{
performanceData: number[],
currentParameters: LearningParameters,
adaptationGoals: string[],
constraints?: Record<string, any>
}
// Decision Making - Integration
{
agentInputs: Record<string, any>,
decisionContext: DecisionContext,
criteria: DecisionCriteria[],
alternatives: DecisionAlternative[],
stakeholderInputs?: Record<string, any>
}The React-based dashboard provides:
- System Status: Framework uptime, agent count, task metrics
- Agent Monitoring: Real-time agent status, algorithms, task queues
- Task Management: Create, monitor, and track task execution
- Event Log: Live system events with filtering and search
- Interactive Controls: Task creation, agent management
Dashboard: Main interface coordinatorAgentCard: Individual agent status displayTaskList: Task queue and history managementEventLog: Real-time event monitoring
const config = {
maxConcurrentTasks: 10,
eventHistoryLimit: 10000,
defaultTaskTimeout: 30000
};
const orchestrator = new ESAFOrchestrator(config);Data Analysis Agent:
- BayesianNetworks: Probabilistic inference
- AnomalyDetection: Statistical outlier detection
- DataNormalization: Data preprocessing
- DataVersioning: Backup and versioning
TASK_CREATED: New task added to queueTASK_STARTED: Agent begins processingTASK_COMPLETED: Successful task completionTASK_FAILED: Task execution failureDATA_VALIDATED: Data source validation completeANOMALY_DETECTED: Anomaly identified in dataCONSTRAINT_VIOLATION: System constraint violatedAGENT_ERROR: Agent-level error occurred
// Get framework status
const status = frameworkInstance.getStatus();
console.log({
isRunning: status.isRunning,
activeAgents: status.activeAgents,
pendingTasks: status.pendingTasks,
uptime: status.uptime
});
// Get agent information
const agents = frameworkInstance.getAgentInfo();
agents.forEach(agent => {
console.log(`${agent.name}: ${agent.status}`);
});The ESAF framework implements multiple safety layers:
- Type Safety: Zod schema validation for all data structures
- Error Isolation: Agent failures don't cascade to other agents
- Resource Management: Task queue limits and timeout handling
- Event Auditing: Complete event history for system transparency
- Constitutional AI constraints
- Ethical decision validation
- Stakeholder impact assessment
- Human-in-the-loop intervention points
- โ Cognitive Substrate implementation
- โ Data Analysis Agent (DA)
- โ React Dashboard
- โ Event-driven architecture
- โ Optimization Agent (OA) - Linear programming, constraint optimization
- โ Game Theory Agent (GT) - Strategic analysis, equilibrium computation
- โ Swarm Intelligence Agent (SI) - Adaptive learning, emergent behavior
- โ Decision Making Agent (DM) - Multi-criteria analysis, final synthesis
- ๐ Governance Agent with veto power
- ๐ Agent Foundry (dynamic agent creation)
- ๐ Systemic World Model
- ๐ Advanced constraint systems
- ๐ Enhanced multi-agent workflows
- ๐ Cross-agent learning
- ๐ Adaptive workflow optimization
- ๐ Emergent behavior analysis
- ๐ Self-improving architecture
esaf-framework/
โโโ src/
โ โโโ core/ # Framework core (substrate, orchestrator, types)
โ โโโ agents/ # Agent implementations
โ โโโ components/ # React UI components
โ โโโ main.tsx # Application entry point
โโโ src-tauri/ # Tauri desktop app backend
โโโ public/ # Static assets
โโโ docs/ # Documentation
- Follow the established agent interface (
IESAFAgent) - Implement agents by extending
BaseESAFAgent - Use TypeScript with strict type checking
- Add comprehensive tests for new agents
- Update documentation for new features
npm run test # Run Vitest tests
npm run test:ui # Visual test runner
npm run lint # ESLint checking
npm run format # Prettier formattingMIT License - see LICENSE file for details.
This framework builds upon concepts from:
- Multi-agent systems research
- Event-driven architecture patterns
- Cognitive science principles
- Bayesian probabilistic modeling
- Constitutional AI safety research
Built with: TypeScript, React, Tauri, Vite, Tailwind CSS, EventEmitter3, Zod
