DatasetsManager
Added in: @mastra/core@1.4.0
The DatasetsManager class provides the public API for managing datasets, including CRUD operations and cross-dataset experiment comparisons. Access it via mastra.datasets.
Usage examplesDirect link to Usage examples
Create and list datasetsDirect link to Create and list datasets
import { Mastra } from '@mastra/core'
const mastra = new Mastra({/* storage config */})
// Create a dataset
const dataset = await mastra.datasets.create({
name: 'QA pairs',
description: 'Question-answer evaluation set',
})
// List all datasets
const { datasets } = await mastra.datasets.list()
Get and delete a datasetDirect link to Get and delete a dataset
import { Mastra } from '@mastra/core'
const mastra = new Mastra({/* storage config */})
// Get by ID
const dataset = await mastra.datasets.get({ id: 'dataset-id' })
// Delete by ID
await mastra.datasets.delete({ id: 'dataset-id' })
Get experimentDirect link to Get experiment
Retrieves a specific experiment (run) by ID. Unlike dataset.getExperiment(), this works across all datasets without needing a dataset reference first.
import { Mastra } from '@mastra/core'
const mastra = new Mastra({/* storage config */})
// Get experiment directly without knowing the dataset
const experiment = await mastra.datasets.getExperiment({
experimentId: 'exp-id',
})
console.log(`Dataset: ${experiment.datasetId}`)
console.log(`Status: ${experiment.status}`)
Delete experimentDirect link to Delete experiment
Deletes an experiment directly by ID, including experiments orphaned by dataset deletion. The experiment's results are deleted, and Mastra also attempts to delete its observability traces. Unsupported observability storage leaves the traces in place and logs a warning.
await mastra.datasets.deleteExperiment({
experimentId: 'experiment-id',
organizationId: 'organization-id',
projectId: 'project-id',
})
See DatasetsManager.deleteExperiment() for tenancy behavior and trace cascade details.
Compare experimentsDirect link to Compare experiments
import { Mastra } from '@mastra/core'
const mastra = new Mastra({/* storage config */})
const comparison = await mastra.datasets.compareExperiments({
experimentIds: ['exp-1', 'exp-2'],
baselineId: 'exp-1',
})
AccessDirect link to Access
DatasetsManager isn't instantiated directly. Access it from a Mastra instance:
const mastra = new Mastra({/* storage config */})
const datasetsManager = mastra.datasets