AIエージェントにクラウドストレージのファイル操作を任せたい——そんな要望に応えるアップデートが登場しました。TypeScript製エージェントフレームワークMastraのv1.29.0では、Azure Blob Storageへの対応やストリーミングの大幅な改善など、実用性を高める機能が複数追加されています。

この記事でわかること:

  • Mastra v1.29.0で追加されたクラウドストレージ対応の内容
  • バックグラウンドタスクやサブエージェントの新しい実行方式
  • Cloudflare Workers環境でのMCP対応

Mastraとは

Mastraは、Gatsby開発チームが手がけるTypeScript製のAIエージェントフレームワークです。GitHubでは23,000以上のStarを獲得しており、エージェントの構築からワークフロー、MCP連携、評価(Evals)までを一つのフレームワークでカバーします。

2026年2月に導入された「Workspace」機能は、エージェントにファイル操作やコマンド実行、スキル参照といった能力を付与する仕組みです。ローカルファイルシステムだけでなく、S3やGCSなどクラウドストレージもマウントでき、エージェントが実際にファイルを読み書きする環境を構築できます。

Azure Blob Storageに対応

v1.29.0の目玉は、新パッケージ@mastra/azureの追加です。Azure Blob StorageをWorkspaceのファイルシステムプロバイダーとして利用できるようになりました。

認証方式は接続文字列、アカウントキー、SASトークン、DefaultAzureCredential、匿名アクセスの5種類に対応しています。プレフィックスによる名前空間の分離や読み取り専用モードも備えており、本番環境での運用を想定した設計です。

さらに、スキルバージョニング用のコンテンツアドレッサブルストアAzureBlobStoreも同梱されています。スキルの管理をAzure上で完結させる構成が取れます。

import { AzureBlobStore } from '@mastra/azure/blob';

const blobs = new AzureBlobStore({
  container: 'my-skill-blobs',
  connectionString: process.env.AZURE_STORAGE_CONNECTION_STRING,
});

S3の認証がより柔軟に

既存の@mastra/s3パッケージにも改善が入りました。AWS認証プロバイダーチェーンへの対応により、ECS、Lambda、SSO、AssumeRoleといった環境で自動的に認証情報を取得・更新できます。

これまでは静的なアクセスキーを設定する必要がありましたが、credentialsオプションにfromNodeProviderChain()を渡すだけで動的な認証が可能です。認証情報を一切指定しない場合は、AWS SDKのデフォルト認証チェーンが自動的に使われます。

import { S3Filesystem } from '@mastra/s3';
import { fromNodeProviderChain } from '@aws-sdk/credential-providers';

const fs = new S3Filesystem({
  bucket: 'my-bucket',
  region: 'us-east-1',
  credentials: fromNodeProviderChain(),
});

この変更により、クラウド環境へのデプロイ時にアクセスキーをハードコードする必要がなくなりました。

バックグラウンドタスクの完了を自動で待機

新しいstreamUntilIdle()メソッドは、エージェントのストリーミング体験を改善します。従来のstream()ではLLMの応答が返った時点でストリームが閉じるため、バックグラウンドタスクの結果を受け取るにはユーザーがもう一度メッセージを送る必要がありました。

streamUntilIdle()はバックグラウンドタスクがすべて完了するまでSSEストリームを維持し、タスク完了後にエージェントを自動で再呼び出しします。結果として、1回のリクエストで最終的な回答まで受け取れます。

HTTPサーバー側にもPOST /api/agents/:agentId/stream-until-idleエンドポイントが追加されており、クライアントSDKやReactのuseChatフックからも利用可能です。

中断したストリームの再開

エージェントの実行を途中で中断し、後からカスタムデータを渡して再開するresume-stream機能も追加されました。承認フローやユーザーの選択を待つ場面で有用です。

const agent = mastraClient.getAgent('my-agent');

const response = await agent.resumeStream(
  { approved: true, selectedOption: 'plan-b' },
  { runId: 'previous-run-id', toolCallId: 'tool-123' },
);

サーバー側のPOST /agents/:agentId/resume-streamエンドポイントとクライアントSDKのagent.resumeStream()メソッドが対応しています。

Forked Subagents:スレッドを分離した並列実行

サブエージェント(子エージェント)を「フォーク」モードで実行する機能が追加されました。親スレッドのクローン上でサブエージェントが動作するため、親の会話履歴を参照しつつも書き込みは分離されます。

親エージェントのツールやインストラクションを引き継ぎながら、プロンプトキャッシュのプレフィックスを維持する設計です。フォークされたスレッドはHarness.listThreads()からデフォルトで非表示になるため、ユーザー向けのスレッド一覧が散らかることもありません。

Cloudflare WorkersでMCPツールが動作可能に

@mastra/mcpにJSON Schemaバリデーターのパススルーオプションが追加されました。Cloudflare WorkersやV8 isolate環境では、Ajvが内部で使うnew Function()が制限されているため、outputSchemaを持つMCPツールが動作しない問題がありました。

CfWorkerJsonSchemaValidatorを指定することで、この制限を回避できます。

import { MCPClient } from '@mastra/mcp';
import { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/sdk/validation/cfworker';

const mcp = new MCPClient({
  servers: {
    upstream: {
      url: new URL('https://example/mcp'),
      jsonSchemaValidator: new CfWorkerJsonSchemaValidator(),
    },
  },
});

MCPサーバーをエッジ環境にデプロイする際の障壁が一つ取り除かれました。

既存のWorkspace機能との違い

MastraのWorkspace機能は2026年2月に登場し、当初はローカルファイルシステムとS3、GCSに対応していました。今回のv1.29.0では、Azure Blob Storageが3つ目のクラウドプロバイダーとして加わり、主要なクラウドサービスを一通りカバーした形です。

S3の認証改善も合わせると、クラウド環境でのエージェント運用が大きく現実的になりました。ローカル、S3、GCS、Azureを組み合わせて一つのファイルツリーとしてマウントできるため、マルチクラウド構成にも対応しやすい設計です。

まとめに代えて

Mastra v1.29.0は、エージェントが扱えるインフラの範囲を広げるリリースです。Azure対応とS3の認証改善でクラウドストレージの選択肢が充実し、streamUntilIdleresume-streamで実行フローの制御も柔軟になりました。TypeScriptでエージェントを構築している開発者は、公式リリースノート(GitHub)で詳細を確認してみてください。