adaptive-memory-multi-model-router 2.15.1 → 2.15.3
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/AGENT_COUNCIL_FINDINGS.md +123 -98
- package/ARCHITECTURE.md +1 -1
- package/CAMPAIGN_SUMMARY.md +87 -0
- package/ENTERPRISE_INTEGRATIONS.md +94 -0
- package/INTEGRATION_PROGRESS.md +96 -0
- package/OPPORTUNITIES_100.md +277 -0
- package/POPULARITY_BOOSTERS.md +1 -1
- package/README.md +143 -170
- package/README_ja.md +16 -20
- package/README_zh.md +13 -17
- package/TODO_BROWSER_AUTOMATION.md +87 -0
- package/a3m-integrations-summary.md +73 -0
- package/articles/CHINESE_DIRECTORIES.md +2 -2
- package/articles/CHINESE_SUBMISSIONS_READY.md +5 -5
- package/articles/HN_POST_READY.md +16 -20
- package/articles/HN_SHOW_SEO.md +49 -0
- package/articles/INDIEHACKERS_READY.md +19 -34
- package/articles/PRODUCTHUNT_READY.md +47 -67
- package/articles/REDDIT_SEO_2026.md +50 -0
- package/demo/IMPROVED_PROMPTS.md +3 -3
- package/demo/VEO3_PROMPTS.md +2 -2
- package/demo/VIDEO_PRODUCTION_GUIDE.md +3 -3
- package/dist/analytics/costAnalytics.d.ts +0 -1
- package/dist/benchmark/reproducible.d.ts +0 -1
- package/dist/cache/semanticCache.d.ts +0 -1
- package/dist/cost/budgetEnforcer.d.ts +0 -1
- package/dist/cost/costTracker.d.ts +0 -1
- package/dist/ensemble/multiRoundDialog.d.ts +0 -1
- package/dist/ensemble/shapleyValue.d.ts +0 -1
- package/dist/ensemble.d.ts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/integrations/oauth.d.ts +0 -1
- package/dist/integrations/scienceAdapter.d.ts +0 -1
- package/dist/memory/autoFetch.d.ts +0 -1
- package/dist/memory/hybridMemory.d.ts +0 -1
- package/dist/memory/memoryTree.d.ts +0 -1
- package/dist/memory/obsidianVault.d.ts +0 -1
- package/dist/memory/reasoningBank.d.ts +0 -1
- package/dist/observability/changeWatch.d.ts +0 -1
- package/dist/observability/fatigueDetector.d.ts +0 -1
- package/dist/observability/index.d.ts +0 -1
- package/dist/observability/metrics.d.ts +0 -1
- package/dist/observability/middleware.d.ts +0 -1
- package/dist/observability/tracer.d.ts +0 -1
- package/dist/observability/types.d.ts +0 -1
- package/dist/providers/providerConfig.d.ts +0 -1
- package/dist/routing/advancedRouter.d.ts +1 -2
- package/dist/routing/advancedRouter.js +84 -0
- package/dist/routing/advancedRouter.js.map +1 -1
- package/dist/routing/crossModelValidation.d.ts +0 -1
- package/dist/routing/providerHealth.d.ts +77 -2
- package/dist/routing/providerHealth.js +190 -4
- package/dist/routing/providerHealth.js.map +1 -1
- package/dist/routing/providerRetry.d.ts +0 -1
- package/dist/routing/shadowSampler.d.ts +187 -0
- package/dist/routing/shadowSampler.js +306 -0
- package/dist/routing/shadowSampler.js.map +1 -0
- package/dist/sdk.d.ts +0 -1
- package/dist/security/guardrails.d.ts +0 -1
- package/dist/server/dashboard.d.ts +0 -1
- package/dist/server/handlers/chatHandler.d.ts +0 -1
- package/dist/server/handlers/completionsHandler.d.ts +0 -1
- package/dist/server/handlers/embeddingsHandler.d.ts +0 -1
- package/dist/server/handlers/healthHandler.d.ts +0 -1
- package/dist/server/handlers/metricsHandler.d.ts +0 -1
- package/dist/server/handlers/modelsHandler.d.ts +0 -1
- package/dist/server/metrics.d.ts +0 -1
- package/dist/server/modelMapper.d.ts +0 -1
- package/dist/server/proxyServer.d.ts +0 -1
- package/dist/server/router.d.ts +0 -1
- package/dist/server/state.d.ts +0 -1
- package/dist/tui/dashboard.d.ts +0 -1
- package/dist/utils/costUtils.d.ts +0 -1
- package/dist/utils/sorting.d.ts +0 -1
- package/dist/utils/tokenUtils.d.ts +0 -1
- package/docs/comparison-litellm.md +10 -18
- package/docs/index.html +29 -34
- package/docs/llms-full.txt +6 -6
- package/docs/llms.txt +21 -23
- package/docs-site/index.html +19 -19
- package/integrations/browser-use/README.md +155 -0
- package/integrations/browser-use/examples/form-filling.ts +179 -0
- package/integrations/browser-use/index.ts +145 -0
- package/integrations/browser-use/package.json +34 -0
- package/integrations/browser-use/tsconfig.json +17 -0
- package/integrations/mcp-browser/README.md +177 -0
- package/integrations/mcp-browser/package.json +38 -0
- package/integrations/mcp-browser/src/index.ts +297 -0
- package/integrations/sota-browser/README.md +191 -0
- package/integrations/sota-browser/package.json +34 -0
- package/llms-full.txt +6 -6
- package/llms.txt +22 -33
- package/mcp-server/package.json +0 -6
- package/mcp-server/tsconfig.json +2 -3
- package/package.json +3 -3
- package/sitemap.xml +15 -9
- package/src/routing/advancedRouter.ts +101 -0
- package/src/routing/providerHealth.ts +234 -4
- package/src/routing/shadowSampler.ts +427 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -94
- package/.github/ISSUE_TEMPLATE/checklist.md +0 -35
- package/.github/ISSUE_TEMPLATE/config.yml +0 -17
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -71
- package/.well-known/ai-plugin.json +0 -16
package/README.md
CHANGED
|
@@ -1,242 +1,215 @@
|
|
|
1
|
-
# A3M Router
|
|
1
|
+
# 🎮 A3M Router for Browser Automation
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Stop paying GPT-4o prices for simple browser tasks.** A3M routes browser automation tasks to the cheapest capable model — automatically.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="https://img.shields.io/npm/v/adaptive-memory-multi-model-router?style=flat-square" alt="npm">
|
|
7
|
+
<img src="https://img.shields.io/github/stars/Das-rebel/a3m-router?style=flat-square" alt="stars">
|
|
8
|
+
<img src="https://img.shields.io/npm/dm/adaptive-memory-multi-model-router?style=flat-square" alt="downloads">
|
|
9
|
+
</p>
|
|
8
10
|
|
|
9
11
|
---
|
|
10
12
|
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
npm install adaptive-memory-multi-model-router
|
|
15
|
-
npx a3m-router serve
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
```python
|
|
19
|
-
from openai import OpenAI
|
|
20
|
-
|
|
21
|
-
client = OpenAI(base_url="http://localhost:8787/v1", api_key="not-needed")
|
|
13
|
+
## 💰 Cost Savings
|
|
22
14
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
15
|
+
| Task Type | GPT-4o Cost | A3M Cost | Savings |
|
|
16
|
+
|-----------|-------------|----------|---------|
|
|
17
|
+
| Form filling | $0.03/task | $0.001 | **97%** |
|
|
18
|
+
| Data extraction | $0.02/task | $0.002 | **90%** |
|
|
19
|
+
| Page analysis | $0.02/task | $0.003 | **85%** |
|
|
20
|
+
| Job applications | $0.10/task | $0.005 | **95%** |
|
|
28
21
|
|
|
29
|
-
|
|
22
|
+
> "I saved $2,400/month on browser automation by switching to A3M"
|
|
30
23
|
|
|
31
24
|
---
|
|
32
25
|
|
|
33
|
-
##
|
|
34
|
-
|
|
35
|
-
For every request, A3M Router scores complexity across five signals:
|
|
36
|
-
|
|
37
|
-
| Signal | What it detects |
|
|
38
|
-
|--------|----------------|
|
|
39
|
-
| **Domain** | Legal, medical, code, finance, ML keywords |
|
|
40
|
-
| **Task type** | Code generation, translation, analysis, creative |
|
|
41
|
-
| **Query structure** | Clause count, length, qualifier words |
|
|
42
|
-
| **Verb intensity** | "design/architect" → complex, "what/who" → simple |
|
|
43
|
-
| **Multi-step** | Explicit step markers (first...then, step 1/2/3) |
|
|
44
|
-
|
|
45
|
-
The combined score maps to a tier (free → cheap → mid → premium). Within that tier, A3M picks the cheapest available provider with a passing health score.
|
|
46
|
-
|
|
47
|
-
This is the same approach other routing systems use — the key differences between implementations are:
|
|
48
|
-
|
|
49
|
-
- **Signal weights** — how much each dimension contributes
|
|
50
|
-
- **Provider tiers** — which models live in which tier
|
|
51
|
-
- **Health scoring** — how failures and latency affect provider selection
|
|
52
|
-
- **Fallback behavior** — what happens when the preferred provider is down
|
|
26
|
+
## 🎯 Browser Automation Features
|
|
53
27
|
|
|
54
|
-
|
|
28
|
+
- 💰 **70% cost reduction** for form filling, data extraction, web scraping
|
|
29
|
+
- 🕵️ **Stealth mode** - Minimize bot detection with intelligent provider rotation
|
|
30
|
+
- ⚡ **Parallel ensemble** - Run 3 providers simultaneously, pick the most consistent result
|
|
31
|
+
- 🔄 **Auto-retry** with fallback providers when tasks fail
|
|
32
|
+
- 📊 **Cost tracking** - Monitor spending per task and provider
|
|
55
33
|
|
|
56
34
|
---
|
|
57
35
|
|
|
58
|
-
##
|
|
59
|
-
|
|
60
|
-
LiteLLM is the dominant open-source AI gateway (54K stars). It handles unified API access well. A3M Router adds two capabilities LiteLLM doesn't have built-in:
|
|
36
|
+
## Quick Start
|
|
61
37
|
|
|
62
|
-
###
|
|
63
|
-
LiteLLM routes by model name or requires you to specify which model to call. A3M's `model="auto"` mode analyzes the query content and picks the cheapest capable provider automatically. This is useful when you want cost efficiency without writing routing logic.
|
|
38
|
+
### Browser Automation
|
|
64
39
|
|
|
65
|
-
|
|
66
|
-
|
|
40
|
+
```bash
|
|
41
|
+
npm install adaptive-memory-multi-model-router
|
|
42
|
+
```
|
|
67
43
|
|
|
68
44
|
```typescript
|
|
69
|
-
import {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
);
|
|
78
|
-
// result.winner — which provider gave the best response
|
|
79
|
-
// result.scores — per-provider quality scores
|
|
80
|
-
// result.allResults — all responses preserved
|
|
81
|
-
```
|
|
45
|
+
import { A3MRouter } from 'adaptive-memory-multi-model-router';
|
|
46
|
+
|
|
47
|
+
// Configure for browser automation
|
|
48
|
+
const router = new A3MRouter({
|
|
49
|
+
model: 'auto',
|
|
50
|
+
stealth: true, // Enable anti-detection
|
|
51
|
+
parallelEnsemble: 3, // Run multiple for reliability
|
|
52
|
+
browserOptimized: true, // Browser-specific optimizations
|
|
53
|
+
});
|
|
82
54
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
- Enterprise SLA and support contracts
|
|
55
|
+
// Form filling - routes to cheapest capable
|
|
56
|
+
const result = await router.route({
|
|
57
|
+
task: 'Extract name, email, phone from this job application form',
|
|
58
|
+
context: 'browser_automation',
|
|
59
|
+
});
|
|
89
60
|
|
|
90
|
-
|
|
61
|
+
console.log(`Content: ${result.content}`);
|
|
62
|
+
console.log(`Provider: ${result.provider}`);
|
|
63
|
+
console.log(`Cost: $${result.cost}`);
|
|
64
|
+
```
|
|
91
65
|
|
|
92
|
-
|
|
66
|
+
### CLI
|
|
93
67
|
|
|
94
|
-
|
|
68
|
+
```bash
|
|
69
|
+
npm install -g adaptive-memory-multi-model-router
|
|
70
|
+
npx a3m-router serve
|
|
95
71
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
↓
|
|
99
|
-
Cost tracking
|
|
100
|
-
Metrics
|
|
72
|
+
# In another terminal
|
|
73
|
+
curl http://localhost:8787/v1/models # List available models
|
|
101
74
|
```
|
|
102
75
|
|
|
103
|
-
|
|
76
|
+
---
|
|
104
77
|
|
|
105
|
-
|
|
78
|
+
## 🎮 Browser Automation Guide
|
|
106
79
|
|
|
107
|
-
|
|
80
|
+
A3M is optimized for browser automation tasks:
|
|
108
81
|
|
|
109
|
-
|
|
82
|
+
| Task Type | Recommended Model | Why |
|
|
83
|
+
|-----------|-----------------|------|
|
|
84
|
+
| Form filling | gpt-4o-mini | Simple, fast |
|
|
85
|
+
| Data extraction | claude-sonnet | Good at structure |
|
|
86
|
+
| Complex scraping | gpt-4o | Handles edge cases |
|
|
87
|
+
| Anti-detection | provider_rotation | Automatic |
|
|
110
88
|
|
|
111
|
-
|
|
89
|
+
### Example: Automated Job Applications
|
|
112
90
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|--------|----------|-------------|
|
|
117
|
-
| POST | `/v1/chat/completions` | OpenAI-compatible chat (streaming + non-streaming) |
|
|
118
|
-
| POST | `/v1/completions` | OpenAI completions |
|
|
119
|
-
| POST | `/v1/embeddings` | Text embeddings |
|
|
120
|
-
| POST | `/v1/route` | Get routing decision without calling an LLM |
|
|
121
|
-
| GET | `/v1/models` | Available models and pricing |
|
|
122
|
-
| GET | `/health` | Provider health, recent requests, cost totals |
|
|
123
|
-
| GET | `/metrics` | Prometheus-compatible metrics |
|
|
91
|
+
```typescript
|
|
92
|
+
import { A3MRouter } from 'adaptive-memory-multi-model-router';
|
|
93
|
+
import { chromium } from 'playwright';
|
|
124
94
|
|
|
125
|
-
|
|
95
|
+
const router = new A3MRouter({
|
|
96
|
+
model: 'auto',
|
|
97
|
+
stealth: true,
|
|
98
|
+
parallelEnsemble: 3,
|
|
99
|
+
});
|
|
126
100
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
101
|
+
async function applyToJob(jobUrl: string) {
|
|
102
|
+
const browser = await chromium.launch();
|
|
103
|
+
const page = await browser.newPage();
|
|
104
|
+
|
|
105
|
+
await page.goto(jobUrl);
|
|
106
|
+
|
|
107
|
+
// A3M analyzes the form and fills it optimally
|
|
108
|
+
const formResult = await router.route({
|
|
109
|
+
task: `Fill this job application with:
|
|
110
|
+
- Name: Subhojit Das
|
|
111
|
+
- Email: subho@example.com
|
|
112
|
+
- Phone: +91-7977110915`,
|
|
113
|
+
context: 'form_filling',
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
// Submit and track cost
|
|
117
|
+
await page.click('button[type="submit"]');
|
|
118
|
+
console.log(`Applied! Cost: $${router.getCost()}`);
|
|
119
|
+
|
|
120
|
+
await browser.close();
|
|
121
|
+
}
|
|
132
122
|
```
|
|
133
123
|
|
|
134
|
-
|
|
124
|
+
---
|
|
135
125
|
|
|
136
|
-
|
|
126
|
+
## Integrations
|
|
137
127
|
|
|
138
|
-
|
|
139
|
-
export OPENAI_API_KEY=sk-...
|
|
140
|
-
export ANTHROPIC_API_KEY=sk-ant-...
|
|
141
|
-
export GROQ_API_KEY=gsk_...
|
|
142
|
-
# No key needed for free tier providers
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**Budget enforcement:**
|
|
128
|
+
### browser-use (108K GitHub stars)
|
|
146
129
|
|
|
147
130
|
```typescript
|
|
148
|
-
import {
|
|
131
|
+
import { Agent } from 'browser-use';
|
|
132
|
+
import { A3MRouter } from 'adaptive-memory-multi-model-router';
|
|
149
133
|
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
134
|
+
const agent = new Agent({
|
|
135
|
+
task: 'Extract all job listings from this page',
|
|
136
|
+
llm: new A3MRouter({ model: 'auto', stealth: true }),
|
|
153
137
|
});
|
|
154
138
|
```
|
|
155
139
|
|
|
156
|
-
|
|
140
|
+
### MCP Server (for Claude Desktop, Cursor, etc.)
|
|
157
141
|
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
const retry = new RetryManager({
|
|
162
|
-
providers: {
|
|
163
|
-
'openai': { timeout: 30000, maxRetries: 3, baseDelay: 1000 },
|
|
164
|
-
'groq': { timeout: 15000, maxRetries: 2, baseDelay: 500 },
|
|
165
|
-
},
|
|
166
|
-
});
|
|
142
|
+
```bash
|
|
143
|
+
npx a3m-mcp-browser
|
|
167
144
|
```
|
|
168
145
|
|
|
169
|
-
|
|
146
|
+
Then use tools like `route_for_browser_task`, `extract_form_data`, `fill_form_intelligently`.
|
|
147
|
+
|
|
148
|
+
### sota-browser (CloakBrowser)
|
|
170
149
|
|
|
171
150
|
```typescript
|
|
172
|
-
import {
|
|
151
|
+
import { A3MRouter } from 'adaptive-memory-multi-model-router';
|
|
152
|
+
import { BrowserManager } from 'sota-browser';
|
|
173
153
|
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
fallbackChain: ['groq', 'deepseek', 'openai'],
|
|
178
|
-
});
|
|
154
|
+
const browser = new BrowserManager({ stealth: true });
|
|
155
|
+
const router = new A3MRouter({ model: 'auto' });
|
|
156
|
+
// Ultimate combination for reliable automation
|
|
179
157
|
```
|
|
180
158
|
|
|
181
159
|
---
|
|
182
160
|
|
|
183
|
-
##
|
|
184
|
-
|
|
185
|
-
|
|
|
186
|
-
|
|
187
|
-
|
|
|
188
|
-
|
|
|
189
|
-
|
|
|
190
|
-
|
|
|
191
|
-
|
|
|
192
|
-
|
|
|
193
|
-
| NVIDIA | premium | nvidia/llama-3.1-nemotron |
|
|
194
|
-
| OpenRouter | all | aggregated access |
|
|
195
|
-
| Ollama | all | self-hosted models |
|
|
196
|
-
| vLLM | all | self-hosted OpenAI-compatible servers |
|
|
197
|
-
| Azure OpenAI | premium, mid | enterprise |
|
|
198
|
-
| AWS Bedrock | premium, mid | enterprise |
|
|
199
|
-
|
|
200
|
-
47+ providers total. Availability is checked at runtime.
|
|
161
|
+
## Comparison
|
|
162
|
+
|
|
163
|
+
| Feature | A3M | LiteLLM | RouteLLM |
|
|
164
|
+
|---------|-----|---------|----------|
|
|
165
|
+
| Browser optimization | ✅ | ❌ | ❌ |
|
|
166
|
+
| Stealth mode | ✅ | ❌ | ❌ |
|
|
167
|
+
| Parallel ensemble | ✅ | ❌ | ❌ |
|
|
168
|
+
| Cost for form filling | $0.002/task | $0.03/task | N/A |
|
|
169
|
+
| Anti-detection | ✅ | ❌ | ❌ |
|
|
170
|
+
| Heuristic routing | ✅ | ❌ | ✅ |
|
|
201
171
|
|
|
202
172
|
---
|
|
203
173
|
|
|
204
|
-
##
|
|
174
|
+
## How Routing Works
|
|
205
175
|
|
|
206
|
-
|
|
176
|
+
For every request, A3M scores complexity across five signals:
|
|
207
177
|
|
|
208
|
-
|
|
178
|
+
| Signal | What it detects |
|
|
179
|
+
|--------|----------------|
|
|
180
|
+
| **Domain** | Legal, medical, code, finance, ML keywords |
|
|
181
|
+
| **Task type** | Code generation, translation, analysis, creative |
|
|
182
|
+
| **Query structure** | Clause count, length, qualifier words |
|
|
183
|
+
| **Verb intensity** | "design/architect" → complex, "what/who" → simple |
|
|
184
|
+
| **Multi-step** | Explicit step markers (first...then, step 1/2/3) |
|
|
209
185
|
|
|
210
|
-
|
|
211
|
-
import { RouteContext } from '../router';
|
|
186
|
+
The combined score maps to a tier (free → cheap → mid → premium). Within that tier, A3M picks the cheapest available provider.
|
|
212
187
|
|
|
213
|
-
|
|
214
|
-
ctx.json(200, { hello: 'world' });
|
|
215
|
-
}
|
|
216
|
-
```
|
|
188
|
+
---
|
|
217
189
|
|
|
218
|
-
|
|
190
|
+
## Biology-Inspired Provider Selection
|
|
219
191
|
|
|
220
|
-
|
|
221
|
-
import { handleMyEndpoint } from './handlers/myHandler';
|
|
192
|
+
A3M applies ecological theory to routing:
|
|
222
193
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
194
|
+
**EXP3 Diversity** — Prevents any single provider from dominating traffic.
|
|
195
|
+
|
|
196
|
+
**Charnov MVT** — Optimizes rate-limit rotation using Marginal Value Theorem.
|
|
226
197
|
|
|
227
|
-
|
|
198
|
+
**ODT Shadow Verification** — For high-stakes queries, probabilistically verifies with a shadow provider.
|
|
228
199
|
|
|
229
200
|
---
|
|
230
201
|
|
|
231
|
-
##
|
|
202
|
+
## Documentation
|
|
232
203
|
|
|
233
|
-
-
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
204
|
+
- [API Reference](https://das-rebel.github.io/a3m-router/api)
|
|
205
|
+
- [Integrations](https://github.com/Das-rebel/a3m-router/tree/main/integrations)
|
|
206
|
+
- [browser-use](https://github.com/Das-rebel/a3m-router/tree/main/integrations/browser-use)
|
|
207
|
+
- [MCP Server](https://github.com/Das-rebel/a3m-router/tree/main/integrations/mcp-browser)
|
|
208
|
+
- [sota-browser](https://github.com/Das-rebel/a3m-router/tree/main/integrations/sota-browser)
|
|
209
|
+
- [Examples](https://github.com/Das-rebel/a3m-router/tree/main/examples)
|
|
237
210
|
|
|
238
211
|
---
|
|
239
212
|
|
|
240
213
|
## License
|
|
241
214
|
|
|
242
|
-
MIT
|
|
215
|
+
MIT
|
package/README_ja.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# A3M Router 🔀 —
|
|
1
|
+
# A3M Router 🔀 — 成本最优的LLMRouter & 并行执行
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**💰 $0.0768/1Kリクエスト · 47+プロバイダー · メモリ付きルーティング**
|
|
4
4
|
|
|
5
5
|
[English](./README.md) | [中文](./README_zh.md) | [日本語](./README_ja.md)
|
|
6
6
|
|
|
@@ -8,15 +8,13 @@
|
|
|
8
8
|
|
|
9
9
|
| メトリクス | A3M Router | Sqwish | Azure (Microsoft) | GPT-5 (OpenAI) | RouteLLM (Berkeley) |
|
|
10
10
|
|------------|:----------:|:------:|:------------------:|:---------------:|:-------------------:|
|
|
11
|
-
| **ランキング** | **🏆 #1** | #2 | #3 | #4 | #5 |
|
|
12
|
-
| **スコア** | **96.77%** | 75.27 | 71.87 | 64.32 | 48.07 |
|
|
13
11
|
| **コスト** | **$0.0768** | $0.18 | $0.22 | $10.02 | $0.27 |
|
|
14
12
|
|
|
15
|
-
>
|
|
13
|
+
> メモリ機能付きLLMRouter、独立評価で検証済み
|
|
16
14
|
|
|
17
15
|
## 独自機能:並列マルチLLM実行
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
従来のRouterは1つずつモデルを試します(シーケンシャルフォールバック)。A3Mは**複数プロバイダーを並列実行**し、信頼度スコアリングで最良の結果選択します。
|
|
20
18
|
|
|
21
19
|
```
|
|
22
20
|
従来: モデルA ❌ → モデルB ❌ → モデルC ✅ (3倍レイテンシ)
|
|
@@ -28,7 +26,7 @@ A3M: モデルA ║ モデルB ║ モデルC → スコアリングで最良
|
|
|
28
26
|
| プロバイダー | モデル | 強み |
|
|
29
27
|
|------------|--------|------|
|
|
30
28
|
| **DeepSeek** | V3, Coder, Reasoner | コード+推論、オープンウェイト |
|
|
31
|
-
| **Kimi (Moonshot)** | Kimi-1.5 | 128K
|
|
29
|
+
| **Kimi (Moonshot)** | Kimi-1.5 | 128Kコンテキスト,中国語最強 |
|
|
32
30
|
| **Zhipu AI (GLM)** | GLM-4, GLM-4V | 中国語+バイリンガル |
|
|
33
31
|
| **Qwen (Alibaba)** | Qwen2, Qwen2.5-Coder | 汎用+コード |
|
|
34
32
|
| **Yi (01.AI)** | Yi-1.5, 34B | バイリンガル+長コンテキスト |
|
|
@@ -36,12 +34,11 @@ A3M: モデルA ║ モデルB ║ モデルC → スコアリングで最良
|
|
|
36
34
|
|
|
37
35
|
## コア機能
|
|
38
36
|
|
|
39
|
-
- 🏆 **RouterArena #1** — 19ルーター中1位
|
|
40
37
|
- 🔀 **並列マルチLLM実行** — 複数プロバイダー同時実行、信頼度投票
|
|
41
|
-
- 💰 **最安値** — $0.0768/1K
|
|
38
|
+
- 💰 **最安値** — $0.0768/1Kリクエスト
|
|
42
39
|
- 🧠 **メモリ付きルーティング** — エピソードック記憶でセッション越えコンテキスト保存
|
|
43
|
-
- 🔄 **セマンティックキャッシュ** — 30
|
|
44
|
-
- 🛡️ **予算強制** —
|
|
40
|
+
- 🔄 **セマンティックキャッシュ** — 30%+ヒット率コスト節約
|
|
41
|
+
- 🛡️ **予算強制** — クエリごとコスト追跡,超過防止
|
|
45
42
|
- ⚡ **高速起動** — <100ms、19.5KB、ML依存なし
|
|
46
43
|
- 🌐 **47+プロバイダー** — OpenAI, Anthropic, DeepSeek, Groq, NVIDIA等
|
|
47
44
|
|
|
@@ -77,20 +74,19 @@ await router.route('私の名前は?'); // 応答:太郎です!
|
|
|
77
74
|
|
|
78
75
|
## ベンチマーク結果
|
|
79
76
|
|
|
80
|
-
|
|
|
81
|
-
|
|
82
|
-
| **A3M Router** |
|
|
83
|
-
| Sqwish |
|
|
84
|
-
| Azure-Model-Router |
|
|
85
|
-
| GPT-5 |
|
|
86
|
-
| RouteLLM |
|
|
77
|
+
| Router | コスト/1K | オープンソース |
|
|
78
|
+
|----------|:--------:|:------------:|
|
|
79
|
+
| **A3M Router** | **$0.0768** | ✅ |
|
|
80
|
+
| Sqwish | $0.18 | ❌ |
|
|
81
|
+
| Azure-Model-Router | $0.22 | ❌ |
|
|
82
|
+
| GPT-5 | $10.02 | ❌ |
|
|
83
|
+
| RouteLLM | $0.27 | ✅ |
|
|
87
84
|
|
|
88
|
-
詳細 [BENCHMARK.md](./docs/BENCHMARK.md)
|
|
85
|
+
詳細 [BENCHMARK.md](./docs/BENCHMARK.md)
|
|
89
86
|
|
|
90
87
|
## リンク
|
|
91
88
|
|
|
92
89
|
- 📖 [ドキュメント](https://das-rebel.github.io/a3m-router/)
|
|
93
|
-
- 🏆 [ベンチマーク](https://das-rebel.github.io/a3m-router/benchmark)
|
|
94
90
|
- 🚀 [クイックスタート](https://das-rebel.github.io/a3m-router/quick-start)
|
|
95
91
|
- 🤖 [APIリファレンス](https://das-rebel.github.io/a3m-router/api)
|
|
96
92
|
- 💬 [ディスカッション](https://github.com/Das-rebel/a3m-router/discussions)
|
package/README_zh.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# A3M Router 🔀 — LLM
|
|
1
|
+
# A3M Router 🔀 — 最便宜的LLM路由 & 并行执行
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**💰 $0.0768/1K请求 · 47+提供商 · 带记忆路由**
|
|
4
4
|
|
|
5
5
|
[English](./README.md) | [日本語](./README_ja.md) | [中文](./README_zh.md)
|
|
6
6
|
|
|
@@ -8,11 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
| 指标 | A3M Router | Sqwish | Azure (微软) | GPT-5 (OpenAI) | RouteLLM (伯克利) |
|
|
10
10
|
|------|:-----------:|:------:|:------------:|:--------------:|:-----------------:|
|
|
11
|
-
| **排名** | **🏆 #1** | #2 | #3 | #4 | #5 |
|
|
12
|
-
| **评分** | **96.77%** | 75.27 | 71.87 | 64.32 | 48.07 |
|
|
13
11
|
| **成本** | **$0.0768** | $0.18 | $0.22 | $10.02 | $0.27 |
|
|
14
12
|
|
|
15
|
-
>
|
|
13
|
+
> 带记忆功能的LLM路由器,独立评估验证
|
|
16
14
|
|
|
17
15
|
## 独特优势:并行多LLM执行
|
|
18
16
|
|
|
@@ -36,9 +34,8 @@ A3M路由: 模型A ║ 模型B ║ 模型C → 评分选最佳 ✅ (1次延迟
|
|
|
36
34
|
|
|
37
35
|
## 核心功能
|
|
38
36
|
|
|
39
|
-
- 🏆 **RouterArena #1** — 19个路由器中排名第一
|
|
40
37
|
- 🔀 **并行多LLM执行** — 同时运行多个提供商,置信度投票选最佳
|
|
41
|
-
- 💰 **最便宜** — $0.0768/1K
|
|
38
|
+
- 💰 **最便宜** — $0.0768/1K请求
|
|
42
39
|
- 🧠 **带记忆的路由** — 情景记忆跨会话保存,越用越懂你
|
|
43
40
|
- 🔄 **语义缓存** — 30%+命中率,节省成本
|
|
44
41
|
- 🛡️ **预算强制** — 每查询成本追踪,防止超支
|
|
@@ -71,26 +68,25 @@ const router = createRouter({
|
|
|
71
68
|
|
|
72
69
|
// 第一次对话
|
|
73
70
|
await router.route('我叫小明'); // 记住:用户叫小明
|
|
74
|
-
// 第二次对话
|
|
71
|
+
// 第二次对话
|
|
75
72
|
await router.route('我叫什么?'); // 回复:你叫小明!
|
|
76
73
|
```
|
|
77
74
|
|
|
78
75
|
## 基准测试结果
|
|
79
76
|
|
|
80
|
-
| 路由器 |
|
|
81
|
-
|
|
82
|
-
| **A3M Router** |
|
|
83
|
-
| Sqwish |
|
|
84
|
-
| Azure-Model-Router |
|
|
85
|
-
| GPT-5 |
|
|
86
|
-
| RouteLLM |
|
|
77
|
+
| 路由器 | 成本/1K | 开源 |
|
|
78
|
+
|--------|:-------:|:----:|
|
|
79
|
+
| **A3M Router** | **$0.0768** | ✅ |
|
|
80
|
+
| Sqwish | $0.18 | ❌ |
|
|
81
|
+
| Azure-Model-Router | $0.22 | ❌ |
|
|
82
|
+
| GPT-5 | $10.02 | ❌ |
|
|
83
|
+
| RouteLLM | $0.27 | ✅ |
|
|
87
84
|
|
|
88
|
-
详见 [BENCHMARK.md](./docs/BENCHMARK.md)
|
|
85
|
+
详见 [BENCHMARK.md](./docs/BENCHMARK.md)
|
|
89
86
|
|
|
90
87
|
## 链接
|
|
91
88
|
|
|
92
89
|
- 📖 [文档](https://das-rebel.github.io/a3m-router/)
|
|
93
|
-
- 🏆 [基准测试](https://das-rebel.github.io/a3m-router/benchmark)
|
|
94
90
|
- 🚀 [快速开始](https://das-rebel.github.io/a3m-router/quick-start)
|
|
95
91
|
- 🤖 [API参考](https://das-rebel.github.io/a3m-router/api)
|
|
96
92
|
- 💬 [讨论区](https://github.com/Das-rebel/a3m-router/discussions)
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# A3M Browser Automation - Remaining Tasks
|
|
2
|
+
|
|
3
|
+
## Completed ✅
|
|
4
|
+
- [x] browser-use integration (README, index.ts, package.json, examples)
|
|
5
|
+
- [x] MCP server for browser tools (README, src/index.ts, package.json)
|
|
6
|
+
- [x] sota-browser integration (README, package.json)
|
|
7
|
+
- [x] Updated main README with browser automation positioning
|
|
8
|
+
- [x] Updated AGENT_COUNCIL_FINDINGS.md
|
|
9
|
+
|
|
10
|
+
## High Priority - Do Today
|
|
11
|
+
|
|
12
|
+
### 1. Submit PR to browser-use
|
|
13
|
+
**Why:** browser-use (108K stars) recently removed LiteLLM due to CVE. They're looking for alternatives.
|
|
14
|
+
**How:**
|
|
15
|
+
1. Fork browser-use
|
|
16
|
+
2. Add `A3MRouter` to their supported LLM providers list
|
|
17
|
+
3. Create example: `examples/a3m-router.ts`
|
|
18
|
+
4. Submit PR with message highlighting:
|
|
19
|
+
- 70-95% cost savings
|
|
20
|
+
- Built-in stealth mode
|
|
21
|
+
- Parallel ensemble for reliability
|
|
22
|
+
|
|
23
|
+
### 2. Publish MCP server to NPM
|
|
24
|
+
```bash
|
|
25
|
+
cd ~/a3m-router/integrations/mcp-browser
|
|
26
|
+
npm publish
|
|
27
|
+
```
|
|
28
|
+
**Then:** Update docs to show one-command install
|
|
29
|
+
|
|
30
|
+
### 3. Create Demo Video/GIF
|
|
31
|
+
**What to record:**
|
|
32
|
+
- Terminal showing A3M routing for form filling
|
|
33
|
+
- Cost comparison output
|
|
34
|
+
- browser-use + A3M demo
|
|
35
|
+
|
|
36
|
+
**Tools:** terminalizer, asciinema, or OBS
|
|
37
|
+
|
|
38
|
+
## Medium Priority - This Week
|
|
39
|
+
|
|
40
|
+
### 4. Build Benchmark
|
|
41
|
+
Run 100 form-filling tasks and compare:
|
|
42
|
+
- A3M vs GPT-4o vs LiteLLM
|
|
43
|
+
- Document cost savings
|
|
44
|
+
- Publish to Hacker News
|
|
45
|
+
|
|
46
|
+
### 5. GitHub Actions CI
|
|
47
|
+
Add tests for integration packages:
|
|
48
|
+
```yaml
|
|
49
|
+
- name: Test browser-use integration
|
|
50
|
+
run: npm test -- integrations/browser-use
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 6. Discord/Community Engagement
|
|
54
|
+
- Join browser-use Discord
|
|
55
|
+
- Answer questions about A3M
|
|
56
|
+
- Contribute to discussions
|
|
57
|
+
|
|
58
|
+
## Low Priority - This Month
|
|
59
|
+
|
|
60
|
+
### 7. Write Tutorial
|
|
61
|
+
Create blog post: "How to Build a Cost-Optimized Job Application Bot with A3M + browser-use"
|
|
62
|
+
|
|
63
|
+
### 8. Add More Examples
|
|
64
|
+
- Web scraping with A3M
|
|
65
|
+
- Data extraction pipeline
|
|
66
|
+
- Multi-step form automation
|
|
67
|
+
|
|
68
|
+
### 9. Monitor & Iterate
|
|
69
|
+
- Track NPM downloads
|
|
70
|
+
- Respond to GitHub issues
|
|
71
|
+
- Update based on feedback
|
|
72
|
+
|
|
73
|
+
## Success Metrics
|
|
74
|
+
|
|
75
|
+
| Metric | Target (1 month) | Target (3 months) |
|
|
76
|
+
|--------|-------------------|-------------------|
|
|
77
|
+
| GitHub Stars | +50 | +200 |
|
|
78
|
+
| NPM Downloads | 2K/week | 5K/week |
|
|
79
|
+
| browser-use PR | Merged | Active use |
|
|
80
|
+
| Community mentions | 5 | 20 |
|
|
81
|
+
|
|
82
|
+
## Key Resources
|
|
83
|
+
|
|
84
|
+
- **browser-use repo:** https://github.com/browser-use/browser-use
|
|
85
|
+
- **browser-use integrations:** https://github.com/browser-use/browser-use/tree/main/browser_use/llm
|
|
86
|
+
- **MCP Protocol:** https://modelcontextprotocol.io
|
|
87
|
+
- **sota-browser:** ~/omniclaw/skills/browser/sota-browser
|