LangChainエージェントのための会話メモリ
メモリを追加することで、LangChainエージェントをよりスマートにすることができます。これにより、以前のメッセージからの事実を記憶できるようになります。
この投稿では、サポートエージェントをマルチターンツールへと進化させます。
ターン1では、エージェントが顧客と請求書を検索します。 ターン2では、エージェントはIDを再度尋ねることなくチケットを作成します。
知っておくべき3つの重要な概念:
- Checkpointer: 短期メモリとして機能します。各ステップの後にメッセージと状態を保存します。
- thread_id: 会話のキーです。同じIDを使用するとチャットを継続でき、新しいIDを使用すると新しいセッションを開始できます。
- Store: ユーザーの好みなどの事実を保持するための長期メモリです。
サポートフローにおける仕組み:
- ユーザーが顧客ID 1042と請求書 8891の検索を依頼します。エージェントはそのデータを見つけます。
- ユーザーが「チケットを作成して」と言います。エージェントは最初のステップのIDを記憶しており、タスクを完了します。
テストにはMemorySaverを使用してください。ローカルプロセス内で状態を保持します。
重要:MemorySaverはコードの実行が停止するとクリアされます。本番環境では、PostgresやSQLiteなどのデータベースを使用してください。thread_id APIは変わらないため、コード自体は同じままです。
ユーザーごとに異なるthread IDを使用することで、セッションを分離してください。これにより、ある人のデータが別の人とのチャットに漏洩するのを防ぐことができます。
完全なスクリプトについては、langchain-agent-memory-nodejs-demoフォルダを確認してください。
出典: https://dev.to/zsevic/conversation-memory-for-langchain-agents-31pa
オプションの学習コミュニティ: https://t.me/GyaanSetuAi