Mastra Client SDK
Mastra Client SDKは、クライアント環境からMastra Serverとやり取りするためのシンプルで型安全なインターフェースを提供します。
開発要件
スムーズなローカル開発を確保するために、以下が必要です:
- Node.js 18.x以降がインストールされていること
- TypeScript 4.7+(TypeScriptを使用する場合)
- Fetch APIをサポートするモダンなブラウザ環境
- ローカルのMastraサーバーが実行されていること(通常はポート4111)
インストール
npm
npm install @mastra/client-js@latest
Mastraクライアントの初期化
開始するには、必要なパラメータでMastraClientを初期化する必要があります:
lib/mastra-client.ts
import { MastraClient } from "@mastra/client-js";
export const mastraClient = new MastraClient({
baseUrl: "http://localhost:4111", // デフォルトのMastra開発サーバーポート
});
設定オプション
様々なオプションでクライアントをカスタマイズできます:
lib/mastra-client.ts
import { MastraClient } from "@mastra/client-js";
export const mastraClient = new MastraClient({
// 必須
baseUrl: "http://localhost:4111",
// 開発用のオプション設定
retries: 3, // リトライ試行回数
backoffMs: 300, // 初期リトライバックオフ時間
maxBackoffMs: 5000, // 最大リトライバックオフ時間
headers: {
// 開発用のカスタムヘッダー
"X-Development": "true",
},
});
AbortSignal
Mastra Client SDKは、標準のWeb API AbortSignal
を使用したリクエストのキャンセルをサポートしています。クライアントコンストラクタにAbortSignal
を渡すことで、すべてのリクエストのキャンセルを有効にできます:
lib/mastra-client.ts
import { MastraClient } from "@mastra/client-js";
const controller = new AbortController();
export const mastraClient = new MastraClient({
baseUrl: "http://localhost:4111",
abortSignal: controller.signal,
});
// このクライアントからのすべてのリクエストをキャンセル
controller.abort();
例
MastraClientが初期化されたら、型安全なインターフェースを通じてクライアント呼び出しを開始できます
// Get a reference to your local agent
const agent = client.getAgent("dev-agent-id");
// Generate responses
const response = await agent.generate({
messages: [
{
role: "user",
content: "Hello, I'm testing the local development setup!",
},
],
});
利用可能な機能
Mastraクライアントは、Mastra Serverによって提供されるすべてのリソースを公開します
- Agents: AIエージェントの作成と管理、レスポンスの生成、ストリーミングインタラクションの処理
- Memory: 会話スレッドとメッセージ履歴の管理
- Tools: エージェントが利用可能なツールへのアクセスと実行
- Workflows: 自動化されたワークフローの作成と管理
- Vectors: セマンティック検索と類似性マッチングのためのベクトル操作の処理
ベストプラクティス
- エラーハンドリング: 開発シナリオに対して適切なエラーハンドリングを実装する
- 環境変数: 設定には環境変数を使用する
- デバッグ: 必要に応じて詳細なログ記録を有効にする
// Example with error handling and logging
try {
const agent = client.getAgent("dev-agent-id");
const response = await agent.generate({
messages: [{ role: "user", content: "Test message" }],
});
console.log("Response:", response);
} catch (error) {
console.error("Development error:", error);
}
Debug
- サーバー上でMastraClientをクライアントの代わりに使用する場合(例:
/api/chat
)、 クライアントへのレスポンスを再作成する必要がある場合があります:
const result = agent.stream(/* get your agent stream */);
return new Response(result.body);