Agent Frameworks

Construire des workflows agents avec Mastra : un framework nouvelle génération pour les développeurs TypeScript

Le paysage du développement d'applications IA évolue rapidement. Nous passons de l'ingénierie de prompts simple à des workflows agents complexes et avec état. Alors que des frameworks comme LangChain et LlamaIndex dominaient l'espace, un nouveau concurrent est apparu, parlant directement aux développeurs TypeScript modernes : Mastra.

Mastra n'est pas qu'une bibliothèque de plus ; c'est un framework complet conçu pour simplifier la création, le déploiement et la maintenance des agents IA. En tirant parti de la sécurité des types et de la robustesse des outils de TypeScript, Mastra répond aux points de douleur courants liés à la construction d'applications IA prêtes pour la production, tels que la gestion des outils, la gestion de la mémoire et l'orchestration.

Pourquoi Mastra ? L'avantage TypeScript

L'un des obstacles les plus importants à l'entrée pour la construction d'agents IA fiables est la complexité de la gestion de l'état et de l'intégration des outils. Dans les écosystèmes fortement axés sur JavaScript, le manque de typage strict conduit souvent à des erreurs d'exécution difficiles à déboguer. Mastra résout ce problème en étant "TypeScript-first".

Il offre une manière déclarative de définir les agents, les outils et les workflows. Cela signifie que vous pouvez définir le comportement de votre agent, les outils auxquels il a accès et le contexte de mémoire qu'il utilise de manière fortement typée. Cette approche réduit considérablement la charge cognitive des développeurs, leur permettant de se concentrer sur la logique de l'agent plutôt que sur le code d'intégration répétitif.

Architecture de base : Agents, Outils et Mémoire

Mastra structure son API autour de trois concepts clés :

  1. Agents : Les décideurs. Ils utilisent des LLM (Large Language Models) pour déterminer l'action suivante en fonction de l'entrée de l'utilisateur et des outils disponibles.
  2. Outils : Les capacités. Ce sont des fonctions ou des appels API que l'agent peut exécuter.
  3. Mémoire : Le contexte. Mastra fournit des fournisseurs intégrés pour gérer l'historique des conversations et la récupération de connaissances basée sur les vecteurs.

Contrairement à certains frameworks où vous devez assembler manuellement ces composants, Mastra offre une approche intégrée. Vous définissez vos outils en tant que fonctions TypeScript standard, et Mastra gère automatiquement l'analyse des entrées et des sorties pour le LLM.

Pour commencer : Un exemple pratique

Regardons à quel point il est simple de définir un agent avec un outil personnalisé dans Mastra. Voici un exemple de création d'un agent de recherche météo.

import { Mastra } from '@mastra/core';
import { OpenAI } from '@mastra/core/llm';
import { createTool } from '@mastra/core/tools';

// Définir un outil personnalisé
const getWeather = createTool({
  id: 'get-weather',
  description: 'Obtenir la météo actuelle pour un lieu',
  inputSchema: z.object({
    location: z.string().describe('La ville et l\'état'),
  }),
  execute: async ({ context }) => {
    // Simuler un appel API
    return { temperature: 72, condition: 'Ensoleillé' };
  },
});

// Initialiser Mastra
const mastra = new Mastra({
  llms: {
    openai: new OpenAI({
      apiKey: process.env.OPENAI_API_KEY,
    }),
  },
  tools: {
    getWeather,
  },
});

// Définir l'agent
const weatherAgent = mastra.createAgent({
  name: 'Agent Météo',
  instructions: 'Vous êtes un assistant météo utile.',
  model: mastra.llms.openai,
  tools: {
    getWeather,
  },
});

Dans cet exemple, notez comment createTool infère automatiquement le schéma JSON pour le LLM basé sur le schéma de validation Zod. Cela fait gagner un temps considérable par rapport à l'écriture manuelle de schémas JSON pour chaque outil.

Gestion de la mémoire et de l'état

L'une des fonctionnalités phares de Mastra est son système de mémoire modulaire. Par défaut, les agents n'ont pas de mémoire, mais vous pouvez facilement intégrer des fournisseurs de mémoire persistante. Mastra prend en charge le stockage simple en mémoire pour le développement et la mémoire basée sur les vecteurs pour la récupération de connaissances à long terme.

Cette séparation des responsabilités vous permet de remplacer les backends de mémoire sans modifier la logique centrale de votre agent. Que vous ayez besoin de rappeler des faits de la conversation de la semaine dernière ou d'accéder à une base de données vectorielle de documents d'entreprise, Mastra fournit les hooks nécessaires pour rendre cela transparent.

Conclusion

Mastra représente une maturation dans l'espace des frameworks d'agents. En privilégiant l'ergonomie de TypeScript, en réduisant le code répétitif et en fournissant une API unifiée pour les outils et la mémoire, il abaisse la barrière à l'entrée pour la construction d'applications IA sophistiquées. Pour les développeurs déjà compétents dans l'écosystème TypeScript, Mastra offre une voie prometteuse qui semble native plutôt qu'après-coup. À mesure que le paysage des agents IA continue d'évoluer, des frameworks comme Mastra qui privilégient l'expérience développeur et la sécurité des types sont susceptibles de devenir la norme pour les déploiements de niveau production.

Share: