Answer card
CrewAI gives you multi-agent orchestration: roles, tasks, and a crew that delegates and confers. To trade, you still bolt it onto a broker and hand-build everything below: how the model sees the market, how orders fire faster than a model can think, and how results get proven. Kestrel makes perception, a millisecond latency floor, and certified evidence into language primitives. Choose CrewAI to coordinate many agents; choose Kestrel when one agent must perceive and act inside a market.
What each thing actually is
CrewAI is a multi-agent orchestration framework. You define agents with roles, goals, and backstories, give them tasks, and the crew coordinates (sequentially or hierarchically), passing context between members. It is genuinely good at what it is for: decomposing a fuzzy objective across specialists (a "researcher," an "analyst," a "risk reviewer") and letting them confer. For general multi-agent work, CrewAI wins, and this article will not pretend otherwise.
Kestrel is an open-source language and runtime for agentic trading. It is not a crew of collaborating personas; it is four statement kinds over one lexical core, VIEW (perception), WAKE (attention), PLAN (latency), GRADE (trust), plus a recursive pod org model with platform-enforced risk controls. The distinction matters because of the thesis Kestrel is built on:
The two failures of LLM trading are interface, perception and latency, not intelligence.
More agents is an intelligence-layer bet: point more reasoning at the problem. That bet does not touch either interface failure. A trading crew coordinates the reasoning beautifully and still perceives the market through pasted JSON and still sits in the execution hot path.
The org model is where the analogy breaks
CrewAI's central abstraction is the crew: agents with roles delegating to one another. That reads like it should map onto a trading desk, and superficially it does, until you ask what the coordination is authorized to do.
Kestrel's org model is a recursive POD tree: a PM pod allocates bounded risk envelopes to child Books and Traders. Budgets nest, and authority only ever narrows downward. A risk layer (L0) can clamp or veto anyone, including the agent, and may never open risk. LIVE is a platform-enforced singleton. This is not a coordination convenience; it is a containment structure. A CrewAI hierarchy delegates tasks; a Kestrel pod delegates risk authority with a ceiling the child cannot exceed and a veto the parent (and the platform) can always exercise.
That difference is the whole game in a domain where a coordination bug spends real money. In CrewAI, if a manager agent over-delegates, you get a wrong answer. In an unfenced trading crew, you get a fill.
The three things a crew still leaves you to build
1. Perception: what does each agent actually read?
In a CrewAI trading crew, every agent perceives the market through whatever you stuff into its context: a JSON bar array, a CSV dump, a tool that returns quotes as text. Each agent, each wake, re-reads the whole payload. Perception cost scales with what you paste, O(screen), and multiplies by the number of agents looking.
Kestrel makes perception a primitive. A VIEW renders the market as a compact text Frame (the chart is in text), a vertical, append-only tape, one row per candle, newest last, relative candles quoted in basis points versus the prior close and anchored by periodic keyframes. Because it is append-only, perception cost is O(new bars) not O(screen), and the unchanged prefix stays KV-cache-friendly.
VIEW tape budget 1200
price 1m
velocity 5m
keyframe 30mThat is not a nicer chart. It is a different complexity class for how a model sees a market, and it does not get cheaper by adding a second agent to look at the same JSON.
2. Latency: is a crew ever in the hot path?
Yes, and worse than a single agent. A CrewAI crew that reasons, confers, then places an order has stacked model-inference latency plus inter-agent handoff latency in front of the fill. On a fast move, the crew is still deliberating while the fill you wanted is gone.
Kestrel's PLAN is a standing, bounded-risk contingent program (trigger, actions, bracket, invalidation, TTL) that the runtime fires in milliseconds and wakes the agent in parallel. This is fire-then-inform: the agent is never in the hot path.
IMPORT { fade-ladder } FROM "./armory/reversion.kestrel"
USING signal SPX exec SPY 0dte
PLAN headline-chase budget 0.25R ttl 15:55 regime {intraday: trend}
WHEN spot crosses above HOD AND velocity(5m) >= p95
DO buy 2 +1 C @ min(fair, mid) peg cap fair
RELOAD WHEN spot > HOD held 120s buy 1 +1 C @ lean(bid, fair, 0.5)
TP 2.5x frac 0.5 @ fair
EXIT spot < VWAP held 120s @ fair
INVALIDATE velocity(5m) < p50The crew, if you want one, authors and arms plans in slow time; the runtime executes in fast time. CrewAI gives you no place to put this distinction, so by default your agents are in the hot path, and a crew puts more of them there.
3. Provenance: can you prove what the crew did?
When a crew glues its reasoning to a broker, the record is whatever your logs happen to capture, spread across several agents' traces. "The crew made money last week" is a claim, not evidence, and a backtest is never flattering when it is done right; done right means fenced against the ways it flatters itself. LLM authors are especially exposed: weights leak what code fences can't stop, so a model quietly recalling a date it trained on will ace a "backtest" for reasons unrelated to skill.
Kestrel makes evidence a primitive. Every run produces a certified Blotter and a GRADE, the honest, counterfactual result. Grades are contamination-fenced: LLM authors are graded only on post-training-cutoff, date-blinded days, so the grade measures judgment, not memorized parameters. The counterfactuals live in the syntax.
GRADE plan headline-chase OVER 2026-01..2026-03 FILL conservative
VS null
BY regimeThe comparison table
| Dimension | CrewAI + broker API | Kestrel (+ kestrel.markets) |
|---|---|---|
| Primary reader | Human developer wiring Python crews; agents reason ad hoc | A model; VIEW/WAKE/PLAN/GRADE are for the agent to author and read |
| Perception model | Whatever you paste into each agent's context (JSON/CSV), O(screen), times N agents | Frame: chart-in-text tape, relative bps candles, O(new bars) not O(screen) |
| Agent in the hot path? | Yes, and stacked: inference latency plus inter-agent handoff before the fill | No; fire-then-inform; runtime fires, agent(s) informed in parallel |
| Latency floor | Model inference plus crew coordination (seconds, compounding) | Runtime-fired PLAN in milliseconds; agent off the critical path |
| Native interface / MCP | Python library; MCP possible but you wire it | HTTP+SSE canonical; TypeScript SDK, CLI, MCP as thin equal faces (same operation IDs) |
| Agent-native auth (Envelope) | None; crew holds raw broker API keys | Envelope {scope, budget, ceiling, expiry, revocation}; two-signer (wallet for commerce, human for LIVE) |
| Machine payment | None native; you provision billing | HTTP 402 offer settled by agent wallet (Stripe MPP / x402) or human claim-and-fund |
| Evaluation honesty | DIY logs across agent traces; backtests self-flatter; no contamination fence | Certified Blotters + Grades; contamination-fenced (post-cutoff, date-blinded); VS ungated / VS null |
| Provenance | Whatever each agent logs; not portable or certified | Deterministic Blotters + shareable Proof URL |
| Live model (custody) | Crew holds broker keys and integrates directly | BYO broker via OAuth (roadmap; paper adapter in build); platform takes no custody; LIVE is a platform-enforced singleton |
| Data licensing | You source and license your own feeds | Databento served as derived works (no raw redistribution) + BYO Alpaca |
| Activation path | Sign up, get API keys, write and host crew code | Proof-before-account: trial capability → free catalog → SIM → Proof URL → 402 at the paid boundary |
| Pricing | Framework free (OSS); you pay infra, data, broker separately | Kestrel OSS is free; kestrel.markets rents the scarcity (data, compute/latency, certification) |
| Org / risk model | Role hierarchy delegates tasks; no authority ceiling | Recursive pod tree delegates risk authority; L0 can veto anyone, never opens risk |
| Best for | General multi-agent orchestration, research crews, decomposable non-trading work | One agent that must perceive a market, act in milliseconds, and be graded honestly |
Where the table describes the CrewAI side generically, that is deliberate: a crew plus a broker is a construction kit, so its "spec" on each row is whatever you build.
Where CrewAI wins, honestly
A comparison that only flattered Kestrel would be exactly the kind of claim this project refuses to make. So, plainly:
- General multi-agent orchestration. This is CrewAI's home turf and it wins there. If your real problem is coordinating specialists (a researcher, a writer, a reviewer), CrewAI's role/task model is the right tool and Kestrel is irrelevant.
- Decomposable, non-trading workflows. Filings summarization, report generation, ticket routing, multi-step research: point a crew at it. Kestrel models markets and nothing else.
- Reasoning-heavy, latency-tolerant analysis. If the job is "several agents think hard about a thesis over minutes" and no order fires on a fast tape, the hot-path problem never bites and the crew's deliberation is a feature.
- You already own the scarce parts. If you have licensed data, low-latency infra, an execution layer, and a compliance posture, you may not need a platform to rent you those, and CrewAI slots into a stack you already control.
Where Kestrel is NOT the fit
Equally plainly, do not reach for Kestrel when:
- The problem is orchestration, not perception-under-time-pressure. If coordinating many agents is the hard part, Kestrel's narrow four-surface grammar buys you nothing. Use CrewAI.
- You need arbitrary tool graphs. CrewAI composes tools and roles Kestrel never modeled. Kestrel is deliberately narrow by design.
- Nothing acts under time pressure. If there is no fill to miss, fire-then-inform solves a problem you do not have.
Kestrel's own status honesty applies here too. As of mid-2026: anonymous trial sims, certified Grades, shareable proof URLs, and 402 Offers with Stripe settlement are live; always-on paper presence and the human-signed live path are in build. The free tier needs no signup.
The two are not even mutually exclusive: a CrewAI crew can be the author (several agents research a thesis and agree on a plan) while Kestrel is the language that plan is written in and the runtime that fires it. Orchestration on top, a trading language underneath.
How to choose
Ask one question: is the hard part coordinating many agents, or one agent perceiving a market and acting inside it under time pressure with a result you can prove? If it is coordination, reach for CrewAI: that is what it is for, and it is good at it. If it is perception, latency, and provable results, note that a crew leaves all three for you to assemble, and that a crew puts more agents in the hot path, not fewer. Kestrel ships perception, a millisecond latency floor, and certified evidence as primitives: sell the airport, not the pilots. Host the scarcity, rent the genius, and let the agents bring their brains from outside.
None of the plays above are recommendations; they are illustrations of how an agent could express an idea in the grammar. You would deploy a template into your own pod and arm it yourself. This is not investment advice.
Citable one-liner
CrewAI orchestrates the agents; Kestrel is the language they speak to the market, because the two failures of LLM trading are interface, perception and latency, not the number of agents you point at the problem.