会話履歴(メモリ)の設定
dify-docs-configure-conversation-memory
会話履歴とは
会話履歴(メモリ)とは、過去の対話内容をLLM(大規模言語モデル)に送信することで、直近の文脈を考慮した自然な回答を生成させる機能です。
メモリの効果
メモリを有効にすることで、以下のような対話品質の向上が見込めます。
- 文脈の維持: 直前の会話で提示された条件、要望、固有名詞などをふまえた回答が可能になります。
- やり取りの効率化: ユーザーが同じ情報を繰り返し入力する手間を省けます。
- 自然な対話: 話題の唐突な転換や、文脈の矛盾を防ぎ、デジタルヒューマンとしての没入感を高めます。
一方で、履歴を含める分だけ入力トークン数が増加するため、コストの増加や応答速度(レイテンシ)の遅延につながる点に注意が必要です。
メモリなし | メモリあり |
各会話が独立 | 直前の会話をふまえた回答 |
「それ」「あれ」が理解不可 | 代名詞を適切に解釈 |
コスト低 | コスト高(トークン増) |
設定方法(LLMノード)
一般的なLLMノードでの設定手順は以下の通りです。
- LLMノードの設定画面を開く
- 「メモリ(Memory)」または「会話履歴」のセクションを見つける
- 機能を有効化(ON)にする
- 保持するターン数(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トークン/回 が追加で消費されます。
コスト最適化のベストプラクティス
- 適切なターン数の設定: 必要以上に長く設定せず、業務に必要な範囲(5〜10ターン程度)に留める。
- 会話変数(Variables)の活用:
- メモリ(短期記憶): 直近の会話の流れや言い回しの保持に使用。
- 会話変数(長期記憶): 顧客の名前、確定した予約日時、NG事項などの「確定情報」は、メモリではなく変数として構造化して保持する。
- 要約機能の検討: プラットフォームが対応している場合、古い会話を要約して圧縮する機能を利用する。
まとめ
- まずは5〜10ターンを基準に設定する。
- 「直近の流れ(一時的な文脈)はメモリ、重要情報(持続的な情報)は変数」と使い分ける。
- 運用開始後は、実際の応答速度とトークンコストをモニタリングして微調整を行う。
お役に立ちましたか?
😞
😐
🤩
最終更新日 February 20, 2026