Model builder · the research surface

Describe a setup. Agents debate it into a detector.

Plain English or a chart screenshot in — an argued, evidenced, replay-validated detector out. Every clause is debated, every similar past setup is retrieved from memory as evidence, and nothing goes live until it has survived the loop.

  • Type it. Sentio asks clarifying questions.
  • A multi-agent debate argues every clause.
  • Can't go live until replay validation passes.
The flow

Six steps. From a sentence to a live model.

Every step below is a real thing the builder does — no hand-wave. Steps 4 and 5 are gates: a model that fails replay validation cannot go live, and no primitive that is not in the registry can appear in the spec.

1DESCRIBE

Describe the setup.

Type it out the way you would explain it to another trader. Or attach a chart screenshot — Sentio's vision model reads the geometry and fills in the description for you.

You describe

"ES sweeps London high on 15m, NQ fails to confirm, then bearish displacement + 5m FVG retracement during NY."

2CLARIFY

Answer clarifying questions.

The compiler will not invent operators it does not understand. If your description is ambiguous — which timeframe, which session, retest within how many bars — it asks. You answer in the same chat.

Clarify
Which timeframe for the FVG retest?
5m
Retest within how many bars?
6
3COMPILE

Inspect the compiled spec.

The output is a DSL of 21 primitives — sweeps, gaps, displacement, structure shifts, session windows. Nothing is hidden. If a primitive does not appear in the spec, it is not being evaluated.

Compiled spec
  1. 1. smt_divergence bearish
  2. 2. liquidity_sweep london_high 15m
  3. 3. displacement down 5m
  4. 4. fvg retest ≤ 6
  5. 5. entry session ny
4VALIDATE

Replay-validate against history.

Before you can activate a model, it must produce a non-zero hit rate against ~3000 bars of cached replay data. Compiled specs that fire zero times over the buffer are flagged.

Replay complete
Triggers0
Avg R+0.0
Win rate0%
5ACTIVATE

Activate into the live scanner.

Set the timeframes you want the model to scan on (multi-select), attach discipline rules if you want them scoped to this model, and flip the toggle. It joins the roster alongside the built-in five.

Timeframes + status
LIVE scanning ES + NQ
6REFINE

Refine with follow-up chat.

Every custom model carries a persistent chat. Ask for a tighter displacement threshold, a wider session window, an extra confluence condition — the compiler regenerates the spec, re-runs replay, and shows you the diff.

Parameter diff
min_impulse 1.2 → 1.5
session_start 09:30 → 10:00
triggers 18 → 11
Multi-agent debate

Compile. Critique. Revise.

Every compile runs the loop. Nothing ships from a single-shot prompt.

1. Compile

Compile the intent.

Reads your English (and any attached chart) and writes the DSL spec — every primitive, every parameter, every bind for entry / stop / T1 / T2. Fails loudly if the intent needs a primitive that doesn't exist.

2. Critique

Hunt for the edge cases.

The critique step reads the compiled spec and asks the hard questions. Ambiguous lookback? Missing session gate? Contradiction with the description? Every concern is logged with a severity and a suggested fix.

3. Revise

Apply the critiques.

The revision step weighs each concern and produces a revised spec that keeps the intent but fixes the fragility. Re-validates against the DSL schema; drifted revisions are rejected and the original compile is kept.

Self-improving models

Fails validation? It fixes itself — and shows its work.

A failed replay is not the end of the road. Sentio hands the same agents the evidence — every trigger, its outcome, how many bars it took to stop out, whether T1 was ever reached — and runs a repair loop that is measured at every step. Nothing is applied on opinion. Only on numbers.

1. Diagnose

Read the losses, not the totals.

The diagnosis step sees each trigger individually: "six of seven losses were stopped on the next bar — the stop sits inside 5-minute noise." It is also told what every parameter actually means, so it cannot mistake a fractal strength for a lookback length.

2. Revise

Change the fewest parameters.

The revision step edits the spec to address the evidence while keeping what you described. Questions only you can answer — "does prior-day low mean the session's absolute low?" — are flagged as needing your input, not guessed.

3. Re-validate

Keep it only if it measurably helped.

The edited spec is replayed on the same history. It stays only if it now passes the gate, or its win rate improved. Otherwise it is reverted and the loop stops — it will not make a model worse to look busy. Up to three rounds, automatically, or whenever you press IMPROVE.

Every change is on the record. The improvement log shows each round as a changelog: what changed, line by line; why, as critique paired with verdict; the numbers before and after; kept or reverted. Your own manual edits land in the same log. Any kept round can be restored with one click.
Retrieval-augmented improvement

The agents don't just see this trade. They see every one before it.

Every resolved trigger and every improvement round is embedded and stored in your private retrieval index. When the loop runs again, the agents pull the most similar past events by symbol, regime, and setup shape — so the critique step reasons against precedent, not just the numbers in front of it.

01

Index as you trade.

Each resolved setup — win, loss, or unfilled — is written to a local vector store the moment its outcome is known. So is every improvement round, with its critiques and before/after numbers. No manual tagging, no exports.

02

Retrieve when it matters.

Before the critique step runs on the current spec, Sentio pulls the top handful of similar past events — same symbol, same volatility bucket, similar setup shape — and hands them to the agents as precedent.

03

Reason from your history.

The critique now reads "this spec lost the last three times VIX was elevated on NQ shorts — the wick fills were tight." The revision edits from that, not from a fresh guess. Your model gets smarter each week — because it remembers.

Private, per-account, and portable. The retrieval index is scoped to your account and lives on Sentio's servers alongside your journal — nothing goes to a third-party AI provider except the small snippets fed into a given debate. You can clear the index or export it at any time from Settings.
21 primitives

The whole vocabulary. On one page.

The compiler will not use anything outside this list. If you describe a concept it does not recognise, it says so and asks you to phrase it in terms it can compile.

Liquidity & sweeps

  • liquidity_sweep Wick through prior swing or session H/L.
  • key_liquidity Reference to session H/L, PDH/PDL, weekly open.
  • equal_highs Cluster of equal highs — resting sell-side liquidity.
  • equal_lows Cluster of equal lows — resting buy-side liquidity.

Structure & displacement

  • market_structure BOS or CHoCH on a specified timeframe.
  • displacement ATR-qualifying impulse move — up or down.
  • cisd Change in state of delivery — closing through the last opposing candle.
  • order_block Last opposing candle before a displacement leg.

Gaps & polarity

  • fvg Fair value gap on a specified timeframe.
  • inverse_fvg FVG that has been traded through and now flips polarity.
  • bpr Balanced price range — bullish + bearish FVGs overlapping.
  • breaker_block Failed order block — the polarity-flipped zone.

Confirmation & context

  • smt_divergence Correlated tickers disagree (ES sweeps, NQ does not).
  • session_window Constraint: only fire during a named session.
  • retest Return to a level within N bars.
  • confluence Two or more independent conditions align.

Timing & delivery

  • entry Terminal — where the trade would fire.
  • invalidation Where the setup dies.
  • target Target level — R-multiple or liquidity magnet.
  • time_of_day Filter by clock: killzone windows, macro cutoffs.
  • candle_close Require close relative to a level, not just wick.
Why this beats "AI trading bots"

The compiler cannot invent operators. That's the point.

Most AI-driven trading products generate free-form English and hope. Sentio's builder is bounded to a fixed grammar. If an idea cannot be expressed in the DSL, the compiler tells you and asks you to rephrase — rather than silently interpreting your words into something that fires unpredictably. The trade-off is intentional: you get transparency and replay-testability, and you always know what the scanner is actually looking for.

  • Bounded grammar. 21 primitives, all inspectable in the app.
  • Replay-gated. Zero-hit specs cannot activate.
  • Vision-in. Screenshot → filled description, ready to compile.
  • Iterative chat. Refinement persists per model, across sessions.
  • Per-model timeframes. Multi-select which frames the model scans on.
  • Discipline-aware. Attach rules that scope only to this custom model.

Describe the setup only you take. Ship it.

Free plan includes 3 model drafts. Trader is unlimited.