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の認証改善でクラウドストレージの選択肢が充実し、streamUntilIdleやresume-streamで実行フローの制御も柔軟になりました。TypeScriptでエージェントを構築している開発者は、公式リリースノート(GitHub)で詳細を確認してみてください。