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

··11 perc olvasás

  • TypeScript
  • Agent framework
  • Workflows
  • MCP
  • Evals
A Mastra futtatási modelljének diagramja: egy agent eszközöket és modellt hív, alatta workflow-lépések, memória és storage, alul observability spanek sávja.

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.

Mastra runtime: agent path, workflow path, observabilityA request reaches an agent, which calls a tool and a model in a loop. Below it sit workflow steps, memory and storage. Every run is traced into spans, logs and metrics that go to Mastra storage or to OpenTelemetry-compatible backends.Mastra runtime@mastra/core 1.75.0AGENT PATHRequesttext or eventAgentmodel, toolsToolcreateTool, zodModelprovider/modelobserve and repeatWORKFLOW AND STATEWorkflow stepsthen, branch, parallelMemorythreads, observationsStorageLibSQL, PostgrestracedOBSERVABILITYSpans, logs, metrics, scorers to storage, Langfuse, Datadog, Arize
A Mastra futtatási modellje: egy agent eszközök és egy modell körül hurokozik, alatta workflow-lépések és memória, minden futás pedig trace-elődik.

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ÁrObservabilitySzámítás és megőrzés
Starter0 USD havonta100k esemény, utána 10 USD / 100k24 CPU-óra, utána 0,35 USD/óra; 15 napos megőrzés
Teams250 USD havonta1 millió esemény, utána 8 USD / 100k250 CPU-óra, utána 0,25 USD/óra; 6 hónapos megőrzés
EnterpriseEgyediEgyedi volumen és megőrzésRBAC, 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.

SzempontMastraLangGraph.jsVercel AI SDK
LicencApache-2.0 mag, enterprise az ee/-benMITApache-2.0
Lefedett területAgentek, workflow-k, memória, MCP, értékelések, platformGráf futtatás, tartós végrehajtásModellhívások, streaming, UI-elemek
Értékelések és trace-ekbeépítve, plusz hosztolt platforma LangSmith külön és fizetőssaját szolgáltató
IlleszkedésNode-ban agenteket szállító termékcsapatokPython-first csapatok tartós gráfokhozAlkalmazá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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Hagyd ki, ha a stack Python, vagy ha az ee/ határ valami olyanon fut át, amire a termék épül.

Források

  1. Mastra documentation: agents
  2. Mastra documentation: workflows
  3. Mastra documentation: memory
  4. Mastra documentation: MCP
  5. Mastra documentation: guardrails
  6. Mastra documentation: evals
  7. Mastra documentation: observability
  8. Mastra documentation: model providers
  9. Mastra pricing
  10. mastra-ai/mastra on GitHub
  11. 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.

Pont erre van szükséged?

Írj a projektedről vagy a pozícióról – szívesen hallok felőled.