エージェントメモリー
Mastraのエージェントは、会話履歴を保存し、関連情報を思い出し、インタラクション間で永続的なコンテキストを維持するための強力なメモリーシステムを活用できます。これにより、エージェントはより自然でステートフルな会話を行うことができます。
エージェントのメモリを有効にする
メモリを有効にするには、単にMemory
クラスをインスタンス化し、エージェントの設定に渡すだけです。また、メモリパッケージとストレージアダプターをインストールする必要があります:
npm install @mastra/memory@latest @mastra/libsql@latest
import { Agent } from "@mastra/core/agent";
import { Memory } from "@mastra/memory";
import { LibSQLStore } from "@mastra/libsql";
import { openai } from "@ai-sdk/openai";
const memory = new Memory({
storage: new LibSQLStore({
url: "file:../../memory.db",
}),
});
const agent = new Agent({
name: "MyMemoryAgent",
instructions: "You are a helpful assistant with memory.",
model: openai("gpt-4o"),
memory, // Attach the memory instance
});
この基本的なセットアップはデフォルト設定を使用しています。より詳細な設定情報についてはメモリのドキュメントをご覧ください。
エージェント呼び出しでのメモリの使用
インタラクション中にメモリを活用するには、エージェントのstream()
またはgenerate()
メソッドを呼び出す際にresourceId
とthreadId
を必ず提供する必要があります。
resourceId
: 通常、ユーザーまたはエンティティを識別します(例:user_123
)。threadId
: 特定の会話スレッドを識別します(例:support_chat_456
)。
// メモリを使用したエージェント呼び出しの例
await agent.stream("Remember my favorite color is blue.", {
resourceId: "user_alice",
threadId: "preferences_thread",
});
// 同じスレッドの後で...
const response = await agent.stream("What's my favorite color?", {
resourceId: "user_alice",
threadId: "preferences_thread",
});
// エージェントはメモリを使用して好きな色を思い出します。
これらのIDは、会話履歴とコンテキストが適切なユーザーと会話のために正しく保存され、取得されることを保証します。
次のステップ
Mastraのメモリ機能をさらに探索して、スレッド、会話履歴、セマンティック検索、ワーキングメモリについて学びましょう。