Spice.ai Core Concepts

Spice.ai CLI

The spice command line tool for interacting with the Spice.ai runtime during development. View the CLI reference to learn more.

Spice.ai Runtime

The Spice.ai core runtime which runs as the daemon spiced and includes the AI and Data engines. The runtime also serves the Spice.ai API.


The registry spicerack.org of Spice.ai pods that can be fetched with the Spice.ai CLI.


A Pod is a package of configuration and data used to train and deploy Spice.ai with an application.

A Pod manifest is a YAML file that describes how to connect data with a learning environment.

A Pod is constructed from the following components:


A dataspace is a specification on how the Spice.ai runtime and AI engine loads, processes and interacts with data from a single source. A dataspace may contain a single data connector and data processor. There may be multiple dataspace definitions within a pod. The fields specified in the union of dataspaces are used as inputs to the neural networks that Spice.ai trains.

A dataspace that doesn’t contain a data connector/processor means that the observation data for this dataspace will be provided by calling POST /pods/{pod}/observations.

Data Connector

A data connector is a reuseable component that contains logic to fetch or ingest data from an external source. Spice.ai provides a general interface that anyone can implement to create a data connector, see the data-components-contrib repo for more information.

Data Processor

A data processor is a reusable component, composable with a data connector that contains logic to process raw connector data into observations and state Spice.ai can use.

Spice.ai provides a general interface that anyone can implement to create a data processor, see the data-components-contrib repo for more information.


Actions are the set of actions the Spice.ai runtime can recommend for a pod.


To intelligently adapt its behavior, an application should query the Spice.ai runtime for which action it recommends to take given a specified time. The result of this query is a recommendation.

If a time is not specified, the resulting recommendation query time will default to the time of the most recently ingested observation.

Training Rewards

Training Rewards are code definitions in Python that tell the Spice.ai AI Engine how to train the neural networks to achieve the desired goal. A reward is defined for each action specified in the pod.

In the future we will expand the languages we support for writing the reward functions in. Let us know which language you want to be able to write your reward functions in!