← 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-on—Not 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.