Aller au contenu principal

StorageWorkspaceRef

StorageWorkspaceRef est l'union discriminée utilisée pour associer un Workspace à un Agent stocké. Elle désigne soit un Workspace enregistré par identifiant dans l'environnement d'exécution Mastra, soit un instantané de Workspace intégré en ligne.

Il s'agit du type utilisé par BuilderAgentDefaults.workspace et par les enregistrements d'Agents stockés.

Exemple d'utilisation
Lien direct vers Exemple d'utilisation

src/mastra/index.ts
import { MastraEditor } from '@mastra/editor'

// Variant 1 — reference a runtime workspace by id
new MastraEditor({
builder: {
enabled: true,
configuration: {
agent: {
workspace: { type: 'id', workspaceId: 'builder-workspace' },
},
},
},
})

// Variant 2 — inline a workspace snapshot
new MastraEditor({
builder: {
enabled: true,
configuration: {
agent: {
workspace: {
type: 'inline',
config: {
name: 'inline-builder-workspace',
filesystem: {
provider: 'local',
config: { basePath: './agent-files' },
},
},
},
},
},
},
})

Variantes
Lien direct vers Variantes

{ type: 'id'; workspaceId: string }:

IdRef
Référence un Workspace enregistré dans l'environnement d'exécution Mastra au moyen de new Mastra({ workspace }) ou de mastra.addWorkspace(). L'identifiant est la clé de jointure entre la configuration d'administration, l'enregistrement de l'Agent stocké et l'hydratation.
{ type: 'id'; workspaceId: string }

type:

'id'
Discriminant. Doit être la valeur littérale "id".

workspaceId:

string
Identifiant d'un Workspace enregistré dans l'environnement d'exécution Mastra. Utilisé par le Builder pour créer un instantané du Workspace, le conserver, puis l'hydrater ultérieurement.

{ type: 'inline'; config: StorageWorkspaceSnapshotType }:

InlineRef
Intègre directement un instantané de Workspace. Le Builder dérive un identifiant déterministe de la forme inline-<sha256(config)[:12]> et conserve l'instantané. Les configurations en ligne identiques sont ainsi dédupliquées entre les Agents.
{ type: 'inline'; config: StorageWorkspaceSnapshotType }

type:

'inline'
Discriminant. Doit être la valeur littérale "inline".

config:

StorageWorkspaceSnapshotType
Configuration sérialisée du Workspace (système de fichiers, Sandbox, montages, recherche, Skills et Tools). Consultez la section StorageWorkspaceSnapshotType ci-dessous pour obtenir la liste des champs.

StorageWorkspaceSnapshotType
Lien direct vers storageworkspacesnapshottype

Structure intégrée sous { type: 'inline', config }. Définie dans @mastra/core/storage.

name:

string
Nom d'affichage du Workspace.

description?:

string
Description de l'objectif affichée dans la liste des Workspaces.

filesystem?:

StorageFilesystemConfig
Configuration du système de fichiers principal. provider doit correspondre à un identifiant enregistré dans MastraEditor.filesystems (intégré : local).

sandbox?:

StorageSandboxConfig
Configuration du Sandbox. provider doit correspondre à un identifiant enregistré dans MastraEditor.sandboxes (intégré : local).

mounts?:

Record<string, StorageFilesystemConfig>
Systèmes de fichiers supplémentaires montés sur le Workspace et indexés selon leur chemin de montage.

skills?:

string[]
Identifiants des entités Skill attribuées à ce Workspace.

tools?:

StorageWorkspaceToolsConfig
Configuration des Tools du Workspace (listes autorisées et valeurs par défaut).

autoSync?:

boolean
= false
Synchronisation automatique entre le système de fichiers et le Sandbox.

operationTimeout?:

number
Délai d'expiration de chaque opération, en millisecondes.

Hydratation
Lien direct vers Hydratation

StorageWorkspaceRef est résolu de manière différée lors de l'appel à mastra.editor.agent.getById(), et non lors de l'appel à list(). L'Editor recherche les Providers de système de fichiers et de Sandbox dans MastraEditor.filesystems / MastraEditor.sandboxes, puis matérialise un Workspace d'exécution. Les Providers manquants donnent lieu à un avertissement et le Workspace est omis.