Ask, inspect and run from the assistant

Ask about the run on screen and the assistant reads it through the same tools the interface uses. Ask for a figure and it opens the panel. Ask for a test and it builds the graph, registers the hypothesis and launches the engine, one action at a time, each one visible on the desk.

A validation conversation in the workspace

Ask the assistant to examine the validation protocol. Its reply stays next to the strategy, and names the evidence it needs before drawing a conclusion.

A recorded exchange with the built-in assistant about training, validation and a sealed test set. Captured from the current app; the reply is unedited.Open full size
A recorded exchange with the built-in assistant about training, validation and a sealed test set. Captured from the current app; the reply is unedited.

The tools it serves

27tools
tools the assistant can call, the list the runtime serves; a tool the model invents receives that list back by name
Measured

Each tool is either a read of what the app already holds or an action on the desk. The reads return the graph, the results and the readings of a finished run, the engine log, the catalogue search, the instruments a data source lists and the quality of a series. The actions build a graph, wire a family, set a parameter, open a figure, launch a backtest, save or open a desk, and write a custom node file. An action is echoed on the desk as it happens, in the status bar and in the session journal.

Readsearch_nodes · list_nodes · read_chart · get_readings · get_trade_journal · list_desks · compare_runs · data_quality · get_paper · get_graph · get_results · get_log · list_instruments · search_knowledge · read_file
Actregister_verdict · wire_family · unwire_node · show_chart · set_param · save_desk · open_desk · propose_paper_edit · build_graph · run_backtest · write_file · edit_file

The two lines above are computed from the served list at build time. The runtime keeps the same list next to its dispatch table, and a test fails when one drifts from the other, because a list copied by hand is a promise that expires without a sound.

The assistant inspects the visible entry-behaviour chart through its tools and explains the recorded result. The chart and the unedited conversation are shown together.Open full size
The assistant inspects the visible entry-behaviour chart through its tools and explains the recorded result. The chart and the unedited conversation are shown together.

A run has a pre-flight card

Before the assistant launches a backtest, the desk shows a card that names what the graph lacks: a market without a cost declaration, a split without purge, a validation node missing. The card warns, then allows. The run button reads the same card, so a graph the assistant repaired and a graph you repaired by hand pass the same check.

A bespoke rule that no catalogue node expresses is written as a custom node file, and the file is the node: the engine re-reads it at run time, a decision at bar t reads bars up to t minus one and no later bar, and an import outside numpy, pandas, math and statistics is refused at compile time.

Two commands that change the frame

/verdict <one hypothesis, with the market and the data available>
/research [@agent ...] [rounds=N] [budget=N] <topic>
/stop

/verdict carries one hypothesis from a fresh build to the engine verdict. The assistant inventories the data, searches the catalogue, builds the complete graph, then registers the hypothesis and the exact graph before any result exists. The command authorizes that one run; after launch the graph is frozen and a second trial is refused. The deterministic adversarial battery runs on its own once the run ends and appends its receipt. The assistant explains the evidence and its limits; the verdict is assigned by the engine and the assistant has no tool that changes it.

/research opens a session with several agents on the topic, described on its own page. /stop ends a running session at the next turn, and reaches it even while the assistant is answering.

Where it stops

The model answers through a relay

Scope
the assistant calls of the desk and of a Research session
Effect
the relay keeps the provider key and applies a per-licence rate; a burst of tool calls can hit that rate, and the refused call is shown as such in the conversation
Control
the token counter under the input shows the tokens of the current turn; the relay refusal is displayed as an error in the conversation, never as an empty answer

An action is proposed by the model, executed by the app

Scope
the graph, the figures, the runs and the desk files
Effect
a tool call outside the served list is refused with the list; a graph change after a /verdict launch is refused as frozen
Control
the served list is compared to the dispatch table by a unit test, and the frozen state is read from the command record