Agent tools¶
The agent has 17 tools. You never call them directly — you ask a question and it picks — but knowing what exists tells you what HelioAI can be asked for.
Data access¶
| Tool | What it does |
|---|---|
search_parameters |
Hybrid search over ~83 000 speasy products. Accepts a batch of queries. |
get_timeseries |
Downloads a parameter, persists it, returns cadence, units and components. |
list_missions |
Live catalogue of providers and missions. |
search_parameters fuses two channels with Reciprocal Rank Fusion: dense embeddings
(MiniLM) for descriptions, and BM25 over id + text for exact tokens. That is why both
"magnetic field in GSE coordinates" and BGSEc land on the same product — dense retrieval
alone never sees instrument codes it was not trained on.
Results can be filtered by provider, SPASE region, or measurement type.
Event catalogs¶
| Tool | What it does |
|---|---|
list_catalogs |
Browse 217 AMDA catalogs and timetables, filtered by type or region. |
get_catalog |
Inspect one: event count, columns, time filter, where, sort_by, pagination. |
get_events_timeseries |
Download a parameter across every event in one call. |
save_catalog |
Persist your own event set in standard speasy format. |
get_catalog does the filtering agent-side on purpose. Handing a raw AMDA catalog to the
model would burn millions of tokens on data it should never read; instead the tool applies
the time window, where clause, sort and column selection, and returns a capped sample
with a warning when results were truncated.
get_events_timeseries is what makes statistical work practical: one call gives you the
same parameter across hundreds of events, which is the input to superposed epoch analysis.
Catalogs saved with save_catalog use the standard speasy format, so they open directly in
SciQLop for visual checking.
Analysis¶
| Tool | What it does |
|---|---|
run_python |
Sandboxed Python — speasy, PlasmaPy, NumPy, SciPy, Matplotlib, Astropy, geopack. |
plasma_beta |
β = nkT / (B²/2μ₀) |
gyrofrequency |
Ion and electron gyrofrequency |
debye_length |
Debye screening length |
alfven_speed |
V_A = B / √(μ₀ρ) |
inertial_length |
Ion and electron inertial length |
power_spectrum |
Welch PSD |
The PlasmaPy wrappers exist so simple quantities do not require a sandbox round-trip. Real
analysis happens in run_python, which provides helpers the agent relies on:
load_data(key)— load a previously downloaded dataset without re-fetchingclean(array)— mask CDF fill values (|x| ≥ 1e30,±inf) as NaNexport(name, array)— surface compact statistics to the model instead of raw arraysparam_card(...),document_method(...)— render provenance in the UI
export() matters more than it looks: returning a raw array or a base64 PNG to the model
costs tens of thousands of tokens; returning min/max/mean/std/shape costs about two
hundred and is what the model actually reasons over.
Literature¶
| Tool | What it does |
|---|---|
find_papers |
Search NASA ADS for papers on an event, parameter or method. |
Needs ADS_API_TOKEN (free). Used heavily by the librarian sub-agent.
Recipes¶
| Tool | What it does |
|---|---|
list_recipes |
Catalogue of the shipped scientific recipes. |
load_recipe |
Load a recipe's source and its citation. |
Delegation¶
task spawns a sub-agent with its own context window and a restricted tool set. It is the
one tool that is not in the registry — the agent loop intercepts it directly.
| Role | Purpose | Tools | Max turns |
|---|---|---|---|
parameter_hunter |
vague description → speasy IDs | search only | 4 |
data_analyst |
download, analyse, plot, detect | data + sandbox | 8 |
plasma_physicist |
PlasmaPy calculations, sanity checks | sandbox | 4 |
librarian |
multi-round ADS literature search | find_papers |
4 |
Delegation exists for context isolation, not parallelism: a parameter search that reads forty candidate descriptions should not leave forty descriptions sitting in the main conversation for the rest of the session.
The whitelist is enforced, not advisory — a role calling a tool outside its set gets an error back naming what it may use, and the tool is never dispatched.