---
title: 长期记忆
description: CowAgent 的长期记忆系统 — 文件持久化、自动写入与混合检索
---

长期记忆保存在工作空间文件中，跨会话持久存在。Agent 在对话中通过检索工具按需加载历史记忆，也会在上下文裁剪时自动将对话摘要写入长期记忆。

## 记忆类型

### 核心记忆（MEMORY.md）

存储在 `~/cow/MEMORY.md` 中，包含用户的长期偏好、重要决策、关键事实等不会随时间淡化的信息。Agent 可通过工具读写此文件来维护长期知识。

### 日级记忆（memory/YYYY-MM-DD.md）

存储在 `~/cow/memory/` 目录下，按日期命名（如 `2026-03-08.md`），记录每天的对话摘要和关键事件。仅在首次写入时创建，避免生成空文件。

### 梦境日记（memory/dreams/YYYY-MM-DD.md）

Deep Dream（记忆蒸馏）过程的副产物，记录每次整理的发现、去重合并操作和新洞察。存储在 `~/cow/memory/dreams/` 目录下，按日期命名。

## 自动写入

Agent 通过以下机制自动将对话内容持久化为长期记忆：

- **上下文裁剪时** — 当对话轮次或 token 超出配置上限时，裁剪最早一半的上下文，使用 LLM 将被裁剪的内容总结为关键信息写入当天记忆文件，并将摘要异步注入到保留的上下文中，帮助模型保持对话连贯性
- **每日定时总结** — 每天 23:55 自动触发一次全量总结，防止低活跃日无记忆留存（内容无变化时自动跳过）
- **[梦境蒸馏（Deep Dream）](/memory/deep-dream)** — 每日总结完成后自动执行，将天级记忆蒸馏合并到 MEMORY.md，并生成梦境日记
- **API 上下文溢出时** — 当模型 API 返回上下文溢出错误时，紧急保存当前对话摘要

所有记忆写入均在后台异步执行（LLM 总结 + 文件写入），不阻塞正常对话回复。

## 记忆检索

记忆系统支持混合检索模式：

- **关键词检索** — 基于 FTS5 全文索引匹配历史记忆，支持 BM25 排序
- **向量检索** — 基于 embedding 语义相似度搜索，即使表述不同也能找到相关记忆

Agent 会在对话中根据需要自动触发记忆检索，将相关历史信息纳入上下文。检索结果按混合评分排序（默认向量权重 0.7、关键词权重 0.3），日级记忆会随时间衰减（半衰期 30 天），核心记忆不衰减。

## 相关文件

工作空间（默认 `~/cow`）中与记忆相关的文件：

| 文件 | 说明 |
| --- | --- |
| `AGENT.md` | Agent 的人格和行为设定 |
| `USER.md` | 用户身份信息和偏好 |
| `RULE.md` | 自定义规则和约束 |
| `MEMORY.md` | 核心记忆（长期） |
| `memory/YYYY-MM-DD.md` | 日级记忆（按需创建） |
| `memory/dreams/YYYY-MM-DD.md` | 梦境日记（Deep Dream 自动生成） |

## Web 控制台

在 Web 控制台的记忆管理页面中，可浏览记忆文件和梦境日记，支持通过 Tab 切换查看：

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

## 相关配置

| 参数 | 说明 | 默认值 |
| --- | --- | --- |
| `agent_workspace` | 工作空间路径，记忆文件存储在此目录下 | `~/cow` |
| `agent_max_context_tokens` | 最大上下文 token 数，超出时裁剪并总结写入记忆 | `50000` |
| `agent_max_context_turns` | 最大上下文轮次，超出时裁剪并总结写入记忆 | `20` |
