Zum Inhalt springen

Mastra - TypeScript AI Agent Framework Cheatsheet

Mastra - TypeScript AI Agent Framework Cheatsheet

Mastra ist ein Open-Source-TypeScript-Framework für AI Agents und Workflows, gebaut vom Team hinter Gatsby. Während die meisten Agent-Frameworks Python-first sind, zielt Mastra auf das JavaScript/TypeScript-Ökosystem mit voller Type-Safety: Agents mit Tools und Memory, dauerhafte Workflows, die als Graphs ausgedrückt werden mit Branching und Suspend/Resume, RAG Primitives, built-in Evals und ein lokales Dev Playground zum Iterieren von Agents im Browser.

Installation

MethodeBefehl
Create a Projectnpm create mastra@latest
Add to Existingnpm install @mastra/core
Dev Servernpm run dev (Playground bei localhost:4111)
Model Providernpm install @ai-sdk/openai (nutzt Vercel AI SDK)
VerifikationÖffne das Playground

Defining an Agent

import { Agent } from "@mastra/core/agent";
import { openai } from "@ai-sdk/openai";

export const supportAgent = new Agent({
  name: "support",
  instructions: "You are a concise support agent. Cite docs when possible.",
  model: openai("gpt-4o"),
  tools: { searchDocs },
});

const result = await supportAgent.generate("How do I rotate my API key?");
console.log(result.text);
MethodeTut
.generate(input)Führe einmal aus und gib das Ergebnis zurück
.stream(input)Streame Tokens/Steps
toolsTyped Tools, die der Agent aufrufen kann
memoryPersistente Konversations-Memory

Tools

import { createTool } from "@mastra/core/tools";
import { z } from "zod";

export const searchDocs = createTool({
  id: "search-docs",
  description: "Search the product documentation",
  inputSchema: z.object({ query: z.string() }),
  outputSchema: z.object({ results: z.array(z.string()) }),
  execute: async ({ context }) => {
    return { results: await search(context.query) };
  },
});

Zod-Schemas geben End-to-End Type-Safety — die Tool-Calls des Agenten sind validiert und typed auf beiden Seiten.

Workflows (Durable Graphs)

import { createWorkflow, createStep } from "@mastra/core/workflows";

const fetchData = createStep({ id: "fetch", execute: async () => ({ ... }) });
const analyze   = createStep({ id: "analyze", execute: async ({ inputData }) => ({ ... }) });

export const pipeline = createWorkflow({ id: "pipeline" })
  .then(fetchData)
  .then(analyze)
  .commit();
FeatureZweck
.then()Sequenzielle Steps
.branch()Conditional Paths
.parallel()Concurrent Steps
.dowhile() / .foreach()Loops über Daten
Suspend/ResumePause für Human Input, später fortsetzen
Durable ExecutionÜberlebt Restarts

Memory

TypNutze
Conversation HistoryAktuelle Turns im Kontext
Semantic RecallVector Search über vergangene Nachrichten
Working MemoryPersistente Fakten über den User
Storage AdaptersLibSQL, Postgres, Upstash

RAG Primitives

PieceStellt zur Verfügung
Document ChunkingSplit Docs mit konfigurierbaren Strategien
EmbeddingsVia den AI SDK Providern
Vector Storespgvector, Pinecone, Qdrant, Chroma
Retrieval ToolWire Retrieval in einen Agent als Tool

Evals & Observability

FähigkeitNotiz
Built-in EvalsAnswer Relevancy, Faithfulness, Toxicity, Bias
Custom ScorersDefiniere deine eigenen Metriken
TracingOpenTelemetry-kompatible Traces
PlaygroundInspiziere Agent Runs, Tools und Memory lokal

Deployment

ZielNotiz
Node Servermastra build erzeugt einen deploybaren Server
Vercel / Cloudflare / NetlifyOffizielle Deployer
ServerlessWorkflows entworfen für stateless Hosts

Mastra vs Andere Agent Frameworks

AspektMastraLangGraphCrewAI
LanguageTypeScriptPythonPython
WorkflowsDurable Graph + Suspend/ResumeStateful GraphRole-basierte Crews
Type SafetyStrong (Zod End-to-End)Python TypingPython Typing
Am besten fürTS/JS Teams, Web AppsKomplexe Stateful AgentsMulti-Agent Role Play

Das TypeScript-Pendant zu LangGraph; vergleich mit CrewAI und AutoGen für Python.

Ressourcen