Trio-Spark
Current release: Trio-Spark v1.3 Β· October 15, 2026
Trio-Spark is MachineFi's hosted Situated World Model for bounded decisions. Give it the current state and 2β8 allowed actions. One pass returns a selected action and a probability for every option, with no free-form answer to parse.
This repository is a model card for the commercial API. Model weights and training code are not distributed here.
Try the playground Β· Get an API key Β· API docs Β· Demos and clients Β· v1.3 release post
What it does
environment signals β current state β Trio-Spark β selected action β executor
β β
βββββββββ fresh feedback βββββββ
Your application supplies the state, legal actions, executor and safety controls. Spark handles the bounded judgment step: routing, tool selection, GUI actions, game moves, robot skills and operational decisions.
Input can be structured text or JSON, one image or camera frame, or a 2β4-frame sampled video window. v1.3 updates text decisions; image and sampled-video behavior is unchanged. The API accepts 2β8 choices and at most 1,024 expanded input tokens, including task, state, choices and any visual input.
API quickstart
Sign in to the Trio-Spark console, select API Keys, and create a key. Set it as TRIO_SPARK_API_KEY in your environment.
curl https://platform.machinefi.com/api/spark/v1/decisions \
-H "Authorization: Bearer $TRIO_SPARK_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "trio-spark-v1.3",
"task": "The user asked to export the current report as CSV. Choose the next safe UI action from the available controls.",
"state": {
"app": "Reports",
"screen": "Report details",
"visible_controls": ["Export menu", "Filters", "Help"]
},
"choices": [
{"id": "open_export_menu", "description": "Open the Export menu"},
{"id": "open_filters", "description": "Open report filters"},
{"id": "wait", "description": "Wait for more information"}
]
}'
Use choice_id to identify the selection. The response includes the complete probability distribution, confidence, a decide, review or abstain disposition, usage and latency. Reuse the same idempotency key and identical request body when retrying an uncertain request.
The recommended public model ID is trio-spark-v1.3. Older aliases remain compatible and route to the current served model; they do not pin historical weights. See the API docs for visual requests, System One compatibility and the full response schema.
v1.3 evaluation snapshot
On a ten-task panel of 2,977 decisions, v1.3 scored 90.9% (2,706 correct), versus 83.1% for v1.0 and 83.0% for v1.2. Its expected calibration error on that panel, using 10 bins, was 0.019.
The following developer-run evaluation uses the same items for each model. Scores are accuracy percentages on the listed samples, not full-dataset or independently certified leaderboard scores. The ten-task total covers the first ten rows; the remaining three rows are additional evaluations.
| Task (items) | Spark v1.3 | Spark v1.2 | Spark v1.0 | Jev 1.13 | Clef | Clef-Flash | Laya |
|---|---|---|---|---|---|---|---|
| AG News (300) | 90.3 | 83.0 | 83.3 | 82.7 | 87.0 | 88.7 | 91.7 |
| ARC-Easy (300) | 98.3 | 95.7 | 95.0 | 99.0 | 99.7 | 99.7 | 48.0 |
| BoolQ (300) | 91.0 | 87.0 | 87.3 | 92.0 | 92.7 | 91.7 | 80.7 |
| HellaSwag (300) | 93.7 | 80.7 | 80.3 | 95.0 | 98.0 | 98.7 | 28.3 |
| PIQA (300) | 88.0 | 78.0 | 82.0 | 95.7 | 91.0 | 90.3 | 53.7 |
| PubMedQA (300) | 81.0 | 70.3 | 67.3 | 77.0 | 77.7 | 79.7 | 57.0 |
| RTE (277) | 94.2 | 88.8 | 89.2 | 91.7 | 91.7 | 91.0 | 83.0 |
| SST-2 (300) | 95.3 | 93.7 | 94.0 | 95.3 | 94.3 | 96.3 | 91.0 |
| TweetEval offensive (300) | 86.3 | 81.7 | 82.7 | 82.3 | 82.7 | 84.3 | 78.3 |
| WinoGrande (300) | 91.0 | 72.0 | 70.7 | 89.3 | 93.7 | 98.0 | 50.3 |
| SNLI (150) | 85.3 | 84.0 | 63.3 | 75.3 | 82.7 | 82.7 | 46.0 |
| HelpSteer2 (0β4 score) (300) | 42.3 | 41.3 | 40.0 | 41.5 | 41.3 | 42.7 | 35.3 |
| Banking77 (77-way)β (300) | 88.1 | 80.5 | β | 80.0 | 94.6 | 94.7 | 38.7 |
| Ten-task panel (2,977) | 90.9 | 83.0 | 83.1 | 90.0 | 90.8 | 91.8 | 66.1 |
Method and limitations:
- Spark was evaluated through production API code and its model server, one request per item. Requests rejected by the input limit or content filter count as wrong.
- Peer results came from official APIs or the official SDK, recorded October 7β8, 2026. HelpSteer2 and Banking77 peer scores average five option orderings.
- β Banking77 has 77 choices and was evaluated offline; it is not a supported 77-choice request to the public API. v1.0 was not measured on this row.
- These numbers measure text decisions. They do not establish image, video, GUI-control or real-world task performance. Calibration on this panel does not guarantee calibrated confidence in a different application.
See the release post and protocol and downloadable results for the complete published context.
Limitations and intended use
v1.3 scores below v1.0 on MachineFi's internal GUI-action suite despite improving on the published text panel. Evaluate it on your own screens and actions before increasing automation. Latency depends on the request and workload; the evaluation table is not a latency guarantee.
Spark selects among supplied choices. It does not execute actions, operate a browser by itself, predict future frames, or provide general conversational answers. Include choices such as wait or ask for review when appropriate.
Applications remain responsible for permissions, legal-action filtering, hard safety rules, human confirmation for consequential actions, execution safeguards and fallback behavior. A high model probability is not a guarantee of correctness.
Access and licensing
The hosted API is a commercial service subject to MachineFi's terms. Text and visual input cost $0.042 per million billed input tokens; output is free. New accounts receive 100 free decisions. Refer to the console for current access and billing details.
The public Trio-Spark repository contains Apache-2.0 clients and demo integrations. That code license does not grant access to model weights or training artifacts. This Hugging Face repository does not provide downloadable weights or a local-inference package.