メインコンテンツへ移動

Memory

ファイルベースの Agent は、Memory インスタンスをデフォルトエクスポートする memory.ts ファイルから Memory を取得します。このページではファイルベースの規約について説明します。メッセージ履歴、セマンティックリコール、ストレージ、Processor については、Memory のドキュメントを参照してください。

memory.ts または config.memory がない場合、デフォルトでは Agent に Memory はありません。以前のコンテキストを自分で渡さない限り、generate() または stream() の呼び出しは、記憶された会話状態がない状態で開始されます。

クイックスタート
クイックスタートへの直接リンク

Agent の config.ts と同じ階層に memory.ts を作成します。

src/mastra/agents/weather/memory.ts
import { Memory } from '@mastra/memory'

export default new Memory()

エクスポートされたインスタンスが Agent の memory になります。アプリのメイン Mastra インスタンスにストレージ Provider を設定している場合、Memory データはそこに保存されます。詳しくはストレージを参照してください。

Agent を呼び出す際に同じ resourcethread の値を使用すると、会話を継続できます。

src/app/weather-chat.ts
const response = await weatherAgent.generate('Remember that I prefer Celsius.', {
memory: {
resource: 'user-123',
thread: 'weather-chat',
},
})

Memory の設定
Memory の設定への直接リンク

デフォルトの動作では不十分な場合は、new Memory() にオプションを渡します。

src/mastra/agents/weather/memory.ts
import { Memory } from '@mastra/memory'

export default new Memory({
options: {
lastMessages: 20,
workingMemory: {
enabled: true,
scope: 'resource',
},
},
})

コンストラクターオプションについては、Memory のリファレンスを参照してください。Memory の関連機能については、次のページを参照してください。

  • ストレージ:Memory データの永続化を設定します。
  • セマンティックリコール:意味に基づいて、関連する過去のメッセージを取得します。
  • Memory Processor:Memory がモデルのコンテキストに追加する前に、メッセージをフィルタリング、トリミング、または変換します。

config との優先順位
config との優先順位への直接リンク

config.memorymemory.ts より優先されます。どちらも存在しない場合、構成されたファイルベースの Agent に Memory はありません。完全な統合ルールの表については、config.ts の優先順位を参照してください。