Belvedere Labs/Flue × Eve
comparing Flue vs Eve GitHub
10 agents·6 frontier models · 3 providers·~2 min end-to-end

Drop your data. Get an analyst's answer in a few minutes.

CSV, Excel, JSON, NDJSON, PDFs, images. Ten specialised Flue agents profile your file, test hypotheses, run the math on the rows themselves, red-team every finding, and write a sourced report. The math runs deterministically on your actual rows, and the writer agents work from a locked ledger of those computed figures — the Eve build runs the exact same deterministic compute, so you can compare the two frameworks head-to-head.

Choose a framework
no CSV?

Each sample is bundled with the app and ships with a starter question — you can swap it for your own once the run lands on the dashboard.

Inside the Swarm

10 specialised agents. One pipeline. Different models.

Each agent runs on the US frontier model best-suited to its job — routed via OpenRouter. Click any agent for its prompt, model, and config.

#AgentTaskModel

Field Notes

Why we built on Flue.

Four things that paid off shipping a multi-agent data-analysis pipeline on flueframework.com.

01

Agents are single-file

System prompt, model, sandbox, payload type, and result schema all colocated in .flue/agents/<name>.ts. Reading the critic agent tells you everything that critic does — no registry to grep, no factory to chase, no config file living in a different folder.

02

Schemas at the boundary

Every model agent declares a valibot Result schema and passes it straight into session.prompt. Flue validates the LLM's output before anyone sees it, so hallucinations show up as a typed boundary error — never as a JSON.parse blowing up two agents downstream.

03

One runtime for every agent

Pure-compute steps (intake, profiler, quality) and model-driven steps (hypothesis, critic, synthesis) ride the exact same webhook contract. Deterministic CSV math and stochastic reasoning live side-by-side, deployed together, debugged the same way.

04

The pipeline is just TypeScript

The agents — with a parallel branch (analyst ∥ trend) and three fan-ins — are sequenced in plain TypeScript using await callFlue(...) and Promise.all. The DAG is control flow you read top to bottom, no graph DSL between you and the work.

Flue DLS · v0.3
flueframework.comgithub