Resource Allocator Skill
Overview
This skill provides comprehensive adaptive resource allocation capabilities including ML-powered predictive scaling, capacity planning, fault tolerance patterns, and performance profiling for efficient swarm resource management.
When to Use
-
Dynamically allocating resources based on workload
-
Predictive scaling before demand spikes
-
Capacity planning for future growth
-
Implementing fault tolerance (circuit breakers, bulkheads)
-
Performance profiling and optimization
-
Cost-efficient resource management
Quick Start
Analyze resource usage
npx claude-flow metrics-collect --components ["cpu", "memory", "network"]
Optimize resource allocation
npx claude-flow daa-resource-alloc --resources <resource-config>
Predictive scaling
npx claude-flow swarm-scale --swarm-id <id> --target-size <size>
Performance profiling
npx claude-flow performance-report --format detailed --timeframe 24h
Architecture
+-----------------------------------------------------------+ | Resource Allocator | +-----------------------------------------------------------+ | Adaptive Allocator | Predictive Scaler | Profiler | +----------------------+---------------------+--------------+ | | | v v v +------------------+ +------------------+ +---------------+ | Multi-Objective | | ML Models | | CPU Profiler | | Optimization | | - LSTM TimeSeries| | Memory Profiler| | - Genetic Algo | | - Random Forest | | I/O Profiler | | - Constraint | | - Deep Q-Network | | Network Prof | +------------------+ +------------------+ +---------------+ | | | v v v +-----------------------------------------------------------+ | Circuit Breaker / Fault Tolerance | +-----------------------------------------------------------+
Core Capabilities
- Adaptive Resource Allocation
Dynamic allocation based on workload patterns:
// Workload pattern analysis const patterns = { temporal: { hourly: analyzeHourlyPatterns(), // Peak hours daily: analyzeDailyPatterns(), // Weekday vs weekend weekly: analyzeWeeklyPatterns(), // Week cycles seasonal: analyzeSeasonalPatterns() // Monthly/quarterly }, load: { baseline: calculateBaselineLoad(), // Normal load peaks: identifyPeakPatterns(), // Peak times valleys: identifyValleyPatterns(), // Low usage spikes: detectAnomalousSpikes() // Unusual bursts }, correlations: { cpu_memory: analyzeCPUMemoryCorrelation(), network_load: analyzeNetworkLoadCorrelation(), agent_resource: analyzeAgentResourceCorrelation() } };
- ML-Powered Predictive Scaling
Model Use Case Accuracy
LSTM Time Series Temporal patterns 85-95%
Random Forest Multi-feature regression 80-90%
Isolation Forest Anomaly detection 90%+
Deep Q-Network Scaling decisions Adaptive
// Predictive scaling workflow const prediction = await scaler.predictScaling(swarmId, { timeHorizon: 3600, // 1 hour ahead confidence: 0.95, // 95% confidence models: ['lstm', 'ensemble'] });
// Returns: // - predictions: Resource needs forecast // - scalingPlan: Recommended scaling actions // - confidence: Prediction confidence
- Multi-Objective Optimization
Genetic algorithm for resource optimization:
// Optimization objectives const objectives = [ { name: 'minimizeLatency', weight: 0.3 }, { name: 'maximizeUtilization', weight: 0.25 }, { name: 'balanceLoad', weight: 0.25 }, { name: 'minimizeCost', weight: 0.2 } ];
// Genetic algorithm configuration const geneticConfig = { populationSize: 100, generations: 200, mutationRate: 0.1, crossoverRate: 0.8 };
// Returns Pareto-optimal solutions
- Fault Tolerance Patterns
Circuit Breaker
const circuitBreaker = { failureThreshold: 5, // Open after 5 failures recoveryTimeout: 60000, // 60s before half-open successThreshold: 3, // Close after 3 successes
// Adaptive threshold adjustment adaptiveConfig: { enabled: true, windowSize: 1000, // Analyze last 1000 requests adjustmentRate: 0.1 // 10% threshold adjustment } };
Bulkhead Pattern
// Resource isolation pools const bulkheads = [ { name: 'critical', capacity: 10, queue: 50 }, { name: 'standard', capacity: 20, queue: 100 }, { name: 'background', capacity: 5, queue: 200 } ];
Performance Profiling
CPU Profiling
-
High-frequency sampling (10ms intervals)
-
Flame graph generation
-
Hotspot identification
-
Function-level statistics
Memory Profiling
-
Snapshot-based analysis (5s intervals)
-
Allocation/deallocation tracking
-
Memory leak detection
-
Growth pattern analysis
I/O Profiling
-
Disk I/O statistics
-
Network I/O metrics
-
Latency analysis
-
Bottleneck identification
MCP Integration
// Resource management integration const resourceIntegration = { // Dynamic allocation async allocateResources(swarmId, requirements) { const [usage, performance, bottlenecks] = await Promise.all([ mcp.metrics_collect({ components: ['cpu', 'memory', 'network', 'agents'] }), mcp.performance_report({ format: 'detailed' }), mcp.bottleneck_analyze({}) ]);
const allocation = this.calculateOptimalAllocation(
usage, performance, bottlenecks, requirements
);
return await mcp.daa_resource_alloc({
resources: allocation.resources,
agents: allocation.agents
});
},
// Predictive scaling async predictiveScale(swarmId, predictions) { const status = await mcp.swarm_status({ swarmId }); const plan = this.calculateScalingPlan(status, predictions);
if (plan.scaleRequired) {
await mcp.swarm_scale({ swarmId, targetSize: plan.targetSize });
await mcp.topology_optimize({ swarmId });
}
return plan;
} };
Commands Reference
Run performance optimization
npx claude-flow optimize-performance --swarm-id <id> --strategy adaptive
Generate resource forecasts
npx claude-flow forecast-resources --time-horizon 3600 --confidence 0.95
Profile system performance
npx claude-flow profile-performance --duration 60000 --components all
Analyze bottlenecks
npx claude-flow bottleneck-analyze --component swarm-coordination
Circuit breaker configuration
npx claude-flow fault-tolerance --strategy circuit-breaker --config <config>
Key Metrics
Resource Allocation KPIs
Category Metric Target
Efficiency Utilization rate
70%
Efficiency Waste percentage < 10%
Efficiency Allocation accuracy
90%
Performance Allocation latency < 100ms
Performance Scaling response time < 30s
Reliability Availability
99.9%
Reliability Recovery time < 30s
Profiling Output
// Profiling results structure const profilingResults = { cpu: { samples: [], // CPU samples hotspots: [], // Top CPU consumers flamegraph: {} // Visualization data }, memory: { snapshots: [], // Memory snapshots leaks: [], // Potential leaks growth: [] // Growth patterns }, recommendations: [ { type: 'optimization', target: 'cpu', suggestion: '...' } ] };
Reinforcement Learning for Scaling
// Deep Q-Network agent for scaling decisions const scalingAgent = { stateSize: 10, // Resource metrics actionSize: 5, // Scale up/down/none learningRate: 0.001, epsilon: 1.0, // Exploration rate epsilonDecay: 0.995, memorySize: 10000,
// Training loop learns optimal scaling policies async train(environment, episodes = 1000) { // Agent learns from experience // Maximizes resource efficiency while minimizing cost } };
Integration Points
Integration Purpose
Load Balancer Resource data for load decisions
Performance Monitor Performance metrics and bottlenecks
Topology Optimizer Coordinate with topology changes
Task Orchestrator Resource allocation for tasks
Best Practices
-
Predictive vs Reactive: Use prediction for expected patterns, reactive for anomalies
-
Gradual Scaling: Scale incrementally to avoid oscillation
-
Resource Limits: Set hard limits to prevent runaway allocation
-
Cost Awareness: Include cost in optimization objectives
-
Monitoring: Continuously monitor allocation effectiveness
-
Fallback Strategies: Always have fallback for prediction failures
Example: Adaptive Scaling
// Adaptive scaling configuration const adaptiveScaler = { config: { minAgents: 2, maxAgents: 50, scaleUpThreshold: 0.8, // 80% utilization scaleDownThreshold: 0.3, // 30% utilization cooldownPeriod: 300000, // 5 minutes predictionWeight: 0.7, // 70% prediction, 30% reactive },
async evaluate(swarmId) { const current = await this.getCurrentUtilization(swarmId); const predicted = await this.predictFutureLoad(swarmId);
const combined = current * 0.3 + predicted * 0.7;
if (combined > this.config.scaleUpThreshold) {
return { action: 'scale_up', reason: 'high_utilization' };
} else if (combined < this.config.scaleDownThreshold) {
return { action: 'scale_down', reason: 'low_utilization' };
}
return { action: 'none' };
} };
Related Skills
-
optimization-monitor
-
Real-time performance monitoring
-
optimization-load-balancer
-
Dynamic load distribution
-
optimization-topology
-
Network topology optimization
-
optimization-benchmark
-
Performance validation
Version History
- 1.0.0 (2026-01-02): Initial release - converted from resource-allocator agent with adaptive allocation, ML-powered scaling, fault tolerance patterns, and performance profiling