← QCoreAI
MULTI-AGENT ARCHITECTURE

QCoreAI vs. the multi-agent field

Every row below points at a real file in this codebase — not a slogan. Where a framework plausibly does something too (just manually, or via a separate add-on), it's marked partial, not crossed out. See the honest caveats at the bottom before you take this as the whole picture.

QCoreAI
AEVION
AutoGen
Microsoft
CrewAI
crewAI Inc.
LangGraph
LangChain
Agents SDK
OpenAI
MetaGPT
DeepWisdom
Automatic cost routing
Classifies each query (fact vs. open-ended) and picks single-model vs. graded-depth Council automatically — no hand-built orchestration graph.
orchestrator.ts — runAuto(), assessOpenDepth()
you wire the agent graph and model choice by hand
crew/process defined manually per task
you author the state graph and routing logic
handoffs are explicit, not cost-classified
fixed SOP pipeline per role
Built-in free-tier model fleet
13 providers / 40+ models (OpenRouter, Groq, Cerebras, Mistral, Together, GitHub Models, NVIDIA NIM…) ship pre-wired as zero-cost Council members.
providers.ts — OPENAI_COMPAT registry
~
any OpenAI-compatible endpoint works, but none ship configured
~
LiteLLM passthrough — bring your own keys
~
provider-agnostic, but no fleet shipped
OpenAI-model-first by design
OpenAI-model-first by design
Fully offline / local-only mode
Ollama, LM Studio, Jan, LocalAI, llama.cpp all plug into the same adapter; `localOnly` degrades gracefully to whichever runtime is actually reachable.
providers.ts local runtime adapters + agents.ts buildCouncil({localOnly})
~
local models reachable via manual config, not a first-class mode
~
same — DIY via LiteLLM/Ollama config
~
same — provider-agnostic, no shipped offline mode
Cross-module cost/savings accounting
Durable Postgres log of every routed run, aggregated per module with a live dashboard — not just a per-run token count.
smartComplete.ts + smartRunLog.ts + /admin/ai-spend
per-run usage prints only
per-run usage prints only
~
LangSmith adds this — separate paid product
~
built-in tracing, no cost dashboard
Built-in eval harness (DB-backed + LLM judge)
User-authored suites (contains/regex/llm_judge) run against any strategy, persisted with pollable progress — not a separate project you bolt on.
evalRunner.ts + POST /api/qcoreai/eval/suites
~
AutoGenBench exists as a separate, unintegrated project
test utilities, no persisted LLM-judge harness
~
LangSmith adds this — separate paid product
~
tracing only, no scored eval suites
Health-aware member selection
A flaky provider's recent failures sink it below healthy ones in council slot ordering, on top of non-fatal per-agent failure handling.
providerHealth.ts + agents.ts enumerateCandidateModels()
~
HTTP-level retry only, no cross-run health memory
~
HTTP-level retry only, no cross-run health memory
~
retry policies configurable, no health-scored selection
~
SDK-level retry only
Published Council-vs-single-model benchmark
N=40 pairwise-judged (order-randomised) benchmark: Council beats a single flagship on reasoning/writing/advice/analysis/math/coding, ties only on knowledge — with a reproducible script, not a claim.
scripts/qcore-eval.js — see docs/benchmarks/
N=40, 2026-07-12 — 2.8× cost — see docs/benchmarks/

LEGEND

Shipped and automatic~Possible, but manual / a separate add-onNot part of the framework

Historical vs. latest run — per category

Win-rate (%) vs. a single flagship. The curated historical entry is the citable baseline; the latest run is whatever a maintainer most recently reproduced — see the caveat below if they diverge.

Historical (curated N=40)Latest run (2026-07-21)
reasoning: historical 100%100reasoning: latest run 83%83reasoningwriting: historical 100%100writing: latest run 100%100writingadvice: historical 100%100advice: latest run 100%100adviceanalysis: historical 100%100analysis: latest run 67%67analysismath: historical 80%80math: latest run 100%100mathcoding: historical 67%67coding: latest run 67%67codingknowledge: historical 50%50knowledge: latest run 80%80knowledge

Caveat on the latest run: Local dev server, only ONE free-tier provider configured (OpenRouter) -- not the full free fleet the historical entry assumes, which is why the cost multiplier here (~6.2-6.4x) is roughly double the historical ~2.8x. Also notable: 'knowledge' (pure factual recall) won 67-80% here, not the ~50% tie the historical entry reports -- with only 5-6 samples per category, this could be per-category variance rather than a real shift, but it's worth a properly free-fleet-configured re-run before revising the 'auto' router's FACT-vs-Council routing rationale in orchestrator.ts on the strength of this run alone.

Where we don't claim to win

  • Ecosystem & community. AutoGen, LangGraph and CrewAI have years of public issues, plugins, tutorials and third-party integrations. QCoreAI is a single-team platform layer — younger, narrower, and without an open-source community around it.
  • Generality. LangGraph in particular is a general graph-execution engine, not just a chat-agent framework — it's used for workflows this comparison doesn't cover at all.
  • Portability. These frameworks run anywhere you can `pip install`/`npm install` them. QCoreAI's Council is a service inside the AEVION platform, not a standalone library.

Quality benchmark methodology: questions across 7 categories, order-randomised A/B to cancel position bias, judged by Claude Fable 5. N=40 pairwise-judged (order-randomised) benchmark: Council beats a single flagship on reasoning/writing/advice/analysis/math/coding, ties only on knowledge — with a reproducible script, not a claim. Reproduce it withnode scripts/qcore-eval.jsthennode scripts/sync-qcore-benchmark.jsin the backend.