世界を動かす技術を、日本語で。

Show HN: Mastra 1.0、Gatsby開発者によるオープンソースのJavaScriptエージェントフレームワーク

概要

Mastraは、TypeScriptでAIアプリやエージェントを構築するためのオープンソースフレームワーク。 ReactやNext.jsなどのフロントエンド・バックエンドとの統合や、単体サーバーとしての展開が可能。 40以上のAIモデルプロバイダーとの接続、エージェントワークフローの構築、ヒューマンインザループ機能などを搭載。 大規模なnpmダウンロード数とGitHubスターを持ち、商用利用実績も豊富。 開発者向けのドキュメント、コミュニティサポート、貢献ガイドも充実。

Mastra概要

  • TypeScript に特化したAIアプリケーション・エージェント構築フレームワーク
  • React、Next.js、Node.js など主要なフレームワークとシームレスな統合
  • スタンドアロン サーバーとしての展開や既存プロジェクトへの組み込みが可能
  • プロトタイプから本番運用 まで一貫した開発体験を提供

主な特徴

  • モデルルーティング
    • 40以上のAIプロバイダーに標準インターフェースで接続
    • OpenAI、Anthropic、Gemini等のモデル利用
  • エージェント構築
    • LLMとツールを組み合わせた自律型エージェントの作成
    • 目標推論、ツール選択、内部反復処理による柔軟なタスク解決
  • ワークフローエンジン
    • グラフベースのワークフローで複雑なマルチステップ処理を制御
    • 直感的な構文(.then(), .branch(), .parallel())によるフロー記述
  • ヒューマンインザループ
    • エージェントやワークフローの途中でユーザー入力や承認を待機
    • 実行状態の保存により、無期限の一時停止と再開が可能
  • コンテキスト管理
    • 会話履歴、API・DB・ファイルからのデータ取得
    • 人間的なワーキングメモリやセマンティックメモリによる一貫性のあるエージェント挙動
  • 統合性
    • 既存のReact、Next.js、Node.jsアプリへの組み込み
    • VercelのAI SDK UIやCopilotKitとの連携でWeb上のAIアシスタント実現
  • MCPサーバー
    • Model Context Protocolサーバーとしてエージェントやツールを公開
    • MCP対応システムやエージェントからアクセス可能
  • プロダクション対応機能
    • 内蔵の評価(evals)・オブザーバビリティで継続的な改善を支援
    • エージェントの挙動観察・測定・チューニングが容易

最新アップデート(Mastra 1.0)

  • 600以上のモデルへのネイティブルーティング
    • モデル文字列指定とTypeScriptオートコンプリート、フォールバック対応
  • ガードレール
    • 低遅延な入力・出力処理(プロンプトインジェクション検知、PIIマスキング、コンテンツモデレーション)
  • スコアラー
    • エージェント出力を評価する非同期evalプリミティブ
    • Mastra Studioでの実行・結果保存に対応
  • AIトレーシング
    • LangfuseやBraintrust等との連携によるコール単位コスト計測
  • メモリプロセッサ.network() メソッド
    • 任意のエージェントをルーティングエージェント化
  • サーバーアダプター
    • ExpressやHonoなど既存サーバーへのMastra統合
  • Apache 2.0ライセンス
    • 商用利用や企業導入(Replit、PayPal、Sanity等)実績

導入方法

  • npm create mastra@latest コマンドで素早くプロジェクト作成
  • 公式ドキュメントに詳細なインストール・セットアップ手順掲載
  • テンプレート、講座、YouTube動画による初心者向けガイド

ドキュメント・サポート

  • 公式ドキュメントサイトで詳細なAPI・ガイドを提供
  • MCPサーバー構築ガイド(@mastra/mcp-docs-server)でIDE連携も可能
  • オープンなDiscordコミュニティ で質問・サポート受付
  • GitHubスターやフィードバック歓迎

コントリビューション・セキュリティ

  • コード、テスト、仕様策定など多様な貢献を歓迎
  • コントリビューション前にIssueでの議論を推奨
  • 開発ドキュメントにセットアップ情報掲載
  • セキュリティ報告は security@mastra.ai まで責任ある開示を要請

補足情報(開発者メッセージ)

  • MastraはHacker Newsコミュニティからのフィードバックで成長
  • 週30万以上のnpmダウンロード、19,400以上のGitHubスター獲得
  • エージェント開発の進化に合わせて機能を継続拡張
  • 開発チーム(Sam, Shane, Abhi)がコミュニティとの対話を重視
  • 体験や質問は npm create mastra@latest で気軽にスタート可能

Hackerたちの意見

最後のやつはちょっと時間かかったな。ESM/CJSのバンドルの迷宮にハマっちゃって、モノレポの問題にもぶつかって、結局もっと明示的なアプローチを選んだよ。ベトナム戦争のフラッシュバックが…ローンチおめでとう、みんな!!!独立した第三者の推薦が欲しい人のために、BrexのCTOがMastraについて話してるのがあるよ。http://latent.space/p/brex

LOL、ありがとう、swyx。そうだね、あの戦争をもう一度戦うことはできるけど…みんなのためには戦わない方がいいよね…

そのBrexのやつは実は見てなかったから、シェアしてくれてありがとう!!

Mastraを使って2週間くらい経つけど、めっちゃ気に入ってる!1.0到達おめでとう!VercelのAIエレメンツ/SDKの上に構築されてるけど、それはいい判断だったと思う。俺のメンタルヒューリスティックはこうだ:Vercel AI SDK = ライブラリ、低レベルのMastra = フレームワーク。で、Vercel AI ElementsはオプションのプリビルドUIを提供してくれる。ただ、先週AI SDK 6.0のリリースに関するブログ記事を読んだけど、フレームワーク寄りにシフトしてるみたいだね。これについてどう思う?この2つのツールは今後さらに連携していくのかな?https://vercel.com/blog/ai-sdk-6

女性に年齢を聞いたり、男性に給料を聞いたり、エージェントフレームワーク開発者に長期計画を聞いたりするな。

AI SDKチームにはめっちゃリスペクトしてる。最初はAI SDKのモデルルーティングだけ使ってたけど、今は自分たちのビルトインモデルルーティングもあるよ。それぞれ違うアーキテクチャを持ってると思う。AI SDKはもっと低レベルで、Mastraはスタジオ、評価、メモリ、ワークフローの一時停止/再開などのストレージと統合されてる感じ。

Mastraを3ヶ月使ったけど、すごく良かった。素晴らしい製品を作ってくれてありがとう。一つ考慮すべきことは、非LLMエージェントでワークフローや分岐ロジックを扱うのがちょっともたついたことかな。ルールベースのロジックとヒューリスティックを優先して使いたい。そうすれば、もし大きなLLMモデルを使う必要が出てきても、すでにコンテキストエンジニアリングが解決済みだから。俺にとって、エージェントってのはエージェンシーを持つもの全てを意味する。数週間のフラストレーションの後、自分のカスタム分岐ワークフローを使い始めた。ルールを使う理由の一つは、無料で10,000倍速いから。バリデーションルールが通らなかった時のLLMエージェントのフォールバックもできるし。毎回問題を解決するためにLLMエージェントを動かす代わりに、LLMにルールを書かせることができる。全体的にごちゃごちゃになっちゃったけど、MastraはTypeScriptでの作業には最高だよ。

使ってくれてありがとう、フィードバックも感謝!ルールをどう書きたかったのか、コードスニペットを共有してもらえる?望んでいる文法や構文をもっと理解したいんだ。

LLMなしで合理的に解決できるステップは、LLMなしで解決すべきだと学んだ。信頼性、コスト、パフォーマンスなどを考慮して、できるだけLLMから作業を移して、決定論的なステップにするようにしてる。これには、通常は決定論的な性質を持つ「オーケストレーション」レイヤーのほとんどが含まれる。適切な場所に少しAIを加えれば、本当に賢いものができる。AIに頼りすぎると、マジでバカになるからね。タスクはできるだけ小さくシンプルに(理想は一ステップ)、必要なコンテキストとツールだけを与えて、他は何も与えず、失敗したときにはフィードバックを与える(理想は決定論的に)ことが大事。あとはうまくいくことを願うだけ。

クイックスタートを試して、最初のエージェント「Friendo」を作ったよ。こいつは俺の親友みたいな存在で、ちょっとおしゃべりした。UIもいいし、システムもクールだね。もっと遊んで何か作りたいけど、まだ何を作るかは決めてないんだ。

Mastra、めっちゃいい感じ! - MastraとTanstack AIを比べるとどうなる?それとも、Vercel AI SDKみたいにTanstack AIの上に何か作る予定とかある? - Mastraクラウドがあるから、ホスティング版にしかない機能について何かアイデアある?

Tanstack AIについては、採用次第だね。Tannerとはreact-staticの頃からの付き合いで、もしこれが流行れば一緒にやるつもり。Mastraクラウドについては、基本的にホスティングサービスだよ。例えば、可視化やホスティングスタジオ、サーバーレスデプロイメントなど、フレームワークとは別物ね。サーバーアダプターを使えば、自分のインフラにスタジオをデプロイできる。マルチプロジェクトやマルチユーザーのMastraクラウド機能をMastra管理機能に統合して、ローカルで動かしたり、自分のインフラにデプロイできるようにする予定だよ(RBACみたいなものにはEEライセンスが必要)。続報をお楽しみに。

そのリポジトリには、Sam Bhagwatの「AIエージェントを構築するための原則」という簡潔で信号が高い本があるよ。 https://github.com/mastra-ai/mastra/blob/main/book/principle...

イースターエッグ見つけたね!

claude agents SDKと比べるとどうなる? * openai agents SDK * claude agents SDK * mastra の中からどうやって選べばいい?

どちらもいい選択肢だよ。全部試してみて、自分に合ったものを見つけてみて!

それを見るのが楽しみ!

みんなが前に進んでるのが嬉しいよ。コメント欄をもうちょっとバランスよくしたいから、俺の経験をシェアするね。Mastraは設計上、バッテリー込みで意見が強いから、既存のパターンに合わないと生産性を保つのが難しいんだ。うちのシステムでも、何度か自分たちでhonoルートを作らなきゃいけなかった。今は誰かがlanggraph/langchainで全部を再構築してるところで、その後に詳しい比較を書こうと思ってる。Mastraには確かにいいアイデアがたくさんあるし、JS TSファーストなのも嬉しい。TSファーストのアプローチのおかげで、これからも成長すると思うよ。

1.0のローンチおめでとう!ワークフローとエージェントの構成プリミティブがよく設計されてるね。観測性についてちょっと気になるんだけど、エージェントがツールを呼び出すとき、実際に外部APIに送信されたものをどうやってデバッグしてるの?俺たちもそれがエージェント開発で一番難しい部分だって気づいたんだ。「ローカルでは動くけど、プロダクションでは失敗する」っていうデバッグループがね。もっとプロダクション向けのエージェントフレームワークが出てきてるのを見るのはいいね。プロジェクトをフォローしていくよ!