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 — для отладки и оценки производительности
Агентность как спектр
Один из самых интересных моментов подкаста — обсуждение того, что такое агент. Оказывается, это не бинарное понятие, а спектр:
- Простой LLM-вызов — базовая форма агентности
- Структурированные workflows — вы контролируете шаги, но внутри них используется LLM
- Одиночный агент — использует LLM и инструменты для оркестрации
- Сеть агентов — “просто передайте все примитивы и молитесь” (шутка основателей)
“Агентность — это спектр”, — подчёркивает Сэм. Чем больше элементов (память, инструменты, рефлексия, выполнение кода), тем выше уровень агентности.
Композиция примитивов
Одна из ключевых идей 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 для выполнения кода
Ключевые уроки
- Агентность — это спектр, а не бинарное состояние
- Оставайтесь в “детском саду” — постоянно учитесь, будьте скромными
- Стройте отличный продукт — если разработчики полюбят ваш инструмент, LLM подхватят это из интернета
- Документация критична — особенно для новых технологий
- Developer Experience имеет значение — визуальные инструменты помогают понять сложные концепции
Как начать
Основатели рекомендуют:
- Установить через
npm create mastra@latest - Прочитать книгу (бесплатно на mastra.ai/book)
- Присоединиться к Discord-сообществу
- Посетить воркшопы (каждый четверг) и live-стримы (каждый понедельник)
“Погрузитесь в это на месяц-два, и вы перейдёте от ‘я ничего не понимаю’ к ‘вау, это действительно круто’”, — советует Сэм.
Источник: Software Engineering Daily подкаст с Сэмом Бхагватом и Абхи Айером, основателями Mastra.
Читай также
- Паттерны проектирования ИИ-агентов - Каталог из 18 архитектурных паттернов для проектирования агентов на основе foundation models
- Agent Adapter - Паттерн адаптера для подключения агентов к внешним инструментам