Installation manuelle
Utilisez ce guide pour créer manuellement, étape par étape, un serveur Mastra autonome. Dans la plupart des cas, il est plus rapide de suivre le guide de démarrage rapide, qui obtient le même résultat avec la commande create-mastra. Pour les projets existants, vous pouvez également utiliser mastra init.
Lisez https://mastra.ai/guides/getting-started/manual-install.md, puis aidez-moi à créer mon projet Mastra. Demandez-moi comment je souhaite nommer mon projet et utilisez ce nom comme nom de dossier.
InstructionsLien direct vers Instructions
Si vous préférez ne pas utiliser notre outil CLI automatique, vous pouvez configurer votre projet vous-même en suivant le guide ci-dessous.
Créez un nouveau projet et accédez à son répertoire :
mkdir my-first-agent && cd my-first-agentGénérez un nouveau fichier
package.json:- npm
- pnpm
- Yarn
- Bun
npm initpnpm inityarn initbun initInstallez les dépendances suivantes :
- npm
- pnpm
- Yarn
- Bun
npm install -D typescript @types/node mastra@latestnpm install @mastra/core@latest zod@^4pnpm add -D typescript @types/node mastra@latestpnpm add @mastra/core@latest zod@^4yarn add --dev typescript @types/node mastra@latestyarn add @mastra/core@latest zod@^4bun add --dev typescript @types/node mastra@latestbun add @mastra/core@latest zod@^4Ajoutez les scripts
devetbuildà votre fichierpackage.json:package.json{"scripts": {"dev": "mastra dev","build": "mastra build"}}Créez un fichier
tsconfig.json:touch tsconfig.jsonAjoutez la configuration suivante :
tsconfig.json{"compilerOptions": {"target": "ES2022","module": "ES2022","moduleResolution": "bundler","esModuleInterop": true,"forceConsistentCasingInFileNames": true,"strict": true,"skipLibCheck": true,"noEmit": true,"outDir": "dist"},"include": ["src/**/*"]}infoMastra requiert des paramètres
moduleetmoduleResolutionmodernes. L’utilisation deCommonJSou denodeprovoquera des erreurs de résolution.Créez un fichier
.env:touch .envAjoutez votre clé API :
.envGOOGLE_API_KEY=<your-api-key>remarqueCe guide utilise Google Gemini, mais vous pouvez choisir tout fournisseur de modèles pris en charge, notamment OpenAI, Anthropic et d’autres.
Créez un fichier
weather-tool.ts:mkdir -p src/mastra/tools && touch src/mastra/tools/weather-tool.tsAjoutez le code suivant :
src/mastra/tools/weather-tool.tsimport { createTool } from '@mastra/core/tools'import { z } from 'zod'export const weatherTool = createTool({id: 'get-weather',description: 'Get current weather for a location',inputSchema: z.object({location: z.string().describe('City name'),}),outputSchema: z.object({output: z.string(),}),execute: async ({ location }) => {return {output: `The weather in ${location} is sunny`,}},})infoNous avons raccourci et simplifié ici l’exemple
weatherTool. Vous pouvez consulter le Tool météo complet dans Donner un Tool à un Agent.Créez un fichier
weather-agent.ts:mkdir -p src/mastra/agents && touch src/mastra/agents/weather-agent.tsAjoutez le code suivant :
src/mastra/agents/weather-agent.tsimport { Agent } from '@mastra/core/agent'import { weatherTool } from '../tools/weather-tool.ts'export const weatherAgent = new Agent({id: 'weather-agent',name: 'Weather Agent',instructions: `You are a helpful weather assistant that provides accurate weather information.Your primary function is to help users get weather details for specific locations. When responding:- Always ask for a location if none is provided- If the location name isn't in English, please translate it- If giving a location with multiple parts (e.g. "New York, NY"), use the most relevant part (e.g. "New York")- Include relevant details like humidity, wind conditions, and precipitation- Keep responses concise but informativeUse the weatherTool to fetch current weather data.`,model: 'google/gemini-2.5-pro',tools: { weatherTool },})Créez le point d’entrée Mastra et enregistrez votre Agent :
touch src/mastra/index.tsAjoutez le code suivant :
src/mastra/index.tsimport { Mastra } from '@mastra/core'import { weatherAgent } from './agents/weather-agent.ts'export const mastra = new Mastra({agents: { weatherAgent },})Vous pouvez maintenant lancer Studio et tester votre Agent.
- npm
- pnpm
- Yarn
- Bun
npm run devpnpm run devyarn devbun run dev
Étapes suivantesLien direct vers Étapes suivantes
- Examiner la structure du projet : découvrez comment les fichiers
src/mastra/correspondent aux Agents, Tools, Workflows, stockages et à la configuration. - Tester votre Agent dans Studio : ouvrez l’interface Studio locale et exécutez l’Agent météo.
- Utiliser des Tools avec des Agents : remplacez le Tool météo d’exemple par un véritable Tool qui appelle une API ou un service.
- Ajouter de la mémoire : conservez l’historique des conversations et le contexte propre aux utilisateurs.
- Configurer le stockage : ajoutez un adaptateur de stockage persistant pour la mémoire, les Workflows, l’observabilité et d’autres états d’exécution.
- Créer et déployer : créez le serveur Mastra et déployez-le sur une plateforme d’hébergement.