Intégrer Mastra à votre projet Hono
Dans ce guide, vous allez créer avec Mastra et Hono un Agent d’IA capable d’appeler des Tools. Grâce à l’adaptateur de serveur Hono, vous pouvez exposer vos Agents sous forme de points de terminaison HTTP sans écrire vous-même le routage ni exécuter un serveur Mastra distinct.
Avant de commencerLien direct vers Avant de commencer
- Vous aurez besoin d’une clé API provenant d’un Provider de modèles pris en charge. Si vous n’avez pas de préférence, utilisez OpenAI.
- Installez Node.js
v22.13.0ou une version ultérieure
Créer une application Hono (facultatif)Lien direct vers Créer une application Hono (facultatif)
Si vous disposez déjà d’une application Hono, passez à l’étape suivante.
Exécutez la commande suivante pour créer une application Hono :
- npm
- pnpm
- Yarn
- Bun
npm create hono@latest mastra-hono -- --template nodejs --install --pm npm
pnpm create hono mastra-hono --template nodejs --install --pm npm
yarn create hono mastra-hono --template nodejs --install --pm npm
bunx create-hono mastra-hono --template nodejs --install --pm npm
Cette commande crée un projet nommé mastra-hono, mais vous pouvez choisir le nom de votre choix.
Initialiser MastraLien direct vers Initialiser Mastra
Accédez au répertoire de votre projet Hono :
cd mastra-hono
Exécutez mastra init. Lorsque vous y êtes invité, choisissez un Provider (par exemple OpenAI) et saisissez votre clé :
- npm
- pnpm
- Yarn
- Bun
npx mastra@latest init
pnpm dlx mastra@latest init
yarn dlx mastra@latest init
bun x mastra@latest init
Cette commande crée un dossier src/mastra contenant un exemple d’Agent météo et les fichiers suivants :
index.ts— configuration de Mastra, y compris la mémoiretools/weather-tool.ts— Tool qui récupère la météo d’un lieu donnéagents/weather-agent.ts— Agent météo doté d’une instruction qui utilise le Tool
Vous transmettrez ensuite le fichier src/mastra/index.ts à l’adaptateur de serveur Hono.
Ajouter l’adaptateur de serveurLien direct vers Ajouter l’adaptateur de serveur
Installez le package de l’adaptateur de serveur Hono :
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/hono@latest
pnpm add @mastra/hono@latest
yarn add @mastra/hono@latest
bun add @mastra/hono@latest
Ouvrez le fichier d’entrée Hono src/index.ts et ajoutez les imports ainsi que le code d’initialisation nécessaires :
import { serve } from '@hono/node-server'
import { Hono } from 'hono'
import { type HonoBindings, type HonoVariables, MastraServer } from '@mastra/hono'
import { mastra } from './mastra/index.js'
const app = new Hono<{ Bindings: HonoBindings; Variables: HonoVariables }>()
const server = new MastraServer({ app, mastra })
await server.init()
app.get('/', c => {
return c.text('Hello Hono!')
})
serve(
{
fetch: app.fetch,
port: 3000,
},
info => {
console.log(`Server is running on http://localhost:${info.port}`)
},
)
Le MastraServer est initialisé avec l’application Hono app existante et l’instance mastra racine. L’appel à init() enregistre le middleware Mastra et expose tous les points de terminaison Mastra disponibles.
Tester votre AgentLien direct vers Tester votre Agent
Par défaut, les points de terminaison Mastra sont ajoutés sous le sous-chemin /api et utilisent les ID de vos Agents et Workflows. L’Agent weather-agent créé par défaut avec mastra init est disponible à l’adresse /api/agents/weather-agent.
Démarrez votre serveur Hono :
- npm
- pnpm
- Yarn
- Bun
npm run dev
pnpm run dev
yarn dev
bun run dev
Dans un autre terminal, utilisez curl pour interroger l’Agent météo :
curl -X POST http://localhost:3000/api/agents/weather-agent/generate -H "Content-Type: application/json" -d "{\"messages\":[{\"role\":\"user\",\"content\":\"What is the weather like in Seoul?\"}]}"
Étapes suivantesLien direct vers Étapes suivantes
Félicitations, vous avez créé votre Agent Mastra avec Hono ! 🎉
Vous pouvez maintenant enrichir le projet avec vos propres Tools et votre propre logique :
- En savoir plus sur les Agents
- Donnez à votre Agent ses propres Tools
- Ajoutez une mémoire semblable à celle des humains à votre Agent
Lorsque vous êtes prêt, découvrez plus en détail l’intégration de Mastra avec Hono :