ArchilFilesystem
Stocke les fichiers sur les disques élastiques et serverless d'Archil. Associe une API objet compatible S3 pour des lectures et écritures rapides à exec() pour les opérations de shell POSIX et à grep() pour les recherches parallèles côté serveur. Pour en savoir plus sur l'interface, consultez l'interface WorkspaceFilesystem.
InstallationLien direct vers Installation
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/archil
pnpm add @mastra/archil
yarn add @mastra/archil
bun add @mastra/archil
UtilisationLien direct vers Utilisation
Ajoutez un ArchilFilesystem à un Workspace et attribuez-le à un agent :
import { Agent } from '@mastra/core/agent'
import { Workspace } from '@mastra/core/workspace'
import { ArchilFilesystem } from '@mastra/archil'
const workspace = new Workspace({
filesystem: new ArchilFilesystem({
diskId: 'dsk-0123456789abcdef',
apiKey: process.env.ARCHIL_API_KEY,
region: 'aws-us-east-1',
}),
})
const agent = new Agent({
id: 'file-agent',
name: 'file-agent',
model: 'anthropic/claude-opus-4-7',
workspace,
})
Créer un disque lors de l'initialisationLien direct vers Créer un disque lors de l'initialisation
Si vous ne disposez pas déjà d'un disque, fournissez createDiskOptions pour en créer un automatiquement :
import { ArchilFilesystem } from '@mastra/archil'
const filesystem = new ArchilFilesystem({
apiKey: process.env.ARCHIL_API_KEY,
region: 'aws-us-east-1',
createDiskOptions: {
name: 'my-agent-workspace',
},
})
await filesystem.init()
// filesystem.diskId now contains the newly created disk ID
Valeurs de repli des variables d'environnementLien direct vers Valeurs de repli des variables d'environnement
Lorsque apiKey et region sont omis, le Provider lit les variables d'environnement suivantes :
ARCHIL_API_KEY: clé APIARCHIL_REGION: région (par exempleaws-us-east-1)ARCHIL_S3_BASE_URL: point de terminaison S3 personnalisé (facultatif)
import { ArchilFilesystem } from '@mastra/archil'
// Uses ARCHIL_API_KEY and ARCHIL_REGION from environment
const filesystem = new ArchilFilesystem({
diskId: 'dsk-0123456789abcdef',
})
Paramètres du constructeurLien direct vers Paramètres du constructeur
diskId?:
createDiskOptions.createDiskOptions?:
diskId.apiKey?:
ARCHIL_API_KEY.region?:
ARCHIL_REGION.baseUrl?:
s3BaseUrl?:
ARCHIL_S3_BASE_URL.id?:
displayName?:
icon?:
description?:
readOnly?:
PropriétésLien direct vers Propriétés
id:
name:
provider:
diskId:
readOnly:
MéthodesLien direct vers Méthodes
ArchilFilesystem implémente l'interface WorkspaceFilesystem et fournit toutes les méthodes standard d'un système de fichiers :
readFile(path, options?): lit le contenu d'un fichierwriteFile(path, content, options?): écrit du contenu dans un fichierappendFile(path, content): ajoute du contenu à un fichierdeleteFile(path, options?): supprime un fichiercopyFile(src, dest, options?): copie un fichiermoveFile(src, dest, options?): déplace ou renomme un fichiermkdir(path, options?): crée un répertoirermdir(path, options?): supprime un répertoirereaddir(path, options?): répertorie le contenu d'un répertoireexists(path): vérifie si un chemin existestat(path): récupère les métadonnées d'un fichier ou d'un répertoire
init()Lien direct vers init
Initialise le système de fichiers. Se connecte au disque existant ou en crée un nouveau.
await filesystem.init()
getInfo()Lien direct vers getinfo
Renvoie les métadonnées de cette instance de système de fichiers.
const info = filesystem.getInfo()
// { id: '...', name: 'ArchilFilesystem', provider: 'archil', status: 'ready' }
Méthodes propres à ArchilLien direct vers Méthodes propres à Archil
exec(command)Lien direct vers execcommand
Exécute une commande shell sur le disque. Renvoie le code de sortie, stdout et stderr.
const result = await filesystem.exec('ls -la /data')
// { exitCode: 0, stdout: '...', stderr: '' }
grep(options)Lien direct vers grepoptions
Effectue une recherche parallèle côté serveur dans les fichiers du disque.
const results = await filesystem.grep({
directory: '/logs',
pattern: 'ERROR',
recursive: true,
glob: '*.log',
})
// { matches: [...], stoppedReason: null }
share(path, options?)Lien direct vers sharepath-options
Génère une URL signée pour partager un fichier.
const { url } = await filesystem.share('/reports/output.pdf', {
expiresIn: 3600,
})