Eszközök/MI-ágensek
Mastra teszt: TypeScript agentek valós értékelési hurokkal
A Mastra egy csomagban ad agenteket, workflow-kat, memóriát, MCP-t, guardrailokat, trace-et és értékelést. Mit fedi le az Apache-2.0 mag, mit kér az ee/ felosztás, kinek érdemes belépni.
- Típus
- Agent framework
- Ár
- Apache-2.0 core · hosted paid
Balázs Csorba··11 perc olvasás
- TypeScript
- Agent framework
- Workflows
- MCP
- Evals

A lényeg röviden
- A Mastra a legteljesebb TypeScript agent keretrendszer egy repóban: agentek, workflow-k, memória, MCP szerver készítés, guardrailok, trace-ek és értékelések, Apache-2.0 licenccel minden az ee/ könyvtárakon kívül.
- A licencnek van kereskedelmi éle. Az ee/ alatti kód - jelenleg az auth, az agent builder és az editor - forráskódként elérhető, és a produkciós használathoz szerződés és licenckulcs is kell.
- A keretrendszer gyorsan mozog: 99 kiadás jelent meg a @mastra/core-ból a 2026. október 7-ig tartó 30 napban, ezért a pontos verziók pimmelése és az értékelések futtatása a CI-ban nem opcionális.
- Az igazi erőssége a kód, a trace-ek és az értékelések közötti hurok, nem maga az agent-hurok, amely árucikk; a Studio time travel és experiments funkciói tartják a csapatokat a fizetős platformon.
- A LangGraph.js és a Vercel AI SDKhoz képest a Mastra több futtatási réteget birtokol, és több függőséget kér: a @mastra/core önmagában 30 közvetlen függőséget húz be.
A Mastra TypeScript keretrendszer LLM-agentekhez, és az egyik legteljesebb: agentek, workflow-motor, memória, MCP szerver készítés, guardrailok, trace-ek, értékelések és egy hosztolt platform egyetlen repóban. A pozíció itt egyértelmű. A Mastra a legjobban támogatott út, ha egy agentet egy meglévő Node- vagy Next.js-alapú kódba kell beépíteni, és rossz választás azoknak, akik Pythonban dolgoznak, vagy csak a tool-calling hurkot akarják.
A modellréteg fölött, az alkalmazás alatt helyezkedik el: a modellek provider/model stringként érkeznek, a keretrendszer pedig átveszi az agent-hurkot, a workflow-gráfot, a thread állapotát és a trace-eket. A közvetlen versenytársak a LangGraph.js, a Vercel AI SDK, az OpenAI Agents SDK és az újabb belépők, mint a VoltAgent. A különbség nem a hurokban van, hiszen az árucikk, hanem abban, mennyi környező futtatási réteget hajlandó egy-egy keretrendszer átvenni.
Mi a Mastra valójában
A Mastra nem egyetlen könyvtár, hanem scope-olt npm csomagok monorepója. A magja a @mastra/core, minden más ehhez kapcsolódik: @mastra/memory, @mastra/libsql, @mastra/pg, @mastra/observability, @mastra/evals, @mastra/mcp és a többi. A src/mastra/index.ts fájlban lévő Mastra osztály a regisztráció, amely összeköti az agenteket, a workflow-kat, a storage-et, a logolást és az observabilityt, és a keretrendszer minden más része innen oldja fel a szolgáltatásait.
- Licenc: Apache-2.0 minden, ami az ee/ könyvtárakon kívül van; azokon belül forráskódként elérhető a Mastra Enterprise Edition License szerint.
- Érettség: a @mastra/core 2026. október 7-én az 1.75.0-nál állt; a repó 28,6k csillagot és 2,9k forkot mutat, az első kiadás 2024 októberében jelent meg.
- Terjedés: 2,23 millió npm letöltés a @mastra/core-ra a 2026. október 4-ig tartó héten, szemben a @langchain/langgraph 4,55 milliójával és a Vercel ai csomag 34,5 milliójával.
- Kiadási tempó: 99 kiadás a @mastra/core-ból a 2026. október 7-ig tartó 30 napban és 301 kilencven napban, összesen 1656 az 2024. októbere óta.
- Futtatókörnyezet: Node 22.18 vagy újabb, Hono-alapú szerverrel, Vercel, Netlify és Cloudflare deployerrel, vagy bármilyen saját HTTP hoszttal.
- Modellelérés: egy model router, amely feloldja a provider/model stringet, 213 szolgáltatót és 7790 modellt listáz, támogatja a modellenkénti fallback-láncokat, és a kulcsot a környezetből olvassa.
- Típusok: Zod, Valibot vagy ArkType Standard JSON Schema-n keresztül az eszközökhöz, a workflow-lépésekhez és a strukturált kimenethez.
Hogyan működik
Két primitív viszi a terhet. Az Agent modellt, utasítást és eszközöket köt össze, és addig iterál, amíg a modell végső választ vagy leállási feltételt nem ad. A createStep és createWorkflow összeállításból, .then(), .branch(), .parallel() és .commit() hívásokkal épített workflow a determinisztikus út az ismert sorrendű folyamatokhoz. A dokumentáció egyértelmű: definiált pipeline-hoz a második, nyílt végű munkához az első, ami pontosan az agent hurok magyarázatában alkalmazott felosztás.
E két primitív körül helyezkednek el azok a részek, amelyek életben tartják az agentet a produkcióban. A memória darabokra esik: üzenettörténet, working memory, szemantikus visszakeresés és Observational Memory, ahol háttéragentek tömörítik a régebbi fordulókat megfigyelésekké, mielőtt a kontextusablak megtelik. A storage cserélhető: LibSQL, Postgres, ClickHouse, MongoDB, MSSQL és DuckDB, és ugyanez a motor tartja a workflow-k felfüggesztését és folytatását, ezért egy workflow megvárhatja az emberi jóváhagyást, és órák múlva folytatódhat.
Az MCP-támogatás a megkülönböztető előny
A Mastra az a ritka keretrendszer, amely az MCP-t mindkét irányban használja. Az MCPClient stdio és Streamable HTTP szerverekhez csatlakozik, az MCPServer pedig Mastra-agenteket, eszközöket, workflow-kat, promptokat és erőforrásokat tesz elérhetővé más rendszereknek. A regisztrált szerverek a /api/mcp/:serverId/mcp úton futnak, és a protokoll 2026-07-28-as revízióját beszélik, így ha egy csapat belső eszközei már MCP szerver mögött vannak, az agent beköthető saját integrációs réteg nélkül.
import { Agent } from '@mastra/core/agent'
import { Mastra } from '@mastra/core/mastra'
import { MCPServer, MCPClient } from '@mastra/mcp'
// Expose Mastra primitives to other agents and systems
const mcpServer = new MCPServer({
id: 'support-mcp',
name: 'Support tools',
version: '1.0.0',
agents: { supportAgent },
tools: { refundTool },
workflows: { triage },
})
// Consume remote MCP tools, gating the destructive ones
const client = new MCPClient({
servers: {
jira: {
url: new URL('https://jira.example.com/mcp'),
requireToolApproval: ({ toolName }) => toolName.startsWith('delete_'),
},
},
})
const assistant = new Agent({
id: 'assistant',
name: 'Assistant',
instructions: 'Answer from the available tools and cite the source.',
model: 'anthropic/claude-sonnet-4-6',
tools: await client.listTools(),
})
export const mastra = new Mastra({
agents: { assistant },
mcpServers: { mcpServer },
})A biztonsági alapértékek jobbak az átlagnál. A requireToolApproval név vagy argumentum alapján zárja az eszközöket, a stdio alfolyamatok csak egy kurált környezeti listát örökölnek, ha nem állítod be az inheritDefaultEnv flaget, az allowedHosts korlátozza a kimenő HTTP hosztokat, és a dokumentáció azt is mondja, hogy a nem általad kezelt szerverek annotációit ne tekintsd megbízható jelzésnek. Az eszközök eredménye amúgy is megbízhatatlan modellbemenet, ezért a guardrail processzorok az a réteg, amelynek ezt tisztáznia kell.
Első lépések
Az npm create mastra@latest létrehoz egy projektet a src/mastra elrendezéssel, dev szerverrel, Studióval és deployerrel. A legkisebb hasznos felület kicsi: egy eszköz, egy agent, egy regisztráció.
// src/mastra/tools/stock-price.ts
import { createTool } from '@mastra/core/tools'
import { z } from 'zod'
export const stockPrice = createTool({
id: 'stock-price',
description: 'Latest price for a ticker symbol',
inputSchema: z.object({ symbol: z.string().describe('Ticker, for example INGY') }),
outputSchema: z.object({ symbol: z.string(), price: z.number() }),
execute: async ({ symbol }) => ({ symbol, price: await quote(symbol) }),
})
// src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { Agent } from '@mastra/core/agent'
import { LibSQLStore } from '@mastra/libsql'
import { stockPrice } from './tools/stock-price'
export const agent = new Agent({
id: 'research',
name: 'Research agent',
instructions: 'Look prices up with the tool. Never guess a number.',
model: 'anthropic/claude-sonnet-4-6',
tools: { stockPrice },
})
export const mastra = new Mastra({
agents: { agent },
storage: new LibSQLStore({ id: 'mastra', url: 'file:./mastra.db' }),
})
// run.ts - Node 22.18 and later run TypeScript directly
const answer = await mastra.getAgentById('research').generate('INGY price')
console.log(answer.text, answer.usage)Két részlet megtéveszti az újakat. Az agenteket érdemes mastra.getAgentById() hívással feloldani, nem közvetlen importálással, mert a közvetlen import lefut ugyan, de kimarad az instance storage, a logger és a telemetria, így az ilyen futások láthatatlanok a trace-ekben. A modell-string pedig router-formátum, provider/model, amit például az ANTHROPIC_API_KEY környezeti változó ad, nem provider-objektum.
Az observability és az értékelés az igazi termék
Ez az a rész, amely indokolja a keretrendszert, nem az agent-hurok. Minden agent-futás, workflow-lépés, eszközhívás és modellhívás span-t termel, és az exportírok ezeket a Mastra storage-be vagy bármilyen OpenTelemetry-kompatibilis háttértárba írják, név szerinti integrációkkal a Langfuse-hoz, az Arize Phoenixhez és a Datadoghoz. A metrikák spanekből származnak további instrumentáció nélkül, a Studio pedig hozzáadja a gráf nézetet, az egyedi lépés visszajátszását és az experiments fület.
- Trace-ek és logok: spanek és strukturált logok trace- és span-ID szerint korrelálva, így egy log sorból egy ugrás a létrehozó futásba.
- Metrikák: tokenek, késleltetés és költségbecslés a span lezárásakor; az aggregációhoz analitikai store kell, például DuckDB, ClickHouse vagy Postgres.
- Scorerek: előre gyártott és saját scorerek egy agenthez vagy egyetlen workflow-lépéshez, trace-enként determinisztikus mintavétellel, hogy a pontszámok futások között összehasonlíthatók maradjanak.
- Guardrailok processzorként: promptinjekció-felismerés, moderáció, PII-maszkolás, system prompt tisztítás és költsemény, mindegyik block, redact vagy warn stratégiával.
Van egy él, amit érdemes megismerni az első CI-futtatás előtt. Az agenthez vagy lépéshez csatolt scorerek magukat regisztrálják; azok a scorerek, amelyeket közvetlenül a runEvals() függvénynek vagy a quick checkeknek adsz át, a Mastra példányon is regisztrálva kell legyenek, különben minden mentés a Scorer with id <id> not found hibával elhal, és a pontszámok soha nem érkeznek meg a store-ba. A dokumentáció őszintén szól róla, hogy az eredmény egyformán, és pont ezért zavaros a hiba.
Árazás és a licencfelosztás
A keretrendszer ingyenes, és a hosztolt platformon szerzi a bevételt a szolgáltató. Az árazási oldal három szintet sorol fel, és a számláló az érdekes rész: observability események, CPU-órák, adatforgalom és egy model gateway, amely 5,5 százalékkal terheli a tokenek piaci árát.
| Szint | Ár | Observability | Számítás és megőrzés |
|---|---|---|---|
| Starter | 0 USD havonta | 100k esemény, utána 10 USD / 100k | 24 CPU-óra, utána 0,35 USD/óra; 15 napos megőrzés |
| Teams | 250 USD havonta | 1 millió esemény, utána 8 USD / 100k | 250 CPU-óra, utána 0,25 USD/óra; 6 hónapos megőrzés |
| Enterprise | Egyedi | Egyedi volumen és megőrzés | RBAC, audit naplók, uptime SLA-k, saját felhőben telepítés |
Két tétel megérdemli a figyelmet. A folyamatosan futó példány szintenként további 100 USD egy projektre, a gateway pedig a piaci ár plusz 5,5 százalék az input- és output tokenekre, saját kulccsal. A memóriát újra számolják, 10 USD millió tokenenként az első 100 ezer, illetve 1 millió fölött, így egy beszélgetős, hosszú kontextusú agent három különböző számlálóban jelenik meg.
Hol csípi
Először a gyengeségek. A kiadási tempó az üzemeltetési probléma: 301 kiadás kilencven nap alatt azt jelenti, hogy a keretrendszer saját API-ja mozog alattad, és a release note-ok olvasása a munka része. Másodszor a szélesség kétélű fegyver. A repó harnesszeket, workspace-eket, channelöket, voice-ot, böngészővezérlést, code mode-ot és agent factoryket is szállít, így egy kis csapat a felülvizsgálati területért fizet olyan funkciókért, amelyeket nem használ. Harmadszor az Observational Memory nem ingyenes, mert háttéragentek tömörítik a történetet minden forduló fölött. Negyedszer épp a Studio funkciói - time travel, experiments, evaluate fülek - az okai, hogy valaki a fizetős szinten maradjon, és ezek hiányoznak, ha a trace-ek Langfuse-ba mennek, minden más pedig self-hosted.
| Szempont | Mastra | LangGraph.js | Vercel AI SDK |
|---|---|---|---|
| Licenc | Apache-2.0 mag, enterprise az ee/-ben | MIT | Apache-2.0 |
| Lefedett terület | Agentek, workflow-k, memória, MCP, értékelések, platform | Gráf futtatás, tartós végrehajtás | Modellhívások, streaming, UI-elemek |
| Értékelések és trace-ek | beépítve, plusz hosztolt platform | a LangSmith külön és fizetős | saját szolgáltató |
| Illeszkedés | Node-ban agenteket szállító termékcsapatok | Python-first csapatok tartós gráfokhoz | Alkalmazások, amelyek főként modellkimenetet streamelnek |
| Heti letöltések, 2026. okt. 4. | 2,23 millió (@mastra/core) | 4,55 millió (@langchain/langgraph) | 34,5 millió (ai) |
Az OpenAI Agents SDK-hoz képest, amely vékonyabb, MIT licencű és közel marad a Responses API-hoz, a Mastra a hordozhatóbb és ugyanakkor nehezebb opció. Az őszinte összegzés: a Mastra szélességet és valódi értékelési hurkot vásárol, és függőségszámban fizet érte - hiszen a @mastra/core önmagában 30 közvetlen függőséget húz be -, valamint abban a tempóban, ahogyan ez a függőség változik.
Vétel
A Mastra egy jól vezetett, szokatlanul teljes keretrendszer világos középponttal: a kód, a trace-ek és az értékelések közötti hurok jobb, mint bármi, amit egy TypeScript csapatnak össze kellene raknia. A baj az, hogy mozgó cél, amelyre kereskedelmi réteg rakódott, és pont az a két dolog, ami a vásárlót leginkább érdekli - a stabil API és a változatlan licenc -, a leggyengébb terület.
- Vedd fel, ha az agent egy meglévő Node- vagy Next.js alkalmazásban szállítódik, és a csapat trace-eket, értékeléseket és workflow-motort akar hat csomag összerakása nélkül.
- Vedd fel, ha az emberi jóváhagyás, a hosszasan felfüggesztett workflow-k és az MCP eszközszerverek követelmények, nem kiegészítő funkciók.
- Vedd fel pimmelt verziókkal és CI-ban futó értékelés suite-tel, mert különben a kiadási tempó dönt a frissítési ütemről.
- Hagyd ki, ha a modellszolgáltató rögzített és a felület egyetlen chat végpont: a Vercel AI SDK vagy az OpenAI Agents SDK kisebb gond.
- Hagyd ki, ha a stack Python, vagy ha az ee/ határ valami olyanon fut át, amire a termék épül.
Források
- Mastra documentation: agents
- Mastra documentation: workflows
- Mastra documentation: memory
- Mastra documentation: MCP
- Mastra documentation: guardrails
- Mastra documentation: evals
- Mastra documentation: observability
- Mastra documentation: model providers
- Mastra pricing
- mastra-ai/mastra on GitHub
- Mastra Enterprise Edition License v2.0
Gyakori kérdések
A Mastra open source?
Nagyrészt. A mag és a monorepo túlnyomó része Apache-2.0, @mastra/core néven publikálva, amely 2026. október 7-én az 1.75.0-s verziónál állt. Az ee/ nevű könyvtárak - @mastra/core/auth/ee, @mastra/core/agent-builder/ee és @mastra/editor/ee - forráskódként elérhetők a Mastra Enterprise Edition License szerint, amely fejlesztést és tesztelést enged, produkciós használatot viszont licenckulcs és írásos szerződés nélkül nem.
Hogyan viszonyul a Mastra a LangGraph.js-hez?
A LangGraph.js tartós végrehajtásra és állapotra épülő gráf futtató motor, MIT licencű, és több heti letöltéssel rendelkezik: 4,55 millió a @mastra/core 2,23 milliójával szemben a 2026. október 4-ig tartó héten. A Mastra ezzel szemben több mindent csomagol az agent köré: memória, guardrailok, MCP szerver készítés, trace-ek, értékelések és hosztolt platform. A választás arról szól, hogy a gráf primitívek vagy a körülöttük lévő termékfelület hiányzik-e.
Támogatja a Mastra az MCP-t?
Mindkét irányban. Az MCPClient stdio és Streamable HTTP MCP szerverekhez csatlakozik, requireToolApproval kapuval és allowedHosts korlátozással. Az MCPServer a /api/mcp/:serverId/mcp úton teszi elérhetővé a Mastra agenteket, eszközöket, workflow-kat, promptokat és erőforrásokat, a protokoll 2026-07-28-as revízióját beszélve.
Mennyibe kerül a Mastra?
A keretrendszer ingyenes. A hosztolt platformon egy ingyenes Starter szint van 100k observability eseménnyel, 24 CPU-órával és 15 napos megőrzéssel, egy 250 USD/hónapos Teams szint 1 millió eseménnyel, 250 CPU-órával, 6 hónapos megőrzéssel, SSO-val és SOC 2 dokumentációval, valamint egy egyedi Enterprise szint. A folyamatosan futó példány ezen felül 100 USD projektenként, a model gateway pedig 5,5 százalékkal terheli a tokenek piaci árát.