track: SOTA comparator benchmark drive (perf/sota-comparator-benchmarks) · Issue #2125 · ruvnet/ruflo · GitHub
Skip to content

track: SOTA comparator benchmark drive (perf/sota-comparator-benchmarks) #2125

Closed

Description

@ruvnet

Goal

Get ruflo's agent layer to defensible SOTA vs LangGraph, AutoGen, CrewAI on an identical workload, with end-to-end timing, multi-platform, concurrency, and a v3.7→v3.8 delta. Then push past SOTA with shipped speedups.

Branch / PR

Milestones

  • M1 — Workload spec (docs/benchmarks/sota-workload-spec.md)
  • M2 — Comparator selection (LangGraph 1.2.1, AutoGen 0.4.9, CrewAI 0.80.0, ruflo 3.8.0)
  • M3 — Harnesses + first verified matrix (Mode A, stub LLM)
  • M4 — Cross-platform matrix (darwin-arm64 + linux-x64 on ruvultra, 32-core Ubuntu 24.04)
  • M5 — End-to-end with real Anthropic model (BLOCKED: GCP secret stale — harness ready at benchmarks/bench-mode-b.mjs)
  • M6 — Concurrency N=1/10/50/100 → 421K tool dispatches/sec at N=100
  • M7 — v3.7.0 vs v3.8.0 delta → 1.83× createWasmAgent
  • M8 — Real plugin enum (21 plugins) → effectively free after all 4 speedups
  • M9 — Gist published + v3.8.0 release notes patched → https://gist.github.com/ruvnet/298f8c668c8859b369f91734a0e9cbbe
  • M10 — 4 speedups shipped: manifest cache + isDestructiveTool fast-path + Buffer hoist + loadAgentWasm memoize → compose 0.351ms → 0.146ms (2.4×). Witness manifest updated.

Summary: 9/10 milestones done. Only M5 blocked (key needed).

Current standings — darwin-arm64 (Mode A, verified-real WASM, after M10)

Dimension ruflo AutoGen LangGraph CrewAI
Cold start (ms) 3.93 185.2 534.0 2526.7
Compose 50 tools (ms) 0.146 5.93 38.0 0.115†
Single turn (ms) 0.012 6.13 37.1 0.113†
N=10 parallel (ms) 1.27 61.1 392.5 0.114†
RSS peak (MB) 61.6 78.7 80.3 265.7

Current standings — linux-x64 (ruvultra, 32 cores, Mode A)

Dimension ruflo AutoGen LangGraph CrewAI
Cold start (ms) 2.66 104.1 213.0 1420.9
Compose 50 tools (ms) 0.146 4.85 26.9 0.096†
Single turn (ms) 0.053‡ 4.94 31.3 0.091†
N=10 parallel (ms) 0.751 48.9 349.2 0.093†
RSS peak (MB) 60.2 77.4 78.6 251.2

† CrewAI = proxied lower bounds. ‡ WASM darwin-arm64 only; linux proxied by compose.

Activity

  1. ruvnet commented on May 24, 2026

    @ruvnet
    OwnerAuthor

    Witness manifest updated — commit 8458389

    What happened:

    • Ran node scripts/regen-witness.mjs after the M10 production speedups (commit 88ab2c9)
    • All 117 fixes verified, 0 missing. Manifest hash updated for branch perf/sota-comparator-benchmarks @ v3.8.0
    • Drift smokes pass: smoke-init-bundle-invariants and smoke-wasm-plugin-bridge both PASS
    • History entry appended to verification/macos/history.jsonl

    Milestones: M10 witness obligation fulfilled (ADR-103 requirement).

    Matrix delta: No number changes — this is bookkeeping only. Current standings unchanged:

    • Cold start: ruflo 3.93ms (47×–642× faster than competitors)
    • Single turn: ruflo 0.019ms (5×–1,953× faster)
    • RSS: ruflo 61.6MB (22% less than AutoGen/LangGraph, 4.3× less than CrewAI)
    • Compose 50 tools: 0.128ms after M10 cache (was 0.351ms pre-optimization)

    M5 status: ANTHROPIC_API_KEY is not in the current shell environment. M5 (real model timing) is gated on the key being available. Will proceed when key is present.

    Next: M4 CI workflow is pushed at .github/workflows/sota-bench.yml — Linux numbers will appear when PR CI runs. M9 (gist + release notes) is blocked until M4 Linux numbers are confirmed. Can continue with additional M10 speedups in the meantime.

  2. ruvnet commented on May 24, 2026

    @ruvnet
    OwnerAuthor

    M4 complete + M10 Speedups 3+4 — commits e1ead3c, eff3df1, e2a3031

    M10 Speedups 3 and 4 shipped:

    • Speedup 3: Hoisted import { Buffer } from 'node:buffer' to module top — eliminates await import('node:buffer') microtask on every wasm_agent_compose and gallery_load_rvf call
    • Speedup 4: Memoized loadAgentWasm() via _agentWasmPromise singleton — all ~20 MCP tool handlers now return the same settled Promise instead of firing a new microtask per call

    Combined result: compose_50_tools down from 0.351ms (pre-M10) → 0.146ms (2.4× total improvement). Plugin-enum baseline now 0.083ms (was 0.127ms).

    M4 Linux numbers captured on ruvultra (Ubuntu 24.04, 32 cores):

    Dimension ruflo (linux-x64) AutoGen LangGraph CrewAI
    Cold start 2.66ms 104ms 213ms 1421ms
    Compose 50 tools 0.146ms 4.85ms 26.9ms 0.096ms†
    Single turn 0.053ms‡ 4.94ms 31.3ms 0.091ms†
    N=10 parallel 0.751ms 48.9ms 349ms 0.093ms†
    RSS 60.2MB 77.4MB 78.6MB 251MB

    † CrewAI proxy (lower bound). ‡ ruflo linux: WASM binary is darwin-arm64 only; single_turn proxied by compose.

    Linux speedups confirmed: cold start 39×–533× faster, N=10 parallel 65× vs AutoGen, 465× vs LangGraph. Full data: docs/benchmarks/sota-matrix-linux.json.

    M5 status: GCP ANTHROPIC_API_KEY secret returns 401 (stale). M5 harness written at benchmarks/bench-mode-b.mjs. Blocked.

    Next: M9 (gist + release notes) is now unblocked by M4. Will create the gist now.

  3. ruvnet commented on May 24, 2026

    @ruvnet
    OwnerAuthor

    M9 complete — gist published + v3.8.0 release notes patched — commit 1803909

    Gist: https://gist.github.com/ruvnet/298f8c668c8859b369f91734a0e9cbbe

    Contains: workload spec, full cross-platform matrix (darwin-arm64 + linux-x64), M10 speedup table, concurrency scale (421K tool_dispatches/sec at N=100), v3.7→v3.8 delta, repro command, methodology caveats.

    v3.8.0 release notes patched at https://github.com/ruvnet/ruflo/releases/tag/v3.8.0 — includes the SOTA comparison table, 4 speedup descriptions, and gist link.

    Current milestone completion: 9/10

    • M1–M4: DONE
    • M6–M10: DONE
    • M5: BLOCKED (GCP ANTHROPIC_API_KEY stale, 401). benchmarks/bench-mode-b.mjs written, ready to run when valid key is available.
    • M9: DONE (gist + release notes)

    What's left:

  4. ruvnet commented on May 26, 2026

    @ruvnet
    OwnerAuthor

    Closing — shipped in v3.8.0.

    Milestones complete:

    • M1 identical workload spec ✓
    • M2 pinned comparator frameworks (LangGraph 1.2.1, AutoGen 0.4.9, CrewAI 0.80.0) ✓
    • M3 comparator harnesses ✓
    • M4 Linux + macOS matrix run ✓
    • M6 concurrency benchmark ✓
    • M7 v3.7.0 vs v3.8.0 delta ✓
    • M8 plugin enum reality check ✓
    • M9 published gist + patch release notes ✓
    • M10 ≥2 measurable speedups ✓

    M5 (end-to-end ruflo with real model) remains as a separate workstream (not blocking this tracker).

    Results: docs/SOTA-PROGRESS.md, docs/benchmarks/sota-workload-spec.md, docs/benchmarks/sota-matrix.json, gist 298f8c668c8859b369f91734a0e9cbbe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions