
MASTRA est un framework TypeScript d'opinion qui vous aide à créer rapidement des applications et des fonctionnalités d'IA. Il vous donne l'ensemble des primitives dont vous avez besoin: flux de travail, agents, chiffons, intégrations, synchronisation et évals. Vous pouvez exécuter MASTRA sur votre machine locale ou déployer sur un cloud sans serveur.
Les principales caractéristiques de Mastra sont:
| Caractéristiques | Description |
|---|---|
| Modèles LLM | MASTRA prend en charge une variété de fournisseurs de LLM, notamment Openai, Anthropic, Google Gemini. Vous pouvez choisir le modèle et le fournisseur spécifiques, choisir les invites système et utilisateur et décider de diffuser la réponse. |
| Agents | Les agents sont des systèmes où le modèle de langue choisit une séquence d'actions. Dans MASTRA, les agents fournissent aux modèles LLM des outils, des workflows et des données synchronisées. Les agents peuvent appeler vos propres fonctions ou API des intégrations tierces et accéder aux bases de connaissances que vous créez. |
| Outils | Les outils sont des fonctions typées qui peuvent être exécutées par des agents ou des workflows, avec l'accès intégré à l'intégration et la validation des paramètres. Chaque outil a un schéma qui définit ses entrées, une fonction exécuteur qui implémente sa logique et l'accès aux intégrations configurées. |
| Flux de travail | Les workflows sont des machines d'État basées sur des graphiques durables. Ils ont des boucles, des ramifications, attendre l'entrée humaine, intégrer d'autres flux de travail, faire des erreurs, des tentatives, analyser, etc. Ils peuvent être construits en code ou avec un éditeur visuel. Chaque étape d'un workflow a un traçage d'opentelémétrie intégré. |
| CHIFFON | La génération (RAG) de la récupération (RAG) vous permet de construire une base de connaissances pour les agents. Le RAG est un pipeline ETL avec des techniques de requête spécifiques, y compris le groupe, l'intégration et la recherche vectorielle. |
| Intégrations et synchronisation | Dans MASTRA, les synchronisation sont des fonctions asynchrones qui peuvent être déployées sous forme de tâches d'arrière-plan dans différents environnements d'exécution. Les intégrations sont des clients API générés automatiquement et sécurisés pour des services tiers qui peuvent être utilisés comme outils pour les agents ou les étapes des flux de travail. |
| Évals | Les évals sont des tests automatisés qui évaluent les sorties LLM à l'aide de méthodes classées, basées sur des règles et statistiques. Chaque évaluation renvoie un score normalisé entre 0-1 qui peut être enregistré et comparé. Evals peuvent être personnalisés avec vos propres invites et fonctions de notation. |
Si vous n'avez pas de clé API pour un fournisseur LLM, vous pouvez en obtenir un des services suivants:
Si vous n'avez pas de compte avec ces fournisseurs, vous pouvez vous inscrire et obtenir une clé API. Openai et Anthropic nécessitent une carte de crédit pour obtenir une clé API. Les Gémeaux n'ont pas et ont un niveau libre généreux pour son API.
En première étape, créez un répertoire de projet et naviguez-y:
mkdir hello-mastra
cd hello-mastraEnsuite, initialisez un projet TypeScript à l'aide de NPM:
npm init -y
npm install typescript tsx @types/node @mastra/core@alpha --save-devmkdir src
touch src/index.ts Ensuite, ajoutez ce code à src/index.ts :
import { Agent } from '@mastra/core' ;
async function main ( ) {
const agent = new Agent ( {
name : 'story-writer' ,
maxSteps : 3 ,
model : {
provider : 'OPEN_AI' ,
name : 'gpt-4o' ,
toolChoice : 'auto' ,
} ,
instructions : `You are a helpful assistant who writes creative stories.` ,
tools : { } ,
} ) ;
const result = await agent . text ( {
messages : [ 'Write a short story about a robot learning to paint.' ] ,
} ) ;
console . log ( 'Agent response:' , result . text ) ;
}
main ( ) ;Enfin, exécutez le script:
OPENAI_API_KEY= < your-openai-api-key > npx tsx src/index.ts Si vous utilisez anthropic, définissez le ANTHROPIC_API_KEY . Si vous utilisez des Gemini, définissez le GOOGLE_GENERATIVE_AI_API_KEY .
Nous avons une discorde communautaire ouverte. Venez dire bonjour et faites-nous savoir si vous avez des questions ou si vous avez besoin d'aide pour faire fonctionner les choses.
C'est aussi très utile si vous laissez le projet une étoile ici en haut de la page