Answer card
An "AI stock trading bot" is a single frozen strategy wrapped in a UI: toggle it on and it runs the same logic until you toggle it off. Kestrel is not a bot. It is an open-source language and runtime in which an agent authors, grades, and recomposes strategy every session. Want hands-off and turnkey? A bot is simpler. Want a machine that reasons about the market and proves its judgment? Start free in SIM; a Grade is never flattering.
The category confusion
"Bot" names a runtime shape, not a capability. A bot is a compiled decision: someone froze a strategy into parameters, and the product's job is to keep executing that frozen thing reliably. That is genuinely useful: for a hands-off human who wants a rules engine that never sleeps, a good bot is the right tool and the honest recommendation.
But most "AI stock trading bots" borrow the word "AI" for the marketing and keep the frozen-strategy architecture underneath. The model, if there is one, tuned some weights once. It is not in the loop. It does not read the tape each morning, form a thesis, express it, arm it, and get graded on whether its judgment was any good.
Kestrel starts from a different claim, the Interface Thesis: the two failures of LLM trading are interface, not intelligence. Models are smart enough. They fail because they cannot perceive the market inside a context window, and because they are too slow to be in the execution path. Fix perception and latency and the intelligence was never the bottleneck.
What the bot abstraction hides
A bot collapses four different jobs into one opaque "strategy" blob. Kestrel keeps them as four statement kinds over one lexical core, so each is separately authored, budgeted, and graded:
- VIEW (perception). The market rendered as a compact text Frame: the chart is in text. A vertical, append-only tape, one row per candle, relative candles in basis points versus prior close, anchored by keyframes. Perception cost is O(new bars), not O(screen), and KV-cache-friendly. A bot never has to solve this because a bot never reads.
- WAKE (attention). A standing subscription over a trigger algebra: event-driven, not polling. It spends attention (tokens/wakes), never risk.
- PLAN (latency). A standing, bounded-risk contingent program: trigger to actions to bracket to invalidation to TTL. The runtime fires in milliseconds and wakes the agent in parallel, fire-then-inform. The agent is never in the hot path.
- GRADE (trust). The honest, counterfactual result of a run. Contamination-fenced: LLM authors are graded only on post-training-cutoff, date-blinded days. It grades judgment, not parameters.
A bot gives you one strategy. Kestrel gives you a language in which a strategy is a paragraph an agent can write, delete, and rewrite tomorrow.
How an agent could express a play
Illustrative only: generic instruments, not a strategy reveal and not advice. This is how an agent could express a momentum-continuation idea; you would deploy a template like this into your own pod and arm it yourself.
IMPORT { fade-ladder } FROM "./armory/reversion.kestrel"
USING signal SPX exec SPY 0dte
PLAN momentum-break budget 3R ttl +45m regime {intraday: trend-up}
WHEN spot crosses above HOD AND velocity(5m) >= p95 held 120s
DO buy 1 atm C @ lean(bid,fair,0.5)
RELOAD WHEN spot crosses above HOD buy 1 +1 C @ fair-3c
TP 2x frac 0.5 @ fair
EXIT velocity(5m) < p50 @ bid
INVALIDATE spot crosses below HOD
WAKE momentum-break
WHEN velocity(5m) >= p90
DELIVER breakout-frame
BUDGET 20 wakes/day
GRADE plan momentum-break OVER 2026-05..2026-06 FILL conservative
VS null
BY regimeNote what a bot cannot say: VS null and the contamination-fenced GRADE. A bot reports its own backtest. Kestrel reports the counterfactual (did the judgment beat doing nothing) and refuses to bank extrapolated fills. A quote is not a value, and a backtest is never flattering.
The comparison
| Dimension | Typical "AI stock trading bot" | Kestrel + kestrel.markets |
|---|---|---|
| Primary reader | Human clicking a dashboard | A model that reads, parses, cites, and acts |
| Perception model | None; logic runs on numeric feeds | VIEW: the chart is in text, O(new bars) not O(screen) |
| Agent in the hot path? | N/A (no agent in loop) or yes (blocking) | No; fire-then-inform, runtime fires in ms |
| Latency floor | Varies; often polling loops | Millisecond contingent PLAN execution |
| Native interface / MCP | Proprietary UI/API; MCP rare | Four equal faces: HTTP+SSE canonical, TS SDK, CLI, MCP |
| Agent-native auth (Envelope) | Typically none | Envelope {scope, budget, ceiling, expiry, revocation}; two-signer |
| Machine payment | Human card on file | Agent wallet (Stripe MPP / x402) or human claim-and-fund |
| Evaluation honesty | Vendor backtest, often un-fenced | GRADE: contamination-fenced, date-blinded, VS null / VS ungated |
| Provenance | Marketing screenshots | Certified Blotters + Grades, shareable proof URL |
| Live model (custody) | Sometimes custodial / pooled | Certification over custody; BYO broker via OAuth, no custody |
| Data licensing | Varies; often opaque | Databento served as derived works + BYO Alpaca |
| Activation path | Sign up, add card, subscribe | Proof-before-account: trial capability, free catalog, free SIM |
| Pricing | Monthly subscription | Free to author + SIM; paid boundary as HTTP 402 offer |
| Best for | Hands-off human wanting turnkey rules | An agent that reasons, expresses, and is graded per session |
Where a bot wins
Be radically fair. If you are a hands-off human who does not want to think about the market (no thesis, no re-authoring, just "turn it on"), a turnkey bot is simpler and it is the honest choice. A bot has no learning curve, no language to learn, no agent to orchestrate. It ships today, fully productized. Kestrel, by contrast, is a language and a runtime. 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. If you want to click one button and walk away, a bot beats a platform whose live path is still in build.
Where Kestrel is NOT the fit
- You have no agent. Kestrel's primary reader is a model. If you are not running an LLM in the loop and do not intend to, most of the value evaporates; you would be hand-writing a language built to be machine-authored.
- You want the platform to pick trades for you. Kestrel is impersonal by design: never "we recommend / you should trade." It is BYO-plan and BYO-broker. It is an open judge that sells certification; it is not investment advice and it will not tell you what to buy.
- You want a finished, turnkey product this quarter. Founding-stage honesty: host the scarcity, rent the genius is the thesis, not yet a complete feature set. A polished bot is more complete right now.
- You want custody or a pooled fund. Kestrel never takes custody. If you want someone to hold and trade your money for you, that is a different category entirely.
Why the abstraction still matters
Weights are getting cheaper; judgment is getting abundant. When intelligence is cheap, the scarce things are capital and trading authority, licensed data, deterministic execution, and provenance: the airport, not the pilots. A bot rents you one pilot's frozen flight plan. Kestrel gives your agent the language to file a new one every session, and the honest grade to know whether it should have. Names are data: a recurring PLAN name is one strategy with many graded instances, not a black box.
That is the difference between a product you run and a language you reason in.
A bot is one frozen strategy you rent; Kestrel is a language your agent re-authors, grades, and recomposes every session.