adaptive-memory-multi-model-router 2.14.49 → 2.14.52
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/.dockerignore +82 -0
- package/.env.example +303 -0
- package/.github/DISCUSSIONS_WELCOME.md +27 -0
- package/.github/DISCUSSION_TEMPLATE.yml +5 -0
- package/.github/FUNDING.yml +2 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +94 -0
- package/.github/ISSUE_TEMPLATE/config.yml +17 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +71 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +71 -0
- package/.github/dependabot.yml +9 -0
- package/.github/workflows/ci.yml +263 -0
- package/.github/workflows/codeql.yml +38 -0
- package/.github/workflows/npm-publish.yml +20 -0
- package/.github/workflows/pages.yml +37 -0
- package/.github/workflows/stale.yml +54 -0
- package/.publish-tick +1 -0
- package/.well-known/ai-plugin.json +16 -0
- package/AGENT_COUNCIL_FINDINGS.md +142 -0
- package/ARCHITECTURE.md +346 -0
- package/AUDIT_REPORT.md +28 -0
- package/CODE_OF_CONDUCT.md +128 -0
- package/CONTRIBUTING.md +50 -0
- package/CONTRIBUTORS.md +20 -0
- package/Dockerfile +53 -0
- package/Dockerfile.proxy +33 -0
- package/HEALTH_REPORT.md +118 -0
- package/IMPROVEMENT_PLAN.md +107 -0
- package/LANDING.md +43 -0
- package/LAUNCH-PAIN-DRIVEN.md +339 -0
- package/LAUNCH.md +337 -0
- package/LAUNCH_CHECKLIST.md +141 -0
- package/LAUNCH_SNAPSHOT.md +260 -0
- package/MANIFESTO.md +41 -0
- package/POPULARITY_BOOSTERS.md +285 -0
- package/PR_STATUS_REPORT.md +148 -0
- package/README.md +25 -14
- package/REDESIGN.md +95 -0
- package/RUNKIT.md +83 -0
- package/SECURITY.md +29 -0
- package/SUBMISSIONS.md +43 -0
- package/_schema.html +53 -0
- package/ai-plugin.json +16 -0
- package/articles/AI_AGENT_LLM_ROUTING.md +150 -0
- package/articles/CHINESE_DIRECTORIES.md +100 -0
- package/articles/CHINESE_SUBMISSIONS_READY.md +322 -0
- package/articles/COMPETITOR_ALERTS.md +31 -0
- package/articles/COMPLETE_POSTING_DIRECTORY.md +147 -0
- package/articles/CONTENT_STRUCTURE.md +292 -0
- package/articles/DEVTO_COST_GUIDE.md +473 -0
- package/articles/DEVTO_FINAL.md +416 -0
- package/articles/DEVTO_MULTI_PROVIDER.md +542 -0
- package/articles/DEVTO_READY.md +255 -0
- package/articles/DEVTO_V2_ANNOUNCEMENT.md +160 -0
- package/articles/DEVTO_VIRAL_GROWTH.md +280 -0
- package/articles/FRESH_devto.md +460 -0
- package/articles/FRESH_devto_2026_05.md +73 -0
- package/articles/FRESH_hackernews.md +14 -0
- package/articles/FRESH_reddit_ml.md +90 -0
- package/articles/FRESH_reddit_node.md +198 -0
- package/articles/FRESH_reddit_sideproject.md +72 -0
- package/articles/FRESH_reddit_webdev.md +130 -0
- package/articles/FROM_ZERO_TO_10K.md +107 -0
- package/articles/HN_10X_BETTER.md +430 -0
- package/articles/HN_ACCOUNT_GUIDE.md +21 -0
- package/articles/HN_CHINESE_STYLE.md +308 -0
- package/articles/HN_FINAL.md +148 -0
- package/articles/HN_POSTED_VERSION.md +56 -0
- package/articles/HN_POST_READY.md +137 -0
- package/articles/HN_RESEARCH.md +364 -0
- package/articles/HN_SHOW_routerarena.md +17 -0
- package/articles/HN_TIMING_GUIDE.md +52 -0
- package/articles/INDIEHACKERS_POST.md +52 -0
- package/articles/INDIEHACKERS_READY.md +120 -0
- package/articles/LLM_BENCHMARK_DEEP_DIVE.md +153 -0
- package/articles/MASTER_POSTING_DIRECTORY.md +189 -0
- package/articles/NEWSLETTER_SEND_NOW.md +259 -0
- package/articles/NEWSLETTER_SUBMISSIONS.md +112 -0
- package/articles/PAIN-DRIVEN-devto-v2.md +308 -0
- package/articles/PAIN-DRIVEN-devto-v3.md +268 -0
- package/articles/PAIN-DRIVEN-devto.md +242 -0
- package/articles/PAIN-DRIVEN-hackernews-v2.md +138 -0
- package/articles/PAIN-DRIVEN-hackernews-v3.md +151 -0
- package/articles/PAIN-DRIVEN-hackernews.md +131 -0
- package/articles/PAIN-DRIVEN-reddit-v2.md +301 -0
- package/articles/PAIN-DRIVEN-reddit-v3.md +236 -0
- package/articles/PAIN-DRIVEN-reddit.md +218 -0
- package/articles/PAIN-DRIVEN-twitter-v2.md +110 -0
- package/articles/PAIN-DRIVEN-twitter-v3.md +121 -0
- package/articles/PAIN-DRIVEN-twitter.md +120 -0
- package/articles/PORTKEY_VS_A3M.md +147 -0
- package/articles/POSTING_KIT_2026_05.md +67 -0
- package/articles/PRESS_KIT_routerarena.md +77 -0
- package/articles/PRODUCTHUNT_LISTING.md +48 -0
- package/articles/PRODUCTHUNT_READY.md +106 -0
- package/articles/PR_PLAN_vault.md +125 -0
- package/articles/REDDIT_FINAL.md +232 -0
- package/articles/REDDIT_POST.md +67 -0
- package/articles/REDDIT_SUBMISSION_READY.md +348 -0
- package/articles/ROUTERARENA_9677.md +78 -0
- package/articles/ROUTERARENA_LEADER.md +45 -0
- package/articles/SHOW_HN_FINAL.md +29 -0
- package/articles/TWEETS_10K_DOWNLOADS.md +47 -0
- package/articles/TWEETS_BENCHMARK_FIRST.md +46 -0
- package/articles/TWEETS_MCP_PLAY.md +51 -0
- package/articles/TWEETS_SEQUENTIAL_BROKEN.md +49 -0
- package/articles/TWEETS_WHY_BUILD.md +54 -0
- package/articles/TWEETS_routerarena_leader.md +53 -0
- package/articles/TWEET_STORM_READY.md +165 -0
- package/articles/TWITTER_FINAL.md +167 -0
- package/articles/WHY_10X_BETTER.md +261 -0
- package/articles/WHY_CHINESE_STYLE_BETTER.md +323 -0
- package/articles/ai-discoverability-llm-routing.md +210 -0
- package/articles/devto-llm-routing.md +138 -0
- package/articles/hackernews-show-hn.md +54 -0
- package/articles/hashnode-llm-cost-optimization.md +125 -0
- package/articles/hn_show_2026_05.md +11 -0
- package/articles/medium-building-llm-router.md +205 -0
- package/articles/reddit-ml.md +76 -0
- package/articles/twitter-thread-cost-savings.md +50 -0
- package/articles/youtube-tutorial-script.md +262 -0
- package/assets/a3m_3blue1brown.mp4 +0 -0
- package/assets/banner.svg +109 -0
- package/assets/chart-cost-v2.svg +91 -0
- package/assets/chart-cost-v3.svg +143 -0
- package/assets/chart-features-v2.svg +132 -0
- package/assets/chart-features-v3.svg +211 -0
- package/assets/chart-growth-v2.svg +122 -0
- package/assets/chart-growth-v3.svg +189 -0
- package/assets/cost-comparison.svg +134 -0
- package/assets/cost-simple.svg +64 -0
- package/assets/demo-hn.gif +0 -0
- package/assets/feature-matrix.svg +136 -0
- package/assets/growth-chart-animated.svg +76 -0
- package/assets/growth-chart.svg +82 -0
- package/assets/growth-simple.svg +69 -0
- package/assets/hero-diagram.svg +81 -0
- package/assets/logo-new.svg +21 -0
- package/assets/logo.svg +68 -0
- package/assets/provider-comparison.svg +121 -0
- package/assets/social-preview-new.svg +100 -0
- package/assets/social-preview.svg +194 -0
- package/assets/social-v2.svg +130 -0
- package/assets/social-v3.svg +212 -0
- package/benchmark-provider-results.json +245 -0
- package/benchmark-results.json +54 -0
- package/council-votes/architecture-vote.md +121 -0
- package/council-votes/coverage-vote.md +93 -0
- package/data/adaptive-benchmark.json +92 -0
- package/data/benchmark-results.json +47 -0
- package/data/labeled-benchmark.json +88 -0
- package/demo/3blue1brown_video.py +285 -0
- package/demo/3blue1brown_video_v2.py +310 -0
- package/demo/IMPROVED_PROMPTS.md +229 -0
- package/demo/VEO3_PROMPTS.md +269 -0
- package/demo/VIDEO_PRODUCTION_GUIDE.md +333 -0
- package/demo/a3m_3blue1brown.mp4 +0 -0
- package/demo/asciinema-demo.sh +195 -0
- package/demo/demo-hn.tape +74 -0
- package/demo/demo-script.md +53 -0
- package/demo/demo-script.sh +62 -0
- package/demo/demo.svg +75 -0
- package/demo/frame1_ai_data_center.png +0 -0
- package/demo/frame1_sunset_video.mp4 +0 -0
- package/demo/frame2_cost_comparison.png +0 -0
- package/demo/frame2_cost_comparison_fallback.png +0 -0
- package/demo/frame3_parallel_execution.png +0 -0
- package/demo/frame3_parallel_execution_fallback.png +0 -0
- package/demo/frame4_providers.png +0 -0
- package/demo/frame4_providers_fallback.png +0 -0
- package/demo/frame5_endcard.png +0 -0
- package/demo/frame5_endcard_fallback.png +0 -0
- package/demo/new_frame1_hook.png +0 -0
- package/demo/new_frame2_proof.png +0 -0
- package/demo/new_frame3_wow.png +0 -0
- package/demo/new_frame4_social.png +0 -0
- package/demo/new_frame5_cta.png +0 -0
- package/demo/package.json +13 -0
- package/demo/product-video-final.mp4 +0 -0
- package/demo/product-video-hype-v1.mp4 +0 -0
- package/demo/product-video-v1.mp4 +0 -0
- package/demo/public/index.html +762 -0
- package/demo/recording.cast +55 -0
- package/demo/server.js +405 -0
- package/demo-new.tape +71 -0
- package/demo-real.sh +198 -0
- package/demo-simple.tape +205 -0
- package/demo.html +520 -0
- package/demo.sh +85 -0
- package/demo.tape +259 -0
- package/dist/analytics/costAnalytics.d.ts.map +1 -0
- package/dist/analytics/costAnalytics.js.map +1 -0
- package/dist/benchmark/comprehensive.js.map +1 -0
- package/dist/benchmark/reproducible.d.ts.map +1 -0
- package/dist/benchmark/reproducible.js.map +1 -0
- package/dist/cache/prefixCache.d.ts.map +1 -0
- package/dist/cache/prefixCache.js.map +1 -0
- package/dist/cache/responseCache.d.ts.map +1 -0
- package/dist/cache/responseCache.js.map +1 -0
- package/dist/cache/semanticCache.d.ts.map +1 -0
- package/dist/cache/semanticCache.js.map +1 -0
- package/dist/cli/setupWizard.d.ts.map +1 -0
- package/dist/cli/setupWizard.js.map +1 -0
- package/dist/cost/budgetEnforcer.d.ts.map +1 -0
- package/dist/cost/budgetEnforcer.js.map +1 -0
- package/dist/cost/costTracker.d.ts.map +1 -0
- package/dist/cost/costTracker.js.map +1 -0
- package/dist/ensemble/multiRoundDialog.js.map +1 -0
- package/dist/ensemble/shapleyValue.js.map +1 -0
- package/dist/integrations/langchainAdapter.d.ts.map +1 -0
- package/dist/integrations/langchainAdapter.js.map +1 -0
- package/dist/integrations/oauth.d.ts.map +1 -0
- package/dist/integrations/oauth.js.map +1 -0
- package/dist/integrations/scienceAdapter.js.map +1 -0
- package/dist/memory/autoFetch.d.ts.map +1 -0
- package/dist/memory/autoFetch.js.map +1 -0
- package/dist/memory/episodicMemory.d.ts.map +1 -0
- package/dist/memory/episodicMemory.js.map +1 -0
- package/dist/memory/hybridMemory.js.map +1 -0
- package/dist/memory/memoryTree.d.ts.map +1 -0
- package/dist/memory/memoryTree.js.map +1 -0
- package/dist/memory/obsidianVault.d.ts.map +1 -0
- package/dist/memory/obsidianVault.js.map +1 -0
- package/dist/memory/reasoningBank.js.map +1 -0
- package/dist/observability/changeWatch.d.ts.map +1 -0
- package/dist/observability/changeWatch.js.map +1 -0
- package/dist/observability/fatigueDetector.d.ts.map +1 -0
- package/dist/observability/fatigueDetector.js.map +1 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/middleware.d.ts.map +1 -0
- package/dist/observability/middleware.js.map +1 -0
- package/dist/observability/tracer.d.ts.map +1 -0
- package/dist/observability/tracer.js.map +1 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/orchestration/haloOrchestrator.d.ts.map +1 -0
- package/dist/orchestration/haloOrchestrator.js.map +1 -0
- package/dist/orchestration/mctsWorkflow.d.ts.map +1 -0
- package/dist/orchestration/mctsWorkflow.js.map +1 -0
- package/dist/providers/localProvider.d.ts.map +1 -0
- package/dist/providers/localProvider.js.map +1 -0
- package/dist/providers/providerConfig.d.ts.map +1 -0
- package/dist/providers/providerConfig.js.map +1 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/routing/advancedRouter.d.ts.map +1 -0
- package/dist/routing/advancedRouter.js +1 -1
- package/dist/routing/advancedRouter.js.map +1 -0
- package/dist/routing/crossModelValidation.d.ts.map +1 -0
- package/dist/routing/crossModelValidation.js.map +1 -0
- package/dist/routing/providerHealth.d.ts.map +1 -0
- package/dist/routing/providerHealth.js.map +1 -0
- package/dist/routing/providerRetry.d.ts.map +1 -0
- package/dist/routing/providerRetry.js.map +1 -0
- package/dist/scripts/banner.js +29 -0
- package/dist/security/guardrails.d.ts.map +1 -0
- package/dist/security/guardrails.js.map +1 -0
- package/dist/server/dashboard.d.ts.map +1 -0
- package/dist/server/dashboard.js.map +1 -0
- package/dist/server/modelMapper.d.ts.map +1 -0
- package/dist/server/modelMapper.js.map +1 -0
- package/dist/server/proxyServer.d.ts.map +1 -0
- package/dist/server/proxyServer.js.map +1 -0
- package/dist/skills/__tests__/skill_manager.test.d.ts +2 -0
- package/dist/skills/__tests__/skill_manager.test.d.ts.map +1 -0
- package/dist/skills/__tests__/skill_manager.test.js +268 -0
- package/dist/skills/__tests__/skill_manager.test.js.map +1 -0
- package/dist/tools/tmlpdTools.d.ts.map +1 -0
- package/dist/tools/tmlpdTools.js.map +1 -0
- package/dist/tui/dashboard.d.ts.map +1 -0
- package/dist/tui/dashboard.js.map +1 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/utils/batchProcessor.d.ts.map +1 -0
- package/dist/utils/batchProcessor.js.map +1 -0
- package/dist/utils/compression.d.ts.map +1 -0
- package/dist/utils/compression.js.map +1 -0
- package/dist/utils/costUtils.d.ts.map +1 -0
- package/dist/utils/costUtils.js.map +1 -0
- package/dist/utils/reliability.d.ts.map +1 -0
- package/dist/utils/reliability.js.map +1 -0
- package/dist/utils/sorting.d.ts.map +1 -0
- package/dist/utils/sorting.js.map +1 -0
- package/dist/utils/speculativeDecoding.d.ts.map +1 -0
- package/dist/utils/speculativeDecoding.js.map +1 -0
- package/dist/utils/tokenUtils.d.ts.map +1 -0
- package/dist/utils/tokenUtils.js.map +1 -0
- package/docs/.nojekyll +0 -0
- package/docs/ANALYSIS_PRINCIPLES.md +162 -0
- package/docs/API.md +855 -0
- package/docs/ARCHITECTURAL-IMPROVEMENTS-2025.md +1391 -0
- package/docs/ARCHITECTURAL-IMPROVEMENTS-REVISED-2025.md +1051 -0
- package/docs/BENCHMARK.md +170 -0
- package/docs/CHINESE_PROVIDER_RELIABILITY.md +37 -0
- package/docs/CITATIONS.md +74 -0
- package/docs/CLAIMS_AND_EVIDENCE.md +58 -0
- package/docs/CONFIGURATION.md +476 -0
- package/docs/COUNCIL_DECISION.json +816 -0
- package/docs/COUNCIL_SUMMARY.md +319 -0
- package/docs/COUNCIL_V2.2_DECISION.md +416 -0
- package/docs/ENGINEERING_SPEC.md +55 -0
- package/docs/FACTORY_RESET.md +34 -0
- package/docs/GEO.md +66 -0
- package/docs/GEO_OPTIMIZATION.md +30 -0
- package/docs/GEO_ROOT_CAUSE.md +136 -0
- package/docs/GEO_STATUS.md +85 -0
- package/docs/GEO_TEST_RESULTS.md +176 -0
- package/docs/HN_CHECKLIST.md +38 -0
- package/docs/HN_FOUNDER_COMMENT.md +17 -0
- package/docs/HN_SUBMISSION_FINAL.md +180 -0
- package/docs/HN_SUBMISSION_V3.md +56 -0
- package/docs/IMPROVEMENT_ROADMAP.md +515 -0
- package/docs/INTEGRATIONS.md +420 -0
- package/docs/LANGCHAIN_INTEGRATION.md +147 -0
- package/docs/LLM_COUNCIL_DECISION.md +508 -0
- package/docs/MIDDLEWARE_CHAIN.md +35 -0
- package/docs/PROMO_CHECKLIST.md +200 -0
- package/docs/QUICKSTART.md +271 -0
- package/docs/QUICK_START.md +43 -0
- package/docs/QUICK_START_VISIBILITY.md +782 -0
- package/docs/REDDIT_GAP_ANALYSIS.md +299 -0
- package/docs/RELEASE_CHECKLIST.md +32 -0
- package/docs/REPRODUCIBILITY.md +63 -0
- package/docs/RESEARCH_BACKED_IMPROVEMENTS.md +1180 -0
- package/docs/ROUTING_RUBRIC.md +197 -0
- package/docs/SEO_AUDIT.md +186 -0
- package/docs/SOCIAL_LISTENING.md +219 -0
- package/docs/TMLPD_QNA.md +751 -0
- package/docs/TMLPD_V2.1_COMPLETE.md +763 -0
- package/docs/TMLPD_V2.2_RESEARCH_ROADMAP.md +754 -0
- package/docs/UPDATE_TOPICS.md +15 -0
- package/docs/USE_CASES.md +59 -0
- package/docs/V2.2_IMPLEMENTATION_COMPLETE.md +446 -0
- package/docs/V2_IMPLEMENTATION_GUIDE.md +388 -0
- package/docs/VERCEL_AI_SDK.md +209 -0
- package/docs/VISIBILITY_ADOPTION_PLAN.md +1005 -0
- package/docs/_config.yml +49 -0
- package/docs/ai-plugin.json +16 -0
- package/docs/api.html +513 -0
- package/docs/architecture-diagram.md +40 -0
- package/docs/benchmark-chart.png +0 -0
- package/docs/benchmark.html +387 -0
- package/docs/blog/routerarena-9677.html +92 -0
- package/docs/blog/routerarena-number-one.html +73 -0
- package/docs/cli-cheatsheet.md +339 -0
- package/docs/compare.md +109 -0
- package/docs/comparison-litellm.md +88 -0
- package/docs/comparison.md +108 -0
- package/docs/cost-chart-ascii.md +42 -0
- package/docs/cost-comparison-chart.svg +88 -0
- package/docs/curl-examples.md +247 -0
- package/docs/demo-auto.html +264 -0
- package/docs/demo.html +416 -0
- package/docs/geo/GENERATIVE_ENGINE_OPTIMIZATION.md +232 -0
- package/docs/index.html +507 -0
- package/docs/launch-content/LAUNCH_EXECUTION_CHECKLIST.md +421 -0
- package/docs/launch-content/README.md +457 -0
- package/docs/launch-content/assets/cost_comparison_100_tasks.png +0 -0
- package/docs/launch-content/assets/cumulative_savings.png +0 -0
- package/docs/launch-content/assets/parallel_speedup.png +0 -0
- package/docs/launch-content/assets/provider_pricing_comparison.png +0 -0
- package/docs/launch-content/assets/task_breakdown_comparison.png +0 -0
- package/docs/launch-content/generate_charts.py +313 -0
- package/docs/launch-content/hn_show_post.md +139 -0
- package/docs/launch-content/partner_outreach_templates.md +745 -0
- package/docs/launch-content/reddit_posts.md +467 -0
- package/docs/launch-content/twitter_thread.txt +460 -0
- package/{llms.txt.bak → docs/llms.txt} +6 -6
- package/docs/npm-downloads-chart.svg +43 -0
- package/docs/openapi.json +139 -0
- package/docs/openapi.yaml +1318 -0
- package/docs/quick-start.html +366 -0
- package/docs/robots.txt +52 -0
- package/docs/sitemap.xml +57 -0
- package/docs/styles.css +682 -0
- package/docs/well-known/ai-plugin.json +16 -0
- package/docs/wellknown/ai-plugin.json +16 -0
- package/docs-site/assets/og-banner.svg +194 -0
- package/docs-site/index.html +632 -0
- package/eval/README.md +46 -0
- package/eval/baselines/main.json +12 -0
- package/eval/benchmark_dataset.jsonl +16 -0
- package/eval/check_golden_routes.js +64 -0
- package/eval/datasets/catalog.json +33 -0
- package/eval/datasets/slices/cn_provider_reliability_v1.jsonl +3 -0
- package/eval/datasets/slices/cost_pressure_v1.jsonl +3 -0
- package/eval/datasets/slices/safety_guardrails_v1.jsonl +3 -0
- package/eval/evals.json +199 -0
- package/eval/fault_injection_thresholds.json +3 -0
- package/eval/generate_report.js +128 -0
- package/eval/golden_routes.json +114 -0
- package/eval/lib/experiment_registry.js +24 -0
- package/eval/run_eval.js +197 -0
- package/eval/run_fault_injection.js +201 -0
- package/eval/run_shadow_eval.js +85 -0
- package/eval/thresholds.json +9 -0
- package/examples/QUICKSTART.md +183 -0
- package/examples/README.md +61 -0
- package/examples/a3m-sdk.js +124 -0
- package/examples/basic-route.js +54 -0
- package/examples/chat-loop.js +202 -0
- package/examples/classify-then-route.js +102 -0
- package/examples/cost-compare.js +120 -0
- package/examples/ensemble.js +160 -0
- package/examples/whatsapp-telegram-bridge-demo.js +302 -0
- package/examples/whatsapp-telegram-bridge.js +269 -0
- package/hf-space/README.md +23 -0
- package/hf-space/app.py +240 -0
- package/hf-space/requirements.txt +1 -0
- package/huggingface_space/README.md +35 -0
- package/huggingface_space/app.py +126 -0
- package/huggingface_space/create_space.py +208 -0
- package/huggingface_space/requirements.txt +1 -0
- package/index.html +1 -1
- package/mcp-server/README.md +188 -0
- package/mcp-server/package.json +29 -0
- package/mcp-server/src/index.ts +744 -0
- package/mcp-server/tsconfig.json +19 -0
- package/openclaw-alexa-bridge/ALL_REMAINING_FIXES_PLAN.md +313 -0
- package/openclaw-alexa-bridge/REMAINING_FIXES_SUMMARY.md +277 -0
- package/openclaw-alexa-bridge/src/alexa_handler_no_tmlpd.js +1234 -0
- package/openclaw-alexa-bridge/test_fixes.js +77 -0
- package/package.json +76 -272
- package/playground/README.md +51 -0
- package/playground/codesandbox.json +12 -0
- package/playground/index.js +39 -0
- package/proxy/README.md +227 -0
- package/proxy/package-lock.json +831 -0
- package/proxy/package.json +17 -0
- package/proxy/rate-limit.js +145 -0
- package/proxy/rate-limit.test.js +311 -0
- package/proxy/server.js +970 -0
- package/python/README.md +102 -0
- package/python/a3m/__init__.py +6 -0
- package/python/a3m/client.py +190 -0
- package/python/a3m/models.py +40 -0
- package/python/a3m/sync_client.py +61 -0
- package/python/examples.py +53 -0
- package/python/integrations.py +330 -0
- package/python/pyproject.toml +23 -0
- package/python/setup.py +28 -0
- package/python/tmlpd.py +369 -0
- package/qna/REDDIT_GAP_ANALYSIS.md +299 -0
- package/qna/TMLPD_QNA.md +751 -0
- package/research/FINDING_001_safety.md +28 -0
- package/research/FINDING_002_error_diversity.md +32 -0
- package/research/FINDING_003_confidence_weighted_voting.md +32 -0
- package/research/FINDING_004_cross_model_semantic_detection.md +37 -0
- package/research/FINDING_005_knowledge_gap_orthogonality.md +34 -0
- package/research/HALLUCINATION_RESEARCH.md +27 -0
- package/research/ensemble-voting.md +324 -0
- package/research/loss-functions.md +545 -0
- package/research-log.md +49 -0
- package/scripts/banner.js +29 -0
- package/scripts/benchmark-local-routerarena.ts +176 -0
- package/scripts/benchmark.js +145 -0
- package/scripts/benchmark.sh +61 -0
- package/scripts/compare-providers.sh +230 -0
- package/scripts/content-planner.js +25 -0
- package/scripts/create-labeled-benchmark.ts +105 -0
- package/scripts/cross_post.py +443 -0
- package/scripts/local-router-benchmark.ts +154 -0
- package/scripts/post-all.sh +41 -0
- package/scripts/publish_fcc.py +106 -0
- package/scripts/push-to-gitee.sh +25 -0
- package/scripts/routerarena_ensemble.js +144 -0
- package/scripts/routing-benchmark-v2.js +373 -0
- package/scripts/routing-benchmark-v3.js +118 -0
- package/scripts/routing-benchmark.js +462 -0
- package/scripts/run-labeled-benchmark.mjs +104 -0
- package/scripts/run-mmlu-benchmark.js +176 -0
- package/scripts/run-provider-benchmark.js +244 -0
- package/scripts/update-npm-badges.js +158 -0
- package/skill/SKILL.md +238 -0
- package/src/__tests__/integration/tmpld_integration.test.py +540 -0
- package/src/ensemble.ts +2 -0
- package/src/routing/advancedRouter.ts +1 -1
- package/src/skills/__tests__/skill_manager.test.ts +328 -0
- package/submissions/benchmarks/ALL_PLATFORMS_SUBMISSION.md +94 -0
- package/submissions/benchmarks/LLMROUTERBENCH_SUBMISSION.md +121 -0
- package/submissions/benchmarks/MMRBENCH_SUBMISSION.md +94 -0
- package/submissions/benchmarks/ROUTERARENA_UPDATE.md +83 -0
- package/submissions/benchmarks/ROUTERBENCH_SUBMISSION.md +225 -0
- package/test-council/1-structure-tests.test.js +353 -0
- package/test-council/1-structure-tests.test.ts +353 -0
- package/test-council/2-edge-case-tests.test.ts +361 -0
- package/test-council/3-performance-tests.test.ts +652 -0
- package/test-council/4-integration-tests.test.ts +391 -0
- package/test-council/5-agent-council-eval.test.ts +413 -0
- package/test-council/AGENT_COUNCIL_ARCHITECTURE.md +349 -0
- package/test-council/TEST_COUNCIL_REPORT.md +201 -0
- package/test-council/agents/edge-case-agent.ts +363 -0
- package/test-council/agents/performance-agent.ts +426 -0
- package/test-council/agents/structure-agent.ts +227 -0
- package/test-council/council.md +183 -0
- package/tests/__mocks__/tokenUtils.ts +8 -0
- package/tests/memory/episodicMemory.test.ts +227 -0
- package/tests/package-lock.json +1785 -0
- package/tests/package.json +19 -0
- package/tests/routing/ensembleVoting.test.ts +236 -0
- package/tests/routing/providerRetry.test.ts +360 -0
- package/tests/routing/queryTypePresets.test.ts +208 -0
- package/tests/security/guardrailEngine.test.ts +700 -0
- package/tests/tsconfig.json +21 -0
- package/tests/vitest.config.ts +18 -0
- package/tmlpd-pi-extension/README.md +66 -0
- package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts +114 -0
- package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/cache/prefixCache.js +285 -0
- package/tmlpd-pi-extension/dist/cache/prefixCache.js.map +1 -0
- package/tmlpd-pi-extension/dist/cache/responseCache.d.ts +58 -0
- package/tmlpd-pi-extension/dist/cache/responseCache.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/cache/responseCache.js +153 -0
- package/tmlpd-pi-extension/dist/cache/responseCache.js.map +1 -0
- package/tmlpd-pi-extension/dist/cli.js +59 -0
- package/tmlpd-pi-extension/dist/cost/costTracker.d.ts +95 -0
- package/tmlpd-pi-extension/dist/cost/costTracker.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/cost/costTracker.js +240 -0
- package/tmlpd-pi-extension/dist/cost/costTracker.js.map +1 -0
- package/tmlpd-pi-extension/dist/index.d.ts +723 -0
- package/tmlpd-pi-extension/dist/index.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/index.js +239 -0
- package/tmlpd-pi-extension/dist/index.js.map +1 -0
- package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts +82 -0
- package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/memory/episodicMemory.js +145 -0
- package/tmlpd-pi-extension/dist/memory/episodicMemory.js.map +1 -0
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts +102 -0
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js +207 -0
- package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js.map +1 -0
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts +85 -0
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js +210 -0
- package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js.map +1 -0
- package/tmlpd-pi-extension/dist/providers/localProvider.d.ts +102 -0
- package/tmlpd-pi-extension/dist/providers/localProvider.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/providers/localProvider.js +338 -0
- package/tmlpd-pi-extension/dist/providers/localProvider.js.map +1 -0
- package/tmlpd-pi-extension/dist/providers/registry.d.ts +55 -0
- package/tmlpd-pi-extension/dist/providers/registry.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/providers/registry.js +138 -0
- package/tmlpd-pi-extension/dist/providers/registry.js.map +1 -0
- package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts +68 -0
- package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/routing/advancedRouter.js +332 -0
- package/tmlpd-pi-extension/dist/routing/advancedRouter.js.map +1 -0
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts +101 -0
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.js +368 -0
- package/tmlpd-pi-extension/dist/tools/tmlpdTools.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts +96 -0
- package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/batchProcessor.js +170 -0
- package/tmlpd-pi-extension/dist/utils/batchProcessor.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/compression.d.ts +61 -0
- package/tmlpd-pi-extension/dist/utils/compression.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/compression.js +281 -0
- package/tmlpd-pi-extension/dist/utils/compression.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/reliability.d.ts +74 -0
- package/tmlpd-pi-extension/dist/utils/reliability.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/reliability.js +177 -0
- package/tmlpd-pi-extension/dist/utils/reliability.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts +117 -0
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js +246 -0
- package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js.map +1 -0
- package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts +50 -0
- package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts.map +1 -0
- package/tmlpd-pi-extension/dist/utils/tokenUtils.js +124 -0
- package/tmlpd-pi-extension/dist/utils/tokenUtils.js.map +1 -0
- package/tmlpd-pi-extension/examples/QUICKSTART.md +183 -0
- package/tmlpd-pi-extension/package-lock.json +79 -0
- package/tmlpd-pi-extension/package.json +172 -0
- package/tmlpd-pi-extension/python/examples.py +53 -0
- package/tmlpd-pi-extension/python/integrations.py +330 -0
- package/tmlpd-pi-extension/python/setup.py +28 -0
- package/tmlpd-pi-extension/python/tmlpd.py +369 -0
- package/tmlpd-pi-extension/qna/REDDIT_GAP_ANALYSIS.md +299 -0
- package/tmlpd-pi-extension/qna/TMLPD_QNA.md +751 -0
- package/tmlpd-pi-extension/skill/SKILL.md +238 -0
- package/tmlpd-pi-extension/src/cache/responseCache.ts +147 -0
- package/tmlpd-pi-extension/src/cost/costTracker.ts +302 -0
- package/tmlpd-pi-extension/src/index.ts +232 -0
- package/tmlpd-pi-extension/src/memory/episodicMemory.ts +257 -0
- package/tmlpd-pi-extension/src/orchestration/haloOrchestrator.ts +266 -0
- package/tmlpd-pi-extension/src/orchestration/mctsWorkflow.ts +262 -0
- package/tmlpd-pi-extension/src/providers/localProvider.ts +406 -0
- package/tmlpd-pi-extension/src/providers/registry.ts +164 -0
- package/tmlpd-pi-extension/src/routing/ensembleVoting.ts +159 -0
- package/tmlpd-pi-extension/src/routing/queryTypePresets.ts +136 -0
- package/tmlpd-pi-extension/src/tools/tmlpdTools.ts +433 -0
- package/tmlpd-pi-extension/src/utils/batchProcessor.ts +232 -0
- package/tmlpd-pi-extension/src/utils/compression.ts +325 -0
- package/tmlpd-pi-extension/src/utils/reliability.ts +221 -0
- package/tmlpd-pi-extension/src/utils/tokenUtils.ts +145 -0
- package/tmlpd-pi-extension/tsconfig.json +18 -0
- package/tsconfig.build.json +29 -0
- package/tsconfig.json +18 -0
- package/README.md.bak +0 -1185
- package/src/routing/advancedRouter.ts.bak +0 -650
- package/test.js.bak +0 -376
- /package/{llms-full.txt.bak → docs/llms-full.txt} +0 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Every AI Agent Needs a Router (Here's Why)"
|
|
3
|
+
description: "AI agents burn through LLM API calls faster than you think. A smart router cuts costs by 40% and keeps agents running when providers go down."
|
|
4
|
+
tags: ["ai-agents", "llm", "claude-code", "cursor", "cost-optimization"]
|
|
5
|
+
date: 2026-05-28
|
|
6
|
+
canonical_url: https://github.com/Das-rebel/a3m-router
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
> **Ready to publish** — This article targets AI/ML developer blogs. Tone: technical, practical, forward-looking. Length: ~800 words.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Every AI Agent Needs a Router (Here's Why)
|
|
14
|
+
|
|
15
|
+
I run Claude Code regularly. Each time I ask it to "debug this function" or "refactor this module," it doesn't make one LLM call. It makes 5, 10, sometimes 20.
|
|
16
|
+
|
|
17
|
+
That's how agents work. Every decision — "should I read this file?" "should I run this command?" "does this output make sense?" — is a separate LLM call. The agent loop doesn't pause to ask "is this the right model for this task?" It just fires everything at the same provider.
|
|
18
|
+
|
|
19
|
+
I ran a simple experiment: traced a 5-minute Claude Code session and counted the API calls. Result: **17 LLM queries** for what felt like one task. Each one hit the premium model. Each one cost money.
|
|
20
|
+
|
|
21
|
+
Total: about $0.85 for a trivial debugging session.
|
|
22
|
+
|
|
23
|
+
Scale that to a team of 10 developers running agents daily, and you're looking at **$2,500+/month** just in agent API costs.
|
|
24
|
+
|
|
25
|
+
## The Hidden Cost of Agent Loops
|
|
26
|
+
|
|
27
|
+
Here's what happens inside an AI agent:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
User: "Fix the login bug"
|
|
31
|
+
Agent thinks: "I need to read the auth module first" → 1 LLM call (premium)
|
|
32
|
+
Agent executes: reads auth.ts
|
|
33
|
+
Agent thinks: "There's a race condition in the token check" → 2nd LLM call (premium)
|
|
34
|
+
Agent executes: edits the file
|
|
35
|
+
Agent thinks: "Let me verify the fix" → 3rd LLM call (premium)
|
|
36
|
+
Agent executes: runs the tests
|
|
37
|
+
Agent thinks: "Tests pass. Should I also check...?" → 4th LLM call (premium)
|
|
38
|
+
...continues until Agent is happy
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Five minutes of work. Four to seventeen API calls. All premium pricing.
|
|
42
|
+
|
|
43
|
+
The problem isn't that agents make many calls — that's their job. The problem is that **every single call uses the same expensive model**, even when most of them are simple decisions ("is this code correct?") that a cheaper model could handle perfectly well.
|
|
44
|
+
|
|
45
|
+
## Why Agents Need Routing
|
|
46
|
+
|
|
47
|
+
A router — specifically, a per-query intelligent router — solves three concrete problems for AI agents:
|
|
48
|
+
|
|
49
|
+
### 1. Rate Limits Will Kill Your Agent
|
|
50
|
+
|
|
51
|
+
Popular models (GPT-4o, Claude Sonnet) get rate-limited constantly. When an agent's single provider hits its limit, the agent either blocks waiting for reset or fails mid-task.
|
|
52
|
+
|
|
53
|
+
A router with 47+ providers means your agent has 47 fallbacks. Groq hitting limits? Route to DeepSeek. DeepSeek slow? Try NVIDIA. The agent never stalls.
|
|
54
|
+
|
|
55
|
+
### 2. Different Decisions Need Different Models
|
|
56
|
+
|
|
57
|
+
Not all LLM calls in an agent loop are equal.
|
|
58
|
+
|
|
59
|
+
- **Simple classification** ("is this a bug report?"): taste-1 (free) handles this perfectly
|
|
60
|
+
- **Code generation** ("write a sorting function"): DeepSeek or Groq (cheap, fast for code)
|
|
61
|
+
- **Architecture analysis** ("find the root cause of this race condition"): GPT-4o or Claude (premium reasoning)
|
|
62
|
+
- **Summarization** ("what did we change in this session?"): GPT-4o-mini (mid-tier, fast)
|
|
63
|
+
|
|
64
|
+
A smart router classifies each query in <1ms and routes it to the cheapest capable model. The agent doesn't need to know which model is running. It just gets results.
|
|
65
|
+
|
|
66
|
+
### 3. Cost Control at Agent Scale
|
|
67
|
+
|
|
68
|
+
Agents burn tokens fast because they're loops. A 5-minute Agent session can consume 10-20K tokens just in thinking.
|
|
69
|
+
|
|
70
|
+
Here's the cost difference with and without routing:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
100 Agent sessions/day:
|
|
74
|
+
Without router: 100 × 17 calls × $0.005 = $8.50/day = $255/month
|
|
75
|
+
With routing: 100 × 17 calls × $0.002 = $3.40/day = $102/month
|
|
76
|
+
Savings: $153/month
|
|
77
|
+
|
|
78
|
+
1,000 sessions/day (small team):
|
|
79
|
+
Without router: $2,550/month → With router: $1,020/month → Save: $1,530/month
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The savings multiply because agents make more calls than humans do. A smart router for agents isn't a luxury — it's the difference between sustainable AI tooling and budget surprise.
|
|
83
|
+
|
|
84
|
+
## The MCP Pattern: How Agents Ask for Routing
|
|
85
|
+
|
|
86
|
+
A3M Router exposes an MCP (Model Context Protocol) server that agents can query before making an LLM call:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# Agent asks A3M: "What model should I use for this?"
|
|
90
|
+
npx a3m-router mcp-route "is this code correct?"
|
|
91
|
+
|
|
92
|
+
# A3M responds in <1ms:
|
|
93
|
+
{
|
|
94
|
+
"model": "groq/llama-3.3-70b",
|
|
95
|
+
"tier": "cheap",
|
|
96
|
+
"cost": "$0.0002",
|
|
97
|
+
"fallbacks": ["nvidia/llama-3.1-8b", "deepseek/deepseek-chat"]
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
The agent takes this suggestion and routes the actual LLM call through A3M's proxy. The routing decision is free (<1ms). The savings compound on every call.
|
|
102
|
+
|
|
103
|
+
## Practical Example
|
|
104
|
+
|
|
105
|
+
Here's what this looks like in practice with the OpenAI-compatible proxy:
|
|
106
|
+
|
|
107
|
+
```python
|
|
108
|
+
from openai import OpenAI
|
|
109
|
+
|
|
110
|
+
# Point your agent at A3M instead of OpenAI directly
|
|
111
|
+
client = OpenAI(
|
|
112
|
+
base_url="http://localhost:8787/v1", # A3M Router
|
|
113
|
+
api_key="not-needed"
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
# Agent makes calls like normal — A3M handles routing
|
|
117
|
+
response = client.chat.completions.create(
|
|
118
|
+
model="auto", # ← this triggers intelligent routing
|
|
119
|
+
messages=[{"role": "user", "content": "What does this function do?"}]
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
# Agent never knows which provider handled the call
|
|
123
|
+
# It just gets results, faster and cheaper
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Zero code changes. The agent SDKs (Claude Code, Cursor, AutoGPT) all support OpenAI-compatible endpoints. Point them at A3M, set model to `"auto"`, and the router handles the rest.
|
|
127
|
+
|
|
128
|
+
## The Future: Agents That Learn Their Provider Preferences
|
|
129
|
+
|
|
130
|
+
The next step is persistent memory. A3M already tracks which providers perform best for which query types using exponential moving average (EMA). After a few hundred agent calls, the router learns:
|
|
131
|
+
|
|
132
|
+
- *"Groq is fastest for code queries from this agent"*
|
|
133
|
+
- *"DeepSeek handles multilingual better"*
|
|
134
|
+
- *"Premium is only needed for architectural decisions"*
|
|
135
|
+
|
|
136
|
+
The agent doesn't manage this. It doesn't even need to know. The router adapts automatically based on real performance data.
|
|
137
|
+
|
|
138
|
+
That's the endgame: agents that route intelligently without thinking about it, saving 40-60% on API costs while maintaining or improving output quality.
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
*A3M Router is open source (MIT). 19.5 KB. Zero ML dependencies. Works with any OpenAI-compatible agent framework.*
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
npm install -g adaptive-memory-multi-model-router
|
|
146
|
+
npx a3m-router serve
|
|
147
|
+
# → OpenAI proxy at localhost:8787 — agent SDKs work with zero changes
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
[github.com/Das-rebel/a3m-router](https://github.com/Das-rebel/a3m-router)
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Chinese AI Directory Submissions
|
|
2
|
+
|
|
3
|
+
## 9 Platforms to Submit To
|
|
4
|
+
|
|
5
|
+
### 1. 未来百科 (nav.6ai.cn)
|
|
6
|
+
**URL:** https://nav.6ai.cn (requires manual registration)
|
|
7
|
+
|
|
8
|
+
### 2. AI工具集 (aigc.cn)
|
|
9
|
+
**URL:** https://aigc.cn (requires manual registration)
|
|
10
|
+
|
|
11
|
+
### 3. 掘金AI (ai.juejin.cn)
|
|
12
|
+
**URL:** https://ai.juejin.cn (developer community)
|
|
13
|
+
|
|
14
|
+
### 4. 思否AI (segmentfault.com/ai)
|
|
15
|
+
**URL:** https://segmentfault.com/ai (developer Q&A)
|
|
16
|
+
|
|
17
|
+
### 5. 开源中国 (oschina.net)
|
|
18
|
+
**URL:** https://oschina.net (open-source community)
|
|
19
|
+
|
|
20
|
+
### 6. 知乎AI (zhihu.com/topic/ai)
|
|
21
|
+
**URL:** https://zhihu.com/topic/ai (Chinese Quora)
|
|
22
|
+
|
|
23
|
+
### 7. CSDN (csdn.net)
|
|
24
|
+
**URL:** https://csdn.net (developer community)
|
|
25
|
+
|
|
26
|
+
### 8. InfoQ中文 (infoq.cn)
|
|
27
|
+
**URL:** https://infoq.cn (tech media)
|
|
28
|
+
|
|
29
|
+
### 9. 机器之心 (jiqizhixin.com)
|
|
30
|
+
**URL:** https://jiqizhixin.com (AI media)
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Chinese Submission Template
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
项目名称: A3M Router
|
|
38
|
+
|
|
39
|
+
英文名称: A3M Router
|
|
40
|
+
|
|
41
|
+
项目描述 (Chinese):
|
|
42
|
+
A3M Router 是一个开源的 LLM 路由代理,在 RouterArena 基准测试中排名第一(70.32分),
|
|
43
|
+
成本仅为 $0.047/1K 查询,比 GPT-5 便宜 213 倍。
|
|
44
|
+
|
|
45
|
+
核心功能:
|
|
46
|
+
- 🏆 RouterArena 排名第一
|
|
47
|
+
- 💰 $0.047/1K,比 GPT-5 便宜 213 倍
|
|
48
|
+
- ⚡ 12 个关键词信号,<1ms 路由决策
|
|
49
|
+
- 🔄 支持 47+ 提供商:OpenAI、Anthropic、Groq、Cerebras、DeepSeek、Gemini、Mistral
|
|
50
|
+
- 🧠 持久化记忆功能
|
|
51
|
+
- 📦 语义缓存(30%+ 命中率)
|
|
52
|
+
- 🔌 OpenAI 兼容 API
|
|
53
|
+
|
|
54
|
+
项目地址: https://github.com/Das-rebel/a3m-router
|
|
55
|
+
Demo: https://asciinema.org/a/RpqOZM9tFMALYWvs
|
|
56
|
+
许可证: MIT
|
|
57
|
+
编程语言: TypeScript/JavaScript, Python
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## English Template (for platforms that accept English)
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
Name: A3M Router
|
|
66
|
+
|
|
67
|
+
Tagline: #1 LLM Routing Benchmark — 213× cheaper than GPT-5
|
|
68
|
+
|
|
69
|
+
Description:
|
|
70
|
+
A3M Router is an open-source LLM routing proxy that ranks #1 on RouterArena
|
|
71
|
+
(arXiv:2510.00202) with a 70.32 score at $0.047 per 1K queries — 213× cheaper
|
|
72
|
+
than GPT-5.
|
|
73
|
+
|
|
74
|
+
Key Features:
|
|
75
|
+
- #1 on RouterArena benchmark (70.32/19 routers)
|
|
76
|
+
- $0.047/1K queries — 213× cheaper than GPT-5
|
|
77
|
+
- <1ms routing decision, no GPU required
|
|
78
|
+
- 47+ providers: OpenAI, Anthropic, Groq, Cerebras, DeepSeek, Gemini, Mistral
|
|
79
|
+
- Parallel multi-LLM execution
|
|
80
|
+
- Persistent episodic memory
|
|
81
|
+
- Semantic cache (30%+ hit rate)
|
|
82
|
+
- OpenAI-compatible API
|
|
83
|
+
|
|
84
|
+
Category: AI Infrastructure / LLM Gateway / Cost Optimization
|
|
85
|
+
|
|
86
|
+
Website: https://github.com/Das-rebel/a3m-router
|
|
87
|
+
Demo: https://asciinema.org/a/RpqOZM9tFMALYWvs
|
|
88
|
+
License: MIT
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Submission Notes
|
|
94
|
+
|
|
95
|
+
1. **Register accounts** on each platform first
|
|
96
|
+
2. **Some require Chinese phone number** verification
|
|
97
|
+
3. **Priority order**: 掘金 > CSDN > OSChina (most developer traffic)
|
|
98
|
+
4. **Auto-translate** description using Google Translate if needed
|
|
99
|
+
5. **Add logo** (240x240 recommended)
|
|
100
|
+
6. **Link back** to your GitHub for SEO
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
# A3M Router — Chinese Directory Submission Templates
|
|
2
|
+
|
|
3
|
+
All 9 platforms listed in priority order. Register accounts first, then submit.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Submission Priority Order
|
|
8
|
+
|
|
9
|
+
| Priority | Platform | URL | Notes |
|
|
10
|
+
|----------|----------|-----|-------|
|
|
11
|
+
| 1 | 掘金AI (juejin) | https://ai.juejin.cn | Most developer traffic, easiest registration |
|
|
12
|
+
| 2 | CSDN | https://www.csdn.net | Huge Chinese dev community |
|
|
13
|
+
| 3 | OSChina (开源中国) | https://www.oschina.net | Open-source community |
|
|
14
|
+
| 4 | 思否AI | https://segmentfault.com/ai | Developer Q&A |
|
|
15
|
+
| 5 | 未来百科 | https://nav.6ai.cn | AI directory |
|
|
16
|
+
| 6 | AI工具集 | https://www.aigc.cn | AI tools directory |
|
|
17
|
+
| 7 | 知乎AI | https://www.zhihu.com/topic/ai | Chinese Quora |
|
|
18
|
+
| 8 | InfoQ中文 | https://www.infoq.cn | Tech media |
|
|
19
|
+
| 9 | 机器之心 | https://www.jiqizhixin.com | AI media |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Template 1: 掘金AI (juejin) — HIGHEST PRIORITY
|
|
24
|
+
|
|
25
|
+
**URL:** https://ai.juejin.cn/submit
|
|
26
|
+
|
|
27
|
+
**Registration:** Use GitHub OAuth or手机号登录
|
|
28
|
+
|
|
29
|
+
**Submission fields:**
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
项目名称: A3M Router
|
|
33
|
+
|
|
34
|
+
标签: LLM路由 / 成本优化 / 开源 / API网关
|
|
35
|
+
|
|
36
|
+
项目描述 (English accepted):
|
|
37
|
+
A3M Router is an open-source LLM routing proxy that ranks #1 on RouterArena
|
|
38
|
+
(70.32 score) at $0.047 per 1K queries — 213x cheaper than GPT-5.
|
|
39
|
+
|
|
40
|
+
Key Features:
|
|
41
|
+
- #1 on RouterArena benchmark (70.32/19 routers)
|
|
42
|
+
- $0.047/1K queries — 213x cheaper than GPT-5
|
|
43
|
+
- <1ms routing decision, no GPU required
|
|
44
|
+
- 47+ providers: OpenAI, Anthropic, Groq, Cerebras, DeepSeek, Gemini, Mistral
|
|
45
|
+
- Parallel multi-LLM execution
|
|
46
|
+
- Persistent episodic memory
|
|
47
|
+
- OpenAI-compatible API
|
|
48
|
+
|
|
49
|
+
Category: AI Infrastructure / LLM Gateway
|
|
50
|
+
|
|
51
|
+
Website: https://github.com/Das-rebel/a3m-router
|
|
52
|
+
Demo: https://asciinema.org/a/RpqOZM9tFMALYWvs
|
|
53
|
+
License: MIT
|
|
54
|
+
Stars: 8 (growing)
|
|
55
|
+
npm: https://www.npmjs.com/package/adaptive-memory-multi-model-router
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Template 2: CSDN
|
|
61
|
+
|
|
62
|
+
**URL:** https://www.csdn.net (submit article or company page)
|
|
63
|
+
|
|
64
|
+
**Registration:** 手机号 + 验证码
|
|
65
|
+
|
|
66
|
+
**Submission fields:**
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
项目名称: A3M Router
|
|
70
|
+
英文名称: A3M Router
|
|
71
|
+
项目分类: AI开发工具 > AI API和网关
|
|
72
|
+
|
|
73
|
+
项目简介:
|
|
74
|
+
A3M Router 是开源的 LLM 路由代理,在 RouterArena 基准测试中排名第一
|
|
75
|
+
(70.32分),成本仅为 $0.047/1K 查询,比 GPT-5 便宜 213 倍。
|
|
76
|
+
|
|
77
|
+
核心功能:
|
|
78
|
+
- 🏆 RouterArena 排名第一
|
|
79
|
+
- 💰 $0.047/1K,比 GPT-5 便宜 213 倍
|
|
80
|
+
- ⚡ 12 个关键词信号,<1ms 路由决策
|
|
81
|
+
- 🔄 支持 47+ 提供商:OpenAI、Anthropic、Groq、Cerebras、DeepSeek、Gemini、Mistral
|
|
82
|
+
- 🧠 持久化记忆功能
|
|
83
|
+
- 📦 语义缓存(30%+ 命中率)
|
|
84
|
+
- 🔌 OpenAI 兼容 API
|
|
85
|
+
|
|
86
|
+
项目地址: https://github.com/Das-rebel/a3m-router
|
|
87
|
+
Demo: https://asciinema.org/a/RpqOZM9tFMALYWvs
|
|
88
|
+
许可证: MIT
|
|
89
|
+
编程语言: TypeScript/JavaScript
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Template 3: OSChina (开源中国)
|
|
95
|
+
|
|
96
|
+
**URL:** https://www.oschina.net (login → 发布项目)
|
|
97
|
+
|
|
98
|
+
**Registration:** 手机号 or GitHub OAuth
|
|
99
|
+
|
|
100
|
+
**Submission fields:**
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
项目名称: A3M Router
|
|
104
|
+
|
|
105
|
+
项目描述:
|
|
106
|
+
A3M Router 是一个开源的 LLM 路由代理,在 RouterArena 基准测试中排名第一(70.32分),
|
|
107
|
+
成本仅为 $0.047/1K 查询,比 GPT-5 便宜 213 倍。
|
|
108
|
+
|
|
109
|
+
主要特点:
|
|
110
|
+
- RouterArena 排名第一
|
|
111
|
+
- $0.047/1K 查询,比 GPT-5 便宜 213 倍
|
|
112
|
+
- <1ms 路由决策,无需 GPU
|
|
113
|
+
- 支持 47+ 提供商
|
|
114
|
+
- 并行多 LLM 执行
|
|
115
|
+
- 持久化记忆
|
|
116
|
+
- OpenAI 兼容 API
|
|
117
|
+
|
|
118
|
+
编程语言: TypeScript/JavaScript
|
|
119
|
+
许可证: MIT
|
|
120
|
+
GitHub: https://github.com/Das-rebel/a3m-router
|
|
121
|
+
Demo: https://asciinema.org/a/RpqOZM9tFMALYWvs
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Template 4: 思否AI (SegmentFault)
|
|
127
|
+
|
|
128
|
+
**URL:** https://segmentfault.com/ai
|
|
129
|
+
|
|
130
|
+
**Registration:** GitHub OAuth
|
|
131
|
+
|
|
132
|
+
**Submission fields:**
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
名称: A3M Router
|
|
136
|
+
|
|
137
|
+
标签: LLM路由 / 开源 / API网关 / 成本优化
|
|
138
|
+
|
|
139
|
+
简介:
|
|
140
|
+
开源 LLM 路由代理,RouterArena 排名第一(70.32分),
|
|
141
|
+
$0.047/1K,213倍便宜于 GPT-5。支持 47+ 提供商。
|
|
142
|
+
|
|
143
|
+
功能:
|
|
144
|
+
- #1 on RouterArena
|
|
145
|
+
- $0.047/1K (vs GPT-5 $10.02)
|
|
146
|
+
- <1ms 路由,无需 ML/GPU
|
|
147
|
+
- 47+ 提供商
|
|
148
|
+
- OpenAI 兼容 API
|
|
149
|
+
|
|
150
|
+
链接: https://github.com/Das-rebel/a3m-router
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Template 5: 未来百科 (nav.6ai.cn)
|
|
156
|
+
|
|
157
|
+
**URL:** https://nav.6ai.cn
|
|
158
|
+
|
|
159
|
+
**Registration:** 手机号 verification required
|
|
160
|
+
|
|
161
|
+
**Submission fields:**
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
项目名称: A3M Router
|
|
165
|
+
|
|
166
|
+
项目描述:
|
|
167
|
+
开源 LLM 智能路由工具,根据查询复杂度自动选择最合适的模型,
|
|
168
|
+
大幅降低 AI 推理成本。
|
|
169
|
+
|
|
170
|
+
核心数据:
|
|
171
|
+
- RouterArena 排名第一: 70.32 分
|
|
172
|
+
- 成本: $0.047/1K 查询
|
|
173
|
+
- 比 GPT-5 便宜 213 倍
|
|
174
|
+
|
|
175
|
+
链接: https://github.com/Das-rebel/a3m-router
|
|
176
|
+
许可证: MIT
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Template 6: AI工具集 (aigc.cn)
|
|
182
|
+
|
|
183
|
+
**URL:** https://www.aigc.cn
|
|
184
|
+
|
|
185
|
+
**Registration:** 手机号 verification
|
|
186
|
+
|
|
187
|
+
**Submission fields:**
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
名称: A3M Router
|
|
191
|
+
分类: AI开发工具 > LLM路由
|
|
192
|
+
|
|
193
|
+
简介:
|
|
194
|
+
A3M Router 是一款开源 LLM 路由代理,RouterArena 基准测试第一名,
|
|
195
|
+
成本 $0.047/1K,比 GPT-5 便宜 213 倍,支持 47+ 提供商。
|
|
196
|
+
|
|
197
|
+
功能列表:
|
|
198
|
+
- RouterArena 第一名
|
|
199
|
+
- 213x 比 GPT-5 便宜
|
|
200
|
+
- 47+ 提供商支持
|
|
201
|
+
- OpenAI 兼容 API
|
|
202
|
+
- 语义缓存
|
|
203
|
+
- 持久化记忆
|
|
204
|
+
|
|
205
|
+
官网: https://github.com/Das-rebel/a3m-router
|
|
206
|
+
演示: https://asciinema.org/a/RpqOZM9tFMALYWvs
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Template 7: 知乎AI (Zhihu)
|
|
212
|
+
|
|
213
|
+
**URL:** https://www.zhihu.com/topic/ai
|
|
214
|
+
|
|
215
|
+
**Note:** Posting to 知乎 requires an account with karma. Post an article instead of a topic submission.
|
|
216
|
+
|
|
217
|
+
**Article template (post to 知乎专栏):**
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
标题: 我开源了一个 LLM 路由器,成本只有 GPT-5 的 1/213
|
|
221
|
+
|
|
222
|
+
正文:
|
|
223
|
+
|
|
224
|
+
背景
|
|
225
|
+
|
|
226
|
+
大多数 AI 应用把每个查询都发送到 GPT-4o,不管复杂度如何。
|
|
227
|
+
A3M Router 分析每个查询,然后路由到最便宜的合适模型。
|
|
228
|
+
|
|
229
|
+
核心数据
|
|
230
|
+
|
|
231
|
+
- RouterArena 排名第一(70.32 分,击败 GPT-5 的 64.32)
|
|
232
|
+
- 成本: $0.047/1K 查询(GPT-5 是 $10.02)
|
|
233
|
+
- 支持 47+ 提供商
|
|
234
|
+
- 62% 成本降低
|
|
235
|
+
|
|
236
|
+
原理
|
|
237
|
+
|
|
238
|
+
使用 12 个关键词信号判断查询复杂度,无需 ML 模型,无需 GPU。
|
|
239
|
+
|
|
240
|
+
示例:
|
|
241
|
+
- "Hi" → Groq(免费层)
|
|
242
|
+
- "Debug my Python code" → DeepSeek ($0.0003/查询)
|
|
243
|
+
- "Explain quantum entanglement" → GPT-4o mini
|
|
244
|
+
|
|
245
|
+
链接: https://github.com/Das-rebel/a3m-router
|
|
246
|
+
npm: https://www.npmjs.com/package/adaptive-memory-multi-model-router
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Template 8: InfoQ中文
|
|
252
|
+
|
|
253
|
+
**URL:** https://www.infoq.cn
|
|
254
|
+
|
|
255
|
+
**Registration:** 手机号
|
|
256
|
+
|
|
257
|
+
**Submission fields:**
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
标题: A3M Router — 开源 LLM 路由器,RouterArena 排名第一
|
|
261
|
+
|
|
262
|
+
正文:
|
|
263
|
+
A3M Router 是一款开源 LLM 路由代理,在 RouterArena 基准测试中排名第一
|
|
264
|
+
(70.32分),成本仅为 $0.047/1K 查询。
|
|
265
|
+
|
|
266
|
+
核心特点:
|
|
267
|
+
- #1 on RouterArena (70.32分)
|
|
268
|
+
- $0.047/1K — 比 GPT-5 便宜 213 倍
|
|
269
|
+
- <1ms 路由决策,无需 ML 训练
|
|
270
|
+
- 47+ 提供商支持
|
|
271
|
+
- OpenAI 兼容 API
|
|
272
|
+
|
|
273
|
+
项目地址: https://github.com/Das-rebel/a3m-router
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Template 9: 机器之心 (jiqizhixin.com)
|
|
279
|
+
|
|
280
|
+
**URL:** https://www.jiqizhixin.com
|
|
281
|
+
|
|
282
|
+
**Registration:** 手机号 or 邮箱
|
|
283
|
+
|
|
284
|
+
**Submission fields:**
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
项目名称: A3M Router
|
|
288
|
+
|
|
289
|
+
项目介绍:
|
|
290
|
+
A3M Router 是开源 LLM 路由代理,在 RouterArena 基准测试中排名第一
|
|
291
|
+
(70.32分),$0.047/1K,213倍便宜于 GPT-5。
|
|
292
|
+
|
|
293
|
+
关键数据:
|
|
294
|
+
- RouterArena: #1 (70.32分 vs GPT-5 64.32分)
|
|
295
|
+
- 成本: $0.047/1K
|
|
296
|
+
- 提供商: 47+
|
|
297
|
+
- 路由延迟: <1ms
|
|
298
|
+
|
|
299
|
+
官网: https://github.com/Das-rebel/a3m-router
|
|
300
|
+
npm: https://www.npmjs.com/package/adaptive-memory-multi-model-router
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Submission Checklist
|
|
306
|
+
|
|
307
|
+
- [ ] 掘金AI: Register at https://ai.juejin.cn → Submit project
|
|
308
|
+
- [ ] CSDN: Register at https://www.csdn.net → Submit project
|
|
309
|
+
- [ ] OSChina: Register at https://www.oschina.net → Publish project
|
|
310
|
+
- [ ] 思否AI: Register at https://segmentfault.com → Submit to AI section
|
|
311
|
+
- [ ] 未来百科: Register at https://nav.6ai.cn → Submit listing
|
|
312
|
+
- [ ] AI工具集: Register at https://www.aigc.cn → Submit listing
|
|
313
|
+
- [ ] 知乎: Write article about A3M Router in Chinese
|
|
314
|
+
- [ ] InfoQ中文: Register at https://www.infoq.cn → Submit article
|
|
315
|
+
- [ ] 机器之心: Register at https://www.jiqizhixin.com → Submit
|
|
316
|
+
|
|
317
|
+
**Tips:**
|
|
318
|
+
- Register accounts first, verify phone number if required
|
|
319
|
+
- Use English template for platforms that accept it (掘金, OSChina)
|
|
320
|
+
- Add project logo (240x240) if the platform allows
|
|
321
|
+
- Link back to GitHub for SEO
|
|
322
|
+
- Priority: 掘金 > CSDN > OSChina (most developer traffic)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Competitor Alert Setup (F5bot)
|
|
2
|
+
|
|
3
|
+
From vault insight: "Set up alerts for competitors' products on HN, Reddit, and X"
|
|
4
|
+
|
|
5
|
+
## F5bot Setup (5 min)
|
|
6
|
+
1. Go to https://f5bot.com
|
|
7
|
+
2. Sign in with Google/GitHub
|
|
8
|
+
3. Set up alerts for these keywords:
|
|
9
|
+
- "litellm" (48K★ competitor)
|
|
10
|
+
- "openrouter" (major competitor)
|
|
11
|
+
- "portkey" (enterprise gateway)
|
|
12
|
+
- "llm router" (our category)
|
|
13
|
+
- "llm gateway" (our category)
|
|
14
|
+
- "model routing" (related)
|
|
15
|
+
- "a3m router" (our product)
|
|
16
|
+
4. When you get alerts, comment on those HN/Reddit threads with helpful info about A3M
|
|
17
|
+
|
|
18
|
+
## ReplyGuy Setup
|
|
19
|
+
1. Go to https://replyguy.com
|
|
20
|
+
2. Set up monitoring for same keywords
|
|
21
|
+
3. Auto-drafts replies you can approve
|
|
22
|
+
|
|
23
|
+
## Manual HN Search
|
|
24
|
+
Search weekly for:
|
|
25
|
+
- "site:news.ycombinator.com litellm"
|
|
26
|
+
- "site:news.ycombinator.com openrouter"
|
|
27
|
+
- "site:news.ycombinator.com llm router"
|
|
28
|
+
- "site:news.ycombinator.com model routing"
|
|
29
|
+
EOT
|
|
30
|
+
cat >> articles/COMPETITOR_ALERTS.md << 'EOF'
|
|
31
|
+
'
|