---
title: 夢境蒸留
description: Deep Dream — 会話から永続記憶への自動蒸留メカニズム
---

夢境蒸留（Deep Dream）は CowAgent の記憶システムの中核的な整理メカニズムであり、散在する日次記憶を精錬された長期記憶に蒸留し、夢日記を生成します。

## 記憶の流れ

CowAgent の記憶は短期から長期まで 3 つの段階を経ます：

```
会話コンテキスト（短期）→ 日次記憶（中期）→ MEMORY.md（長期）
```

### 1. 会話 → 日次記憶

会話コンテキストがトリミングされた時、または毎日のスケジュール要約時に、LLM が会話内容を重要イベントに要約し、日次記憶ファイル `memory/YYYY-MM-DD.md` に書き込みます。

トリガー：
- **コンテキストトリミング** — ターン数またはトークン制限を超えた時、トリミングされた内容が要約されます
- **毎日のスケジュール** — 23:55 に自動トリガー
- **API オーバーフロー** — 現在の会話要約の緊急保存

### 2. 日次記憶 → MEMORY.md（蒸留）

毎日の要約完了後、Deep Dream が自動的に蒸留を実行します：

1. **材料の読み込み** — 現在の `MEMORY.md` + 当日の日次記憶
2. **LLM 蒸留** — 重複排除、統合、剪定、新情報の抽出
3. **MEMORY.md の上書き** — 精錬された長期記憶を出力
4. **夢日記の生成** — 整理過程の発見と洞察を記録

### 3. MEMORY.md の役割

`MEMORY.md` は毎回の会話のシステムプロンプトに注入され、Agent がユーザーの好み、決定、重要な事実を常に把握できるようにします。そのため簡潔に保つ必要があり、Deep Dream は約 30 項目以内に制御します。

## 蒸留ルール

Deep Dream は以下の整理ルールに従います：

| 操作 | 説明 |
| --- | --- |
| **統合・精錬** | 類似する複数の項目を 1 つの高密度な表現に統合 |
| **新規抽出** | 日次記憶から好み、決定、人物、経験を抽出 |
| **矛盾更新** | 新情報が古い項目と矛盾する場合、新情報を優先 |
| **無効クリーン** | 一時的な記録、空白項目、フォーマット残留を削除 |
| **冗長削除** | より精錬された表現でカバーされた古い項目を削除 |

## 夢日記

各蒸留で夢日記が生成され、`memory/dreams/YYYY-MM-DD.md` に保存されます。ナラティブスタイルで以下を記録します：

- 発見された重複や矛盾
- 日次記憶から抽出された新しい洞察
- 実行されたクリーンアップと最適化
- 全体的な観察

夢日記は Web コンソールの「メモリ管理 → 夢日記」タブで確認できます。

<Frame>
  <img src="https://cdn.link-ai.tech/doc/20260414110032.png" width="800" />
</Frame>

## 手動トリガー

毎日の自動実行に加えて、チャットで手動トリガーできます：

```text
/memory dream [N]
```

- `N`：直近 N 日間の記憶を整理（デフォルト 3 日、最大 30 日）
- バックグラウンドで非同期に実行され、完了するとチャットで通知されます
- Web 通知にはクリック可能なリンクが含まれ、MEMORY.md と夢日記を直接確認できます
- Agent の初期化不要 — 最初の会話前でも使用可能

<Tip>
  初回デプロイ後は `/memory dream 30` を一度実行して、すべての履歴日次記憶を MEMORY.md に蒸留することをお勧めします。
</Tip>

## 設定スイッチ

`config.json` の `deep_dream_enabled` で毎晩の自動蒸留を制御します：

```json
{
  "deep_dream_enabled": true
}
```

| 設定項目 | 説明 | デフォルト |
| --- | --- | --- |
| `deep_dream_enabled` | 毎日の定期蒸留の有効化 | `true` |

デフォルトで有効になっており、既存の動作と互換性があります。無効にすると毎晩の自動蒸留が実行されなくなります。MEMORY.md を手動管理したい場合や LLM 呼び出しを 1 回節約したい場合に適しています（日次記憶の要約には影響しません）。手動コマンド `/memory dream` もこのスイッチの影響を受けず、いつでもトリガー可能です。

## 安全メカニズム

| メカニズム | 説明 |
| --- | --- |
| **コンテンツなしでスキップ** | 日次記憶がない場合、蒸留をスキップし空の上書きを回避 |
| **入力重複排除** | スケジュールタスクで、入力材料が変更されていない場合自動スキップ |
| **非同期実行** | 蒸留はバックグラウンドスレッドで実行、会話をブロックしない |
| **順序保証** | スケジュールタスクで、日次フラッシュ完了後に蒸留を開始 |
| **捏造禁止** | プロンプトで既存の材料のみに基づく整理を明示的に制約 |
