Skip to Content
БлогMastra: TypeScript-фреймворк для AI-агентов

Mastra: TypeScript-фреймворк для AI-агентов

Недавно послушал подкаст Software Engineering Daily с основателями Mastra — Сэмом Бхагватом (со-основатель Gatsby) и Абхи Айером. Они рассказали о создании TypeScript-фреймворка для разработки AI-агентов. Вот краткий пересказ основных моментов.

Рождение из фрустрации

История Mastra началась в октябре 2024 года, когда команда работала над CRM-системой под названием Kepler. При попытке интегрировать AI-функциональность они столкнулись с проблемой: существующие TypeScript-библиотеки для работы с AI были недостаточно хороши.

“Мы все были TypeScript-инженерами, и нам просто нужно было что-то, что работает в нашей экосистеме”, — объясняет Сэм. После девяти месяцев работы над CRM команда поняла, что настоящая проблема — это отсутствие качественного инструмента для создания агентов на TypeScript. Так родилась идея Mastra.

Почему TypeScript, а не Python?

Большинство AI-фреймворков написаны на Python, что создаёт сложности при разработке full-stack приложений с JavaScript/TypeScript фронтендом. Mastra решила эту проблему, предоставив нативный TypeScript-фреймворк.

“Когда вы строите на API, вам не нужна вся эта математика машинного обучения. Вы можете использовать любой язык — почему бы не TypeScript?” — говорит Абхи. Это позволяет разработчикам использовать один язык для всего стека, что значительно упрощает разработку.

Что такое Mastra?

Mastra — это TypeScript-фреймворк для создания AI-агентов с набором примитивов:

  • Агенты — выполняют задачи в цикле, принимают решения
  • Инструменты (Tools) — функции, которые агенты могут вызывать
  • Workflows — структурированные графы выполнения с ветвлением
  • RAG — Retrieval Augmented Generation для работы с данными
  • Память — краткосрочная и долгосрочная
  • Трассировка и eval — для отладки и оценки производительности

Агентность как спектр

Один из самых интересных моментов подкаста — обсуждение того, что такое агент. Оказывается, это не бинарное понятие, а спектр:

  1. Простой LLM-вызов — базовая форма агентности
  2. Структурированные workflows — вы контролируете шаги, но внутри них используется LLM
  3. Одиночный агент — использует LLM и инструменты для оркестрации
  4. Сеть агентов — “просто передайте все примитивы и молитесь” (шутка основателей)

“Агентность — это спектр”, — подчёркивает Сэм. Чем больше элементов (память, инструменты, рефлексия, выполнение кода), тем выше уровень агентности.

Композиция примитивов

Одна из ключевых идей Mastra — возможность композиции примитивов. Агенты могут вызывать workflows, workflows могут содержать агентов, всё это можно комбинировать для создания сложных систем.

Например, если у агента слишком много инструментов (больше 8-10), их можно сгруппировать в workflows. Агент вызывает workflow, который содержит подмножество инструментов, что упрощает принятие решений.

Workflows: от скептицизма к ключевому примитиву

Интересно, что изначально команда почти не хотела делать workflows, думая, что можно использовать Temporal или другие workflow-движки. Но они поняли, что для AI-инжиниринга критически важны:

  • Встроенная трассировка каждого шага
  • Возможность тестирования и перепроигрывания
  • Визуализация выполнения

“В AI-инжиниринге недетерминизм — это часть игры”, — объясняет Абхи. Workflows помогают добавить структуру и наблюдаемость к недетерминированным LLM-вызовам.

Примеры использования

Основатели рассказали о нескольких интересных кейсах:

  • Аэрокосмическая индустрия: генерация CAD-диаграмм из 100-страничных PDF-мануалов с извлечением технических характеристик
  • Ветеринария: преобразование устных заметок в структурированные задачи в системе управления
  • Вертикальные агенты: специализированные агенты для конкретных индустрий (финансы, производство, оборона)
  • Внутренние инструменты: помощники для продажников, автоматизация процессов
  • Персональные проекты: например, генератор детских книг со стабильными персонажами и изображениями

MCP: счастливая случайность

Команда “случайно” наткнулась на Model Context Protocol (MCP) в ноябре 2024 года, как раз когда думали о том, как интегрировать множество инструментов. Они решили сделать ставку на MCP и оказались в нужном месте в нужное время.

MCP стал для них “лучшим NPM” — децентрализованным способом доступа к инструментам. Агенты Mastra могут использовать MCP-серверы, написанные на любом языке, что открывает огромные возможности для интеграций.

Они даже создали “MCP registry registry” (реестр реестров) — изначально как шутку, но это стало реальной функциональностью для обнаружения инструментов.

Документация как второй продукт

“В Mastra мы считаем документацию нашим вторым продуктом”, — говорит Сэм. Они создали:

  • MCP doc server — документация прямо в IDE через MCP
  • Mastra 101 — интерактивный курс через MCP, который может говорить на любом языке
  • Книгу “Principles of Building AI Agents” — 140 страниц о концепциях AI-инжиниринга

Курс Mastra 101 — возможно, первый в мире курс, выпущенный как MCP-сервер. Он отслеживает прогресс и может обучать на любом языке, так как использует LLM для преподавания.

Developer Experience: от провала к успеху

Интересная история о том, как они почти провалились с первой версией. Изначально Mastra был GUI-driven, где агенты создавались через JSON и интерфейс. Когда они показали это людям, все сказали “это круто” — что в мире dev tools означает “это ужасно”.

“Я был в отчаянии. Мы были в баре, и я сказал: ‘Ребята, нам нужно всё переделать’”, — вспоминает Абхи.

Они переделали всё на code-first подход, но сохранили playground — визуальный инструмент для тестирования. Playground показывает:

  • Чат с агентом
  • Трассировку выполнения
  • Визуализацию workflows
  • Входы и выходы каждого шага

Это стало возможным благодаря опыту команды в бандлинге JavaScript из времён Gatsby. “Нас называют ‘bundle ruskies’ — нас осталось очень мало людей, которые умеют бандлить JavaScript”, — шутит Сэм.

Roadmap и будущее

Команда работает над:

  • Synthetic evals — превращение трассировок в тесты
  • Agent learning — улучшение агентов на основе прошлого опыта
  • Безопасность и guardrails — контроль входов и выходов
  • Мультимодальность — поддержка изображений, голоса, видео
  • Интеграции — Copilot Kit, Assistant UI, sandboxes для выполнения кода

Ключевые уроки

  1. Агентность — это спектр, а не бинарное состояние
  2. Оставайтесь в “детском саду” — постоянно учитесь, будьте скромными
  3. Стройте отличный продукт — если разработчики полюбят ваш инструмент, LLM подхватят это из интернета
  4. Документация критична — особенно для новых технологий
  5. Developer Experience имеет значение — визуальные инструменты помогают понять сложные концепции

Как начать

Основатели рекомендуют:

  • Установить через npm create mastra@latest
  • Прочитать книгу (бесплатно на mastra.ai/book)
  • Присоединиться к Discord-сообществу
  • Посетить воркшопы (каждый четверг) и live-стримы (каждый понедельник)

“Погрузитесь в это на месяц-два, и вы перейдёте от ‘я ничего не понимаю’ к ‘вау, это действительно круто’”, — советует Сэм.


Источник: Software Engineering Daily подкаст с Сэмом Бхагватом и Абхи Айером, основателями Mastra.

Читай также

Last updated on