콘텐츠로 이동

Mastra - TypeScript AI 에이전트 프레임워크 치트시트

Mastra - TypeScript AI 에이전트 프레임워크 치트시트

Mastra는 Gatsby 팀이 만든 AI 에이전트 및 워크플로를 위한 오픈소스 TypeScript 프레임워크입니다. 대부분의 에이전트 프레임워크가 Python 우선이지만, Mastra는 완전한 타입 안전성으로 JavaScript/TypeScript 생태계를 대상으로 합니다: 도구 및 메모리가 있는 타입된 에이전트, 분기 및 일시 중단/재개가 있는 그래프로 표현된 지속가능한 워크플로, RAG 원시 요소, 기본 제공 평가, 그리고 브라우저에서 에이전트를 반복하기 위한 로컬 개발 플레이그라운드.

설치

방법명령
프로젝트 생성npm create mastra@latest
기존에 추가npm install @mastra/core
개발 서버npm run dev (플레이그라운드 localhost:4111)
모델 제공자npm install @ai-sdk/openai (Vercel AI SDK 사용)
확인플레이그라운드 열기

에이전트 정의

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);
방법역할
.generate(input)한 번 실행하고 결과 반환
.stream(input)토큰/단계 스트리밍
tools에이전트가 호출할 수 있는 타입된 도구
memory지속가능한 대화 메모리

도구

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 스키마는 종단 간 타입 안전성을 제공합니다 — 에이전트의 도구 호출이 양쪽에서 검증되고 타입됩니다.

워크플로 (지속가능한 그래프)

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();
기능목적
.then()순차 단계
.branch()조건부 경로
.parallel()동시 단계
.dowhile() / .foreach()데이터 순환
일시 중단/재개사용자 입력을 기다렸다가 나중에 재개
지속가능한 실행재시작 후 유지

메모리

유형사용
Conversation history컨텍스트의 최근 턴
Semantic recall이전 메시지에 대한 벡터 검색
Working memory사용자에 대한 지속가능한 사실
Storage adaptersLibSQL, Postgres, Upstash

RAG 원시 요소

부분제공
Document chunking구성 가능한 전략으로 문서 분할
EmbeddingsAI SDK 제공자를 통해
Vector storespgvector, Pinecone, Qdrant, Chroma
Retrieval tool검색을 에이전트 도구로 연결

평가 및 관찰성

기능참고
기본 제공 평가답변 관련성, 충실성, 독성, 편향
맞춤형 채점기자신의 메트릭 정의
추적OpenTelemetry 호환 추적
플레이그라운드로컬에서 에이전트 실행, 도구, 메모리 검사

배포

대상참고
Node servermastra build 배포 가능한 서버 생성
Vercel / Cloudflare / Netlify공식 배포자
Serverless상태 없는 호스트용 설계된 워크플로

Mastra vs 다른 에이전트 프레임워크

측면MastraLangGraphCrewAI
언어TypeScriptPythonPython
워크플로지속가능한 그래프 + 일시 중단/재개상태 유지 그래프역할 기반 크루
타입 안전성강력 (Zod 종단 간)Python 타이핑Python 타이핑
최고의 용도TS/JS 팀, 웹 앱복잡한 상태 유지 에이전트다중 에이전트 역할 극화

LangGraph의 TypeScript 대응물; CrewAIAutoGen (Python)과 비교하세요.

리소스