> For the complete documentation index, see [llms.txt](https://docs.digitalhumans.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digitalhumans.jp/dify-guide/chatflow/dify-docs-configure-conversation-memory.md).

# 会話履歴（メモリ）の設定

## 会話履歴とは

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

## メモリの効果

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

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

{% hint style="warning" %}
一方で、履歴を含める分だけ**入力トークン数が増加**するため、コストの増加や応答速度（レイテンシ）の遅延につながる点に注意が必要です。
{% endhint %}

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

## 設定方法（LLMノード）

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

1. **LLMノード**の設定画面を開きます。
2. 「メモリ（Memory）」または「会話履歴」のセクションを見つけます。
3. 機能を\*\*有効化（ON）\*\*にします。
4. 保持するターン数を設定します。画面上の「**メモリウィンドウサイズ**」がこの設定項目です。デジタルヒューマン向けの推奨値は**5〜10**です。

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

### ターンの定義

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

### ターン数の設定

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

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

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

### 推奨の理由

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

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

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

### コスト増加の仕組み

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

{% hint style="info" %}
例：1ターンあたり平均100トークンの場合、10ターンの履歴を含めると

100✕10＝約1,000トークン／回 が追加で消費されます。
{% endhint %}

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

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

## まとめ

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