会話履歴(メモリ)の設定

dify-docs-configure-conversation-memory

会話履歴とは

会話履歴(メモリ)とは、過去の対話内容をLLM(大規模言語モデル)に送信することで、直近の文脈を考慮した自然な回答を生成させる機能です。

メモリの効果

メモリを有効にすることで、以下のような対話品質の向上が見込めます。

  • 文脈の維持: 直前の会話で提示された条件、要望、固有名詞などをふまえた回答が可能になります。
  • やり取りの効率化: ユーザーが同じ情報を繰り返し入力する手間を省けます。
  • 自然な対話: 話題の唐突な転換や、文脈の矛盾を防ぎ、デジタルヒューマンとしての没入感を高めます。
⚠️

一方で、履歴を含める分だけ入力トークン数が増加するため、コストの増加や応答速度(レイテンシ)の遅延につながる点に注意が必要です。

メモリなし
メモリあり
各会話が独立
直前の会話をふまえた回答
「それ」「あれ」が理解不可
代名詞を適切に解釈
コスト低
コスト高(トークン増)

設定方法(LLMノード)

一般的なLLMノードでの設定手順は以下の通りです。

  1. LLMノードの設定画面を開く
  1. 「メモリ(Memory)」または「会話履歴」のセクションを見つける
  1. 機能を有効化(ON)にする
  1. 保持するターン数(Window Size)を設定する

ターン数の考え方と推奨設定

ターンの定義

本ガイドラインでは、1ターン = 「ユーザーの発言 + アシスタントの応答」の1往復と定義します。 したがって、「メモリ10ターン」の設定は、直近の10往復分(合計約20メッセージ)をコンテキストとしてLLMに渡すことを意味します。

ターン数の設定

ターン数
特徴
用途
0
メモリなし
単発Q&A
3〜5
短期記憶
一般的な対話
5〜10
中期記憶
デジタルヒューマン(推奨
10以上
長期記憶
複雑な相談

デジタルヒューマン向け推奨値

  • 推奨ターン数: 5 〜 10 ターン

推奨の理由

  • 会話品質: 接客や案内などのシナリオでは、直近の文脈(比較中の商品、ユーザーの制約条件など)を維持するために一定の長さが必要です。
  • パフォーマンス: これより長くしすぎると、トークン課金が増大し、生成までの待ち時間も長くなる傾向があります。
  • リスク回避: 短すぎると「さっき言ったこと」を忘れる現象が起き、ユーザー体験を損ないます。
💡

最適な値はユースケースによって異なります。まずは「5〜10」で運用を開始し、実際の会話ログとコストを見ながら調整してください。

コスト管理と最適化の指針

コスト増加の仕組み

履歴が積み重なると、毎回のAPIリクエストに含まれるトークン数が増加します。

💡

例:1ターンあたり平均100トークンの場合、10ターンの履歴を含めると

100✕10=約1,000トークン/回 が追加で消費されます。

コスト最適化のベストプラクティス

  1. 適切なターン数の設定: 必要以上に長く設定せず、業務に必要な範囲(5〜10ターン程度)に留める。
  1. 会話変数(Variables)の活用:
      • メモリ(短期記憶): 直近の会話の流れや言い回しの保持に使用。
      • 会話変数(長期記憶): 顧客の名前、確定した予約日時、NG事項などの「確定情報」は、メモリではなく変数として構造化して保持する。
  1. 要約機能の検討: プラットフォームが対応している場合、古い会話を要約して圧縮する機能を利用する。

まとめ

  • まずは5〜10ターンを基準に設定する。
  • 「直近の流れ(一時的な文脈)はメモリ、重要情報(持続的な情報)は変数」と使い分ける。
  • 運用開始後は、実際の応答速度とトークンコストをモニタリングして微調整を行う。
お役に立ちましたか?
😞
😐
🤩

最終更新日 February 20, 2026