adaptive-memory-multi-model-router 2.14.44 → 2.14.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/adaptive-benchmark.json +92 -0
- package/data/benchmark-results.json +47 -0
- package/dist/benchmark/comprehensive.d.ts +56 -0
- package/dist/benchmark/comprehensive.js +390 -0
- package/dist/benchmark/comprehensive.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +8 -2
- package/dist/memory/hybridMemory.d.ts +71 -0
- package/dist/memory/hybridMemory.js +124 -0
- package/dist/memory/hybridMemory.js.map +1 -0
- package/dist/memory/memoryTree.d.ts +15 -2
- package/dist/memory/memoryTree.js +66 -7
- package/dist/memory/memoryTree.js.map +1 -1
- package/dist/memory/reasoningBank.d.ts +88 -0
- package/dist/memory/reasoningBank.js +303 -0
- package/dist/memory/reasoningBank.js.map +1 -0
- package/dist/providers/providerConfig.js +14 -2
- package/dist/providers/providerConfig.js.map +1 -1
- package/dist/routing/advancedRouter.js +190 -6
- package/dist/routing/advancedRouter.js.map +1 -1
- package/package.json +1 -1
- package/research-state.yaml +32 -0
- package/src/benchmark/comprehensive.ts +323 -0
- package/src/index.ts +8 -0
- package/src/memory/hybridMemory.ts +155 -0
- package/src/memory/memoryTree.ts +77 -7
- package/src/memory/reasoningBank.ts +335 -0
- package/src/providers/providerConfig.ts +14 -2
- package/src/routing/advancedRouter.ts +181 -6
- package/tsconfig.build.json +2 -1
|
@@ -32,14 +32,33 @@ function buildModelProfiles() {
|
|
|
32
32
|
for (const [providerId, provider] of Object.entries(available)) {
|
|
33
33
|
for (const model of provider.models) {
|
|
34
34
|
const modelKey = model.includes('/') ? model : providerId + '/' + model;
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
let costPerKInput = provider.costPerK ? provider.costPerK.input : 0;
|
|
36
|
+
let costPerKOutput = provider.costPerK ? provider.costPerK.output : 0;
|
|
37
|
+
// OpenRouter: per-model cost overrides for paid models
|
|
38
|
+
if (provider.name === 'OpenRouter') {
|
|
39
|
+
const orCosts = {
|
|
40
|
+
'openai/gpt-4o': [2.5, 10],
|
|
41
|
+
'anthropic/claude-3.5-sonnet': [3, 15],
|
|
42
|
+
'google/gemini-pro-1.5': [1.25, 5],
|
|
43
|
+
'meta-llama/llama-3.1-70b-instruct': [0.18, 0.18],
|
|
44
|
+
'mistralai/mistral-large': [2, 6],
|
|
45
|
+
};
|
|
46
|
+
const orKey = model.includes('/') ? model : 'openrouter/' + model;
|
|
47
|
+
// Try matching by full key or by model name
|
|
48
|
+
for (const [pattern, cost] of Object.entries(orCosts)) {
|
|
49
|
+
if (orKey.includes(pattern) || model.includes(pattern.split('/')[1] || pattern)) {
|
|
50
|
+
costPerKInput = cost[0];
|
|
51
|
+
costPerKOutput = cost[1];
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
37
56
|
// Assign strengths based on model characteristics
|
|
38
57
|
const strengths = [];
|
|
39
58
|
if (provider.type === 'cli') {
|
|
40
59
|
strengths.push('free', 'local');
|
|
41
60
|
}
|
|
42
|
-
if (costPerKInput < 0.3) {
|
|
61
|
+
if (costPerKInput < 0.3 && provider.name !== 'OpenRouter') {
|
|
43
62
|
strengths.push('budget', 'fast');
|
|
44
63
|
}
|
|
45
64
|
else if (costPerKInput > 2) {
|
|
@@ -48,6 +67,29 @@ function buildModelProfiles() {
|
|
|
48
67
|
if (provider.name === 'Mistral' || provider.name === 'Groq' || provider.name === 'Cerebras') {
|
|
49
68
|
strengths.push('fast', 'coding');
|
|
50
69
|
}
|
|
70
|
+
// OpenRouter premium free models get quality boosts
|
|
71
|
+
if (provider.name === 'OpenRouter') {
|
|
72
|
+
const modelLower = modelKey.toLowerCase();
|
|
73
|
+
// Premium-tier free models (large, high-context)
|
|
74
|
+
if (modelLower.includes('kimi') || modelLower.includes('qwen3-coder') ||
|
|
75
|
+
modelLower.includes('nemotron-3-ultra') || modelLower.includes('nemotron-3-super') ||
|
|
76
|
+
modelLower.includes('hermes-3') || modelLower.includes('gemma-4')) {
|
|
77
|
+
strengths.push('reasoning', 'long-context', 'premium');
|
|
78
|
+
}
|
|
79
|
+
// Mid-tier free models (good quality, smaller)
|
|
80
|
+
else if (modelLower.includes('gpt-oss') || modelLower.includes('qwen3-next') ||
|
|
81
|
+
modelLower.includes('gemma-4') || modelLower.includes('llama-3.3')) {
|
|
82
|
+
strengths.push('fast', 'reasoning');
|
|
83
|
+
}
|
|
84
|
+
// Budget free models
|
|
85
|
+
else {
|
|
86
|
+
strengths.push('fast');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Minimax gets a quality boost (capable model, cheap pricing)
|
|
90
|
+
if (provider.name === 'MiniMax') {
|
|
91
|
+
strengths.push('fast', 'reasoning');
|
|
92
|
+
}
|
|
51
93
|
if (provider.name === 'CommandCode') {
|
|
52
94
|
strengths.push('code-aware', 'context-rich');
|
|
53
95
|
}
|
|
@@ -352,6 +394,30 @@ function extractQueryFeatures(prompt) {
|
|
|
352
394
|
const isCreative = /write a story|write a poem|creative|imagination|artistic/i.test(lower) || isTranslation;
|
|
353
395
|
const isDevops = /docker|kubernetes|terraform|ansible|ci.cd|pipeline|sql|nosql|database|sqlserver|mysql|postgres|deploy|container|orchestrat/i.test(lower);
|
|
354
396
|
const isMultimodal = /image|video|audio|generate.*picture|generate.*image|transcribe|voice/i.test(lower);
|
|
397
|
+
// === ARCHITECTURAL COMPLEXITY SIGNALS ===
|
|
398
|
+
// Boost complexity for system design / architecture queries
|
|
399
|
+
// These indicate the query needs a capable model
|
|
400
|
+
const archPatterns = [
|
|
401
|
+
/architect\s+(a\s+)?(distributed|real-time|high-availability|fault-tolerant|scalable|multi-region|global)/i,
|
|
402
|
+
/design\s+(a\s+)?(distributed|real-time|high-availability|fault-tolerant|scalable|multi-region|global)\s+(system|architecture|platform|infrastructure)/i,
|
|
403
|
+
/design\s+a\s+system\s+that\s+handles/i,
|
|
404
|
+
/data\s+warehouse\s+architecture/i,
|
|
405
|
+
/security\s+architecture\s+for/i,
|
|
406
|
+
/multi-cloud\s+hybrid/i,
|
|
407
|
+
/disaster\s+recovery\s+strategy/i,
|
|
408
|
+
/zero-downtime\s+deployment/i,
|
|
409
|
+
/petabyte-scale/i,
|
|
410
|
+
/billion\s+events?/i,
|
|
411
|
+
/million\s+transactions?/i,
|
|
412
|
+
/sensor\s+fusion/i,
|
|
413
|
+
/autonomous\s+vehicle/i,
|
|
414
|
+
/fraud\s+detection\s+system/i,
|
|
415
|
+
/privacy-preserving\s+analytics/i,
|
|
416
|
+
/real-time\s+(anomaly|fraud|video)\s+detection/i,
|
|
417
|
+
];
|
|
418
|
+
const archMatches = archPatterns.filter(p => p.test(prompt)).length;
|
|
419
|
+
if (archMatches > 0)
|
|
420
|
+
complexity += 0.25 + (archMatches * 0.08);
|
|
355
421
|
// Cap at 1.0
|
|
356
422
|
complexity = Math.min(complexity, 1.0);
|
|
357
423
|
// === SIGNAL: Risk Profile (Game-Theoretic) ===
|
|
@@ -396,6 +462,70 @@ function extractQueryFeatures(prompt) {
|
|
|
396
462
|
}
|
|
397
463
|
function scoreModelFit(model, features) {
|
|
398
464
|
let score = model.quality_score * 0.6;
|
|
465
|
+
// === ADAPTIVE TIER DETECTION ===
|
|
466
|
+
// Uses cost percentiles computed from actually available providers.
|
|
467
|
+
// If user has only free models → everything is "free" tier.
|
|
468
|
+
// If user has free + groq + openai → quartiles split them naturally.
|
|
469
|
+
const modelCost = (model.cost_per_1k_input + model.cost_per_1k_output) / 2;
|
|
470
|
+
let tierFromModel;
|
|
471
|
+
if (model.strengths.includes('free') || modelCost === 0) {
|
|
472
|
+
tierFromModel = 'free';
|
|
473
|
+
}
|
|
474
|
+
else if (modelCost <= _costPercentiles.p25) {
|
|
475
|
+
tierFromModel = 'cheap';
|
|
476
|
+
}
|
|
477
|
+
else if (modelCost <= _costPercentiles.p75) {
|
|
478
|
+
tierFromModel = 'mid';
|
|
479
|
+
}
|
|
480
|
+
else {
|
|
481
|
+
tierFromModel = 'premium';
|
|
482
|
+
}
|
|
483
|
+
// === ADAPTIVE TIER SCORING ===
|
|
484
|
+
// Boost/penalty scales with how well the model's tier matches the query complexity
|
|
485
|
+
// Simple queries (0-0.3): strongly prefer free/cheap
|
|
486
|
+
// Medium queries (0.3-0.5): prefer cheap/mid
|
|
487
|
+
// Complex queries (0.5-0.65): prefer mid
|
|
488
|
+
// Very complex (0.65+): prefer premium/mid
|
|
489
|
+
if (features.complexity < 0.3) {
|
|
490
|
+
if (tierFromModel === 'free')
|
|
491
|
+
score += 0.20;
|
|
492
|
+
else if (tierFromModel === 'cheap')
|
|
493
|
+
score += 0.10;
|
|
494
|
+
else if (tierFromModel === 'mid')
|
|
495
|
+
score -= 0.05;
|
|
496
|
+
else if (tierFromModel === 'premium')
|
|
497
|
+
score -= 0.15;
|
|
498
|
+
}
|
|
499
|
+
else if (features.complexity < 0.5) {
|
|
500
|
+
if (tierFromModel === 'cheap')
|
|
501
|
+
score += 0.20;
|
|
502
|
+
else if (tierFromModel === 'free')
|
|
503
|
+
score += 0.10;
|
|
504
|
+
else if (tierFromModel === 'mid')
|
|
505
|
+
score += 0.05;
|
|
506
|
+
else if (tierFromModel === 'premium')
|
|
507
|
+
score -= 0.05;
|
|
508
|
+
}
|
|
509
|
+
else if (features.complexity <= 0.65) {
|
|
510
|
+
if (tierFromModel === 'mid')
|
|
511
|
+
score += 0.30;
|
|
512
|
+
else if (tierFromModel === 'cheap')
|
|
513
|
+
score += 0.10;
|
|
514
|
+
else if (tierFromModel === 'premium')
|
|
515
|
+
score += 0.10;
|
|
516
|
+
else if (tierFromModel === 'free')
|
|
517
|
+
score -= 0.20;
|
|
518
|
+
}
|
|
519
|
+
else {
|
|
520
|
+
if (tierFromModel === 'premium')
|
|
521
|
+
score += 0.35;
|
|
522
|
+
else if (tierFromModel === 'mid')
|
|
523
|
+
score += 0.15;
|
|
524
|
+
else if (tierFromModel === 'cheap')
|
|
525
|
+
score -= 0.15;
|
|
526
|
+
else if (tierFromModel === 'free')
|
|
527
|
+
score -= 0.30;
|
|
528
|
+
}
|
|
399
529
|
// Domain match (reduced for budget models)
|
|
400
530
|
// Premium models get +0.2 for domain match
|
|
401
531
|
// Budget/free models get only +0.05 (they lack capability for complex domains)
|
|
@@ -478,9 +608,22 @@ function costEfficiency(model, features) {
|
|
|
478
608
|
const weight = features.complexity < 0.5 ? 0.6 : features.complexity < 0.65 ? 0.3 : 0.15;
|
|
479
609
|
return cost_score * weight;
|
|
480
610
|
}
|
|
611
|
+
// Cost percentile cache for adaptive tier detection (updated on each routeQuery call)
|
|
612
|
+
let _costPercentiles = { p25: 0, p50: 0.5, p75: 1.0 };
|
|
613
|
+
// ============================================================
|
|
614
|
+
// ADAPTIVE SCORING CORE
|
|
615
|
+
// ============================================================
|
|
481
616
|
function routeQuery(prompt, available_models, budget_multiplier = 1.0) {
|
|
482
617
|
// Use cached profiles instead of rebuilding every time (5-10ms savings)
|
|
483
618
|
const profiles = getModelProfiles();
|
|
619
|
+
// === ADAPTIVE: Compute cost percentiles from available providers ===
|
|
620
|
+
// This makes tier detection dynamic based on what the user has configured
|
|
621
|
+
const allCosts = Object.values(profiles).map(p => (p.cost_per_1k_input + p.cost_per_1k_output) / 2).sort((a, b) => a - b);
|
|
622
|
+
_costPercentiles = {
|
|
623
|
+
p25: allCosts[Math.floor(allCosts.length * 0.25)] || 0,
|
|
624
|
+
p50: allCosts[Math.floor(allCosts.length * 0.50)] || 0.5,
|
|
625
|
+
p75: allCosts[Math.floor(allCosts.length * 0.75)] || 1.0,
|
|
626
|
+
};
|
|
484
627
|
const features = extractQueryFeatures(prompt);
|
|
485
628
|
const candidate_names = available_models || Object.keys(profiles);
|
|
486
629
|
// Filter to available models
|
|
@@ -508,10 +651,51 @@ function routeQuery(prompt, available_models, budget_multiplier = 1.0) {
|
|
|
508
651
|
estimated_latency_ms: 0,
|
|
509
652
|
};
|
|
510
653
|
}
|
|
511
|
-
//
|
|
512
|
-
|
|
654
|
+
// === ADAPTIVE SCORING: Dynamic tier boundaries based on available providers ===
|
|
655
|
+
// Instead of fixed complexity thresholds, we analyze the actual provider landscape
|
|
656
|
+
// and adjust scoring to make the best use of what's available.
|
|
657
|
+
// Gather provider statistics for adaptive scoring
|
|
658
|
+
const allProfiles = Object.values(profiles);
|
|
659
|
+
const freeModels = allProfiles.filter(p => (p.cost_per_1k_input + p.cost_per_1k_output) === 0);
|
|
660
|
+
const paidModels = allProfiles.filter(p => (p.cost_per_1k_input + p.cost_per_1k_output) > 0);
|
|
661
|
+
const maxQuality = Math.max(...allProfiles.map(p => p.quality_score), 0.95);
|
|
662
|
+
const minQuality = Math.min(...allProfiles.map(p => p.quality_score), 0.72);
|
|
663
|
+
const qualityRange = maxQuality - minQuality;
|
|
664
|
+
// Calculate the "value gap" — how much better paid models are than free ones
|
|
665
|
+
const avgFreeQuality = freeModels.length > 0
|
|
666
|
+
? freeModels.reduce((s, p) => s + p.quality_score, 0) / freeModels.length
|
|
667
|
+
: 0.72;
|
|
668
|
+
const avgPaidQuality = paidModels.length > 0
|
|
669
|
+
? paidModels.reduce((s, p) => s + p.quality_score, 0) / paidModels.length
|
|
670
|
+
: 0.85;
|
|
671
|
+
const qualityGap = avgPaidQuality - avgFreeQuality;
|
|
672
|
+
// Adaptive complexity bias:
|
|
673
|
+
// - If quality gap is large (paid models are much better), weight quality more
|
|
674
|
+
// - If quality gap is small (free models are good enough), weight cost more
|
|
675
|
+
// - Scale by complexity: complex queries need quality, simple queries need cost savings
|
|
676
|
+
const baseComplexityBias = features.complexity < 0.3 ? 0.3
|
|
677
|
+
: features.complexity <= 0.5 ? 0.5
|
|
678
|
+
: features.complexity <= 0.65 ? 0.7
|
|
679
|
+
: 0.85;
|
|
680
|
+
// Adjust bias based on quality gap: bigger gap → more weight on quality
|
|
681
|
+
const gapAdjustment = Math.min(qualityGap * 0.5, 0.15); // max 0.15 adjustment
|
|
682
|
+
const complexity_bias = Math.min(baseComplexityBias + gapAdjustment, 0.9);
|
|
683
|
+
const cost_bias = 1 - complexity_bias;
|
|
684
|
+
// Adaptive quality floor: scale with complexity and available quality
|
|
685
|
+
// For complex queries, require at least avgPaidQuality if paid models exist
|
|
686
|
+
const adaptiveQualityFloor = features.complexity > 0.5
|
|
687
|
+
? Math.max(avgPaidQuality - 0.1, 0.75)
|
|
688
|
+
: 0;
|
|
513
689
|
const scoreFn = (c) => c.quality_score * complexity_bias + c.cost_score * (1 - complexity_bias);
|
|
514
|
-
|
|
690
|
+
let topCandidates = (0, sorting_1.quickselectTopK)(candidates, 4, scoreFn);
|
|
691
|
+
// Adaptive quality floor: for complex queries, prefer models above the floor
|
|
692
|
+
if (adaptiveQualityFloor > 0) {
|
|
693
|
+
const qualified = topCandidates.filter(c => c.quality_score >= adaptiveQualityFloor);
|
|
694
|
+
if (qualified.length > 0) {
|
|
695
|
+
topCandidates = qualified;
|
|
696
|
+
}
|
|
697
|
+
// If no model meets the floor, keep original topCandidates (graceful degradation)
|
|
698
|
+
}
|
|
515
699
|
const primary = topCandidates[0];
|
|
516
700
|
const secondary = topCandidates.slice(1, 3);
|
|
517
701
|
// Calculate confidence based on score gap
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advancedRouter.js","sourceRoot":"","sources":["../../src/routing/advancedRouter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"advancedRouter.js","sourceRoot":"","sources":["../../src/routing/advancedRouter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adaptive-memory-multi-model-router",
|
|
3
|
-
"version": "2.14.
|
|
3
|
+
"version": "2.14.46",
|
|
4
4
|
"shortName": "A3M Router",
|
|
5
5
|
"displayName": "A3M Router - Adaptive Memory Multi-Model Router",
|
|
6
6
|
"description": "🥇 Cheapest LLM router on RouterArena ($0.05/1K) · 15K+ downloads in 2 weeks · Open-source AI gateway with parallel multi-LLM execution across 47+ providers, ensemble voting, semantic cache, and budget enforcement",
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Research State: Fix Routing Accuracy & Memory Search
|
|
2
|
+
|
|
3
|
+
## Hypothesis H1: Routing accuracy can be fixed by adjusting complexity_bias and quality_score weights
|
|
4
|
+
|
|
5
|
+
**Current state**: 25.9% exact tier accuracy (21/81)
|
|
6
|
+
**Target**: 70%+ exact tier accuracy
|
|
7
|
+
**Root cause**: Free models (ollama, commandcode) have cost_score=1.0 which overwhelms quality_score even for complex queries
|
|
8
|
+
|
|
9
|
+
**Experiment plan**:
|
|
10
|
+
1. Increase complexity_bias from 0.3 to 0.6 for mid-tier queries (complexity > 0.5)
|
|
11
|
+
2. Add a quality floor: for complexity > 0.5, minimum quality_score threshold
|
|
12
|
+
3. Test with 81 labeled queries
|
|
13
|
+
4. Iterate until accuracy > 60%
|
|
14
|
+
|
|
15
|
+
## Hypothesis H2: Memory search can be improved with TF-IDF scoring + fuzzy matching
|
|
16
|
+
|
|
17
|
+
**Current state**: 50% memory test pass (basic store/recall works, multi-item search fails)
|
|
18
|
+
**Target**: 100% memory test pass
|
|
19
|
+
**Root cause**: MemoryTree.search() only does exact substring match on chunk.content. When text is chunked, individual chunks don't contain the original search terms.
|
|
20
|
+
|
|
21
|
+
**Experiment plan**:
|
|
22
|
+
1. Add TF-IDF based scoring to MemoryTree.search()
|
|
23
|
+
2. Add fuzzy matching (Levenshtein distance) for partial matches
|
|
24
|
+
3. Add tag-based boosting
|
|
25
|
+
4. Return top-K results ranked by relevance score
|
|
26
|
+
5. Test with the 4 memory benchmark tests
|
|
27
|
+
|
|
28
|
+
## Success Criteria
|
|
29
|
+
- Routing accuracy: > 60% exact tier match
|
|
30
|
+
- Memory tests: 4/4 pass (100%)
|
|
31
|
+
- All existing unit tests still pass (28/28)
|
|
32
|
+
- npm build succeeds
|