Every number,
grounded before written.
The model calls three tools before it writes a word: get_sector_snapshot, get_crowding, get_recent_news. Nothing is hallucinated. Every claim ships with an invalidator.
- ·01model
Need to write a thesis for AI & Compute rotation. Let me pull the snapshot first.
- ·02tool callget_sector_snapshot()
{ sector: "ai-compute" }
- ·03tool resultget_sector_snapshot()
{ ssi_7d: +18.4, ssi_30d: +42.1, etf_flow_1d: 412, etf_flow_acc_20d: 1.42, rebalance_add: 2 }
- ·04tool callget_crowding()
{ sector: "ai-compute" }
- ·05tool resultget_crowding()
{ exposure_pct: 34, trailing_max_pct: 68, top_trader_pos: "0x71..4a2 long 42%" }
- ·06tool callget_recent_news()
{ sector: "ai-compute", categories: [5, 6, 9] }
- ·07tool resultget_recent_news()
{ headlines: 3, sentiment: "positive-driven-by-rebalance", macro_events: ["FOMC 48h"] }
- ·08model
All three inputs grounded. Composing thesis + bull + bear + invalidator...
SSI-AI is +18.4% on the week while leaderboard exposure is only 34% of trailing max — smart money hasn't fully rotated yet. Fresh ETF inflows accelerating 142% above 20-day average. This is the first inning.
Rebalance adds 2 new constituents Friday. Flow acceleration + light positioning = room to run.
Macro FOMC in 48h could pull risk-off. Rotation is only 3 sessions old — not yet confirmed.
If SSI-AI closes below its 7d VWAP with flow deceleration, thesis is dead.
- · Every % in the thesis maps to a tool_result value.
- · The invalidator is a specific, checkable condition — not vibes.
- · Confidence is a bounded number, not "very likely".
- · If a tool call fails, the sector is silently dropped from the feed.