Créer un Agent boursier avec l’IA
Dans ce guide, vous créerez un Agent qui récupère le cours de clôture de la veille pour un symbole. Vous créerez un Tool, l’ajouterez à un Agent, puis utiliserez cet Agent pour récupérer des cours boursiers.
PrérequisLien direct vers Prérequis
- Node.js
v22.13.0ou version ultérieure est installé - Une clé API d’un fournisseur de modèles pris en charge
- Un projet Mastra existant (suivez le guide d’installation pour configurer un nouveau projet)
Créer l’AgentLien direct vers Créer l’Agent
Pour créer un Agent dans Mastra, utilisez la classe Agent pour le définir, puis enregistrez-le auprès de Mastra.
Créez un fichier
src/mastra/agents/stockAgent.tset définissez votre Agent :src/mastra/agents/stockAgent.tsimport { Agent } from '@mastra/core/agent'export const stockAgent = new Agent({id: 'stock-agent',name: 'Stock Agent',instructions:'You are a helpful assistant that provides current stock prices. When asked about a stock, use the stock price tool to fetch the stock price.',model: 'openai/gpt-5.6-sol',})Dans votre fichier
src/mastra/index.ts, enregistrez l’Agent :src/mastra/index.tsimport { Mastra } from '@mastra/core'import { stockAgent } from './agents/stockAgent'export const mastra = new Mastra({agents: { stockAgent },})
Créer le Tool de cours boursierLien direct vers Créer le Tool de cours boursier
Le Stock Agent ne connaît pas encore les cours boursiers actuels. Pour y remédier, créez un Tool et ajoutez-le à l’Agent.
Créez un fichier
src/mastra/tools/stockPrices.ts. Ajoutez-y un ToolstockPricesqui récupère le cours de clôture de la veille pour un symbole donné :src/mastra/tools/stockPrices.tsimport { createTool } from '@mastra/core/tools'import { z } from 'zod'const getStockPrice = async (symbol: string) => {const data = await fetch(`https://mastra-stock-data.vercel.app/api/stock-data?symbol=${symbol}`,).then(r => r.json())return data.prices['4. close']}export const stockPrices = createTool({id: 'Get Stock Price',inputSchema: z.object({symbol: z.string(),}),description: `Fetches the last day's closing stock price for a given symbol`,execute: async inputData => {console.log('Using tool to fetch stock price for', inputData.symbol)return {symbol: inputData.symbol,currentPrice: await getStockPrice(inputData.symbol),}},})Dans
src/mastra/agents/stockAgent.ts, importez le ToolstockPricesque vous venez de créer et ajoutez-le à l’Agent.src/mastra/agents/stockAgent.tsimport { Agent } from '@mastra/core/agent'import { stockPrices } from '../tools/stockPrices'export const stockAgent = new Agent({id: 'stock-agent',name: 'Stock Agent',instructions:'You are a helpful assistant that provides current stock prices. When asked about a stock, use the stock price tool to fetch the stock price.',model: 'openai/gpt-5.6-sol',tools: {stockPrices,},})
Exécuter le serveur de l’AgentLien direct vers Exécuter le serveur de l’Agent
Découvrez comment interagir avec votre Agent via l’API de Mastra.
Vous pouvez exécuter votre Agent comme service avec la commande
mastra dev:mastra devCette commande démarre un serveur qui expose des endpoints permettant d’interagir avec vos Agents enregistrés. Dans Studio, vous pouvez tester votre Agent
stockAgentet le ToolstockPricesvia une interface utilisateur.Par défaut,
mastra devs’exécute surhttp://localhost:4111. Votre Stock Agent sera disponible à l’adresse suivante :POST http://localhost:4111/api/agents/stockAgent/generateVous pouvez interagir avec l’Agent à l’aide de
curlen ligne de commande :curl -X POST http://localhost:4111/api/agents/stockAgent/generate \-H "Content-Type: application/json" \-d '{"messages": [{ "role": "user", "content": "What is the current stock price of Apple (AAPL)?" }]}'Vous devriez recevoir une réponse JSON semblable à celle-ci :
{"text": "The current price of Apple (AAPL) is $174.55.","agent": "Stock Agent"}Cela indique que votre Agent a traité la requête avec succès, utilisé le Tool
stockPricespour récupérer le cours boursier et retourné le résultat.