Adding AI Metadata for AI Agents

AI agents connecting to ScaleOut Digital Twins get an understanding of the models and their properties from the model definition. Sometimes the name of a property alone is not enough for the AI agent to fully understand its role. To help with that, ScaleOut allows developers to add metadata to their models to describe modules and their properties. This metadata is added directly in code in the form of annotations. That metadata is then exposed to AI agents automatically at deployment time.

You can annotate the module itself, using @ModuleAiMetadata, or its properties using @PropertyAiMetadata.

Some syntax examples are provided below. For full details on how to leverage AI through metadata, please refer to Annotating Digital Twin Models for AI

@ModuleAiMetadata

Use the @ModuleAiMetadata on a DigitalTwin class to provide additional context for AI agents. It should describe what the model tracks, how it relates to other models, or in general describe context that could be useful to someone trying to understand the model.

@ModuleAiMetadata(
description = "Represents a wind turbine and its live operational readings. Used to monitor rotational speed, temperature, and mechanical friction to detect abnormal or unsafe operating conditions. A WindTurbine instance is related to an instance of a WindFarm model.",
keyProperties = {
"temperature",
"friction",
"rotations"
})

@PropertyAiMetadata

This annotation allows you to add context on properties, their normal operational range, the units they are expressed in, and anything that would be relevant (including relationship with other properties).

@PropertyAiMetadata(
type = "double",
description = "The current temperature reported by the sensor.",
units = "degrees Celsius",
minValue = "-40",
maxValue = "125"
)