Найти в Дзене

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

Оглавление

Сегодня разработки вокруг языковых моделей идут полным ходом: кто-то внедряет ChatGPT в мобильные приложения, а кто-то развивает мультимодальные агенты, способные действовать в самых разных системах. В этой среде и появился Mastra — открытый (Open-Source) TypeScript-фреймворк, который призван упростить разработку приложений на базе ИИ. Более того, в его корнях видны разработчики из мира Gatsby, что уже задаёт высокий «уровень доверия» к качеству кода.

Что такое Mastra и чем оно интересно

🚀 Цель проекта
Главная идея Mastra — дать полный набор «кирпичиков» для построения ИИ-функций: агенты, инструменты (tools), последовательность действий (workflows), RAG (retrieval augmented generation - генерация, дополненная извлечением) и система автоматической оценки (evals). Всё это в одном месте, написано на TypeScript, что обещает удобство и контроль типов.

🔄 Агенты, которые вызывают функции
Mastra отличается от классического подхода «LLM+Prompts» тем, что вы создаёте «агентов» — они имеют доступ к инструментам (Tools), которые могут быть как вашим собственным API, так и интеграциями с внешними сервисами. Агент смотрит, какую функцию ему нужно вызвать, передаёт туда параметры, а затем на основе ответа решает, что делать дальше.

🧩 Последовательность действий (Workflows)
Одна из ключевых особенностей Mastra — надёжная последовательность действий на основе конечных автоматов. Вы можете задавать циклы, ветвления, шаги с ожиданием пользовательского ввода и обрабатывать ошибки. Причём всё это можно описывать кодом или (как заявляют авторы) при помощи визуального редактора. Каждый шаг автоматически логируется с помощью OpenTelemetry, что очень удобно при отладке.

💡 RAG (генерация, дополненная извлечением)
Фреймворк внедряет концепцию RAG — когда модель использует вашу базу знаний (через векторный поиск, разбиение на фрагменты - chunking), чтобы точнее отвечать на вопросы или принимать решения. Mastra здесь предоставляет набор интеграций для создания и подключения векторных баз данных (vector store) и механизма запросов.

⚙️ Система автоматической оценики (Evals)
Наконец, в Mastra есть система оценок (evals). Это своеобразные «автотесты» для генераций модели: можно проверять ответы на релевантность, грамматические ошибки, соответствие правилам, используя разные подходы (модельная оценка, правила, статистика).

Технические подробности реализации

🛠 TypeScript First
Проект почти на 100% написан на TypeScript, что позволяет:

  • Внедрять строгую типизацию между агентами, инструментами и последовательностью действий (воркфлоу).
  • Упрощать рефакторинг кода и уменьшать вероятность ошибок из-за несовпадения структур данных.

🌐 Поддержка LLM-провайдеров
Mastra использует Vercel AI SDK, обеспечивая «единый интерфейс» для OpenAI, Anthropic, Google Gemini и других моделей. Можно менять модель или провайдера, а также делать стриминг ответов (streaming tokens).

🧩 Интеграции
Внутри фреймворка предусмотрена система автогенерации клиентов для внешних API, которые затем «превращаются» в Tools (схемы ввода-вывода, логику вызова). Это значит, что агент может вызывать API сторонних сервисов, и всё это «типизировано» и контролируется Mastra.

🌀 Система хранения (RAG)
Применяется ETL-пайплайн: тексты разбиваются, превращаются в эмбеддинги, хранятся в векторном хранилище. Затем агент может обращаться к этим фрагментам по запросу, что даёт более точные ответы и возможность держать в памяти большой контекст.

Личный взгляд: какие сценарии могут быть особенно полезны

Интерактивный чат с расширенными функциями
Представьте бота, который умеет не просто отвечать на вопросы, а ещё и звонить по API-телефонии, отправлять e-mail, проверять календарь, заглядывать в CRM. Mastra упрощает создание такого «умного ассистента», а вы можете не тонуть в бесконечных «if/else».

🤖 Автоматизация бизнес-процессов
Например, воркфлоу, где модель обрабатывает обращения клиентов, запрашивает дополнительные данные из базы, формирует ответ и в конце отправляет результат пользователю. Благодаря графам состояний можно настраивать сложную логику без необходимости вручную отслеживать все ветки.

🔬 Эксперименты с RAG
Если вам интересно, как ваша LLM будет «читать» документацию или обрабатывать большие массивы текстов, Mastra предоставляет готовые инструменты для конвейера разбиение текста (chunking) → векторизация (embedding) → векторный поиск (vector search), что упрощает пилотные проекты.

Быстрый старт: рекомендации от авторов

👉 Установить Node.js (>= v20.0).
👉
Получить API-ключ от одного из LLM-провайдеров (OpenAI, Anthropic, Google Gemini).
👉
Создать новый проект с помощью npx create-mastra@latest.
👉
Запустить:

npm run dev

Затем вы сможете открыть тестовую площадку Mastra, протестировать своих агентов и воркфлоу вживую. Если применяете Anthropic, нужно задать переменную среды ANTHROPIC_API_KEY, для Gemini — GOOGLE_GENERATIVE_AI_API_KEY.

Где почитать и как поучаствовать

📖 Репозиторий GitHub: mastra-ai/mastra
— Здесь вы найдёте все файлы, документацию (папку docs) и примеры использования.

🌐 Официальный сайт: mastra.ai
— Подробности о возможностях и будущих планах проекта.

🤝 Вклад:
— Разработчики приветствуют баг-репорты и идеи, но просят сначала создать задачу (issue), прежде чем открывать pull request. Описание сборки и запуска приводится в файле DEVELOPMENT.md.

Заключение

Mastra — это смелая попытка «упростить и ускорить» работу с ИИ в JavaScript/TypeScript-экосистеме. Благодаря наследию от Gatsby, можно ожидать качественную архитектуру и сообщество, уделяющее внимание разработчикам. Если вы ищете способ быстро собрать вместе LLM, воркфлоу, внешние API и продвинутые метрики, то Mastra обещает помочь без необходимости строить всё вручную.

Сейчас проект в альфа-статусе, поэтому ожидаются изменения и улучшения. Но уже сейчас, судя по README и обилию фич, это очень интересная платформа для тех, кто занимается генеративным ИИ и хочет большего, чем просто «запрос + ответ».

Ссылка на репозиторий:
Mastra – Open-source JS agent framework, by the developers of Gatsby