> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cowagent.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 自主进化

> Self-Evolution：自动复盘，沉淀记忆、优化技能、处理未完成事项

## 功能介绍

### 简介

自主进化（Self-Evolution）让 Agent 不止于"完成单次任务"，而是能在与你的相处中持续成长。在每段对话告一段落后，它会自动"回头复盘"一次：把使用中暴露的问题修进技能、把没做完的事情接着推进，并把值得记住的沉淀进记忆与知识库。久而久之，Agent 会越来越懂你的偏好、越来越少重复犯错、越来越主动地把事情收尾，而这一切都在后台静默完成，当真正做了事情时才会主动地告诉你。

<Note>
  想了解自进化机制完整的架构设计与工程实现，可阅读博客文章：[让 Agent 在对话中成长：自进化机制的五层实现](https://cowagent.ai/zh/blog/self-evolution/)。
</Note>

> 它与[梦境蒸馏](/zh/memory/deep-dream)互补：梦境蒸馏负责整理记忆本身，自主进化则在记忆之外，进一步优化技能、推进未完成的任务，让 Agent 的能力随使用不断打磨。

<Frame>
  <img src="https://cdn.jsdelivr.net/gh/zhayujie/cowagent-assets@main/screenshots/zh/web-console-evolution-demo-zh.png" alt="自主进化对话示例" />
</Frame>

### 几个目标

自主进化围绕以下几件事工作，并以「优化技能、处理未完成事项」为主，「沉淀记忆、知识」作为主对话的查缺补漏：

| 目标          | 说明                                                               |
| ----------- | ---------------------------------------------------------------- |
| **优化技能**    | ① 技能在使用中暴露问题（如配置错误、步骤缺失）时，直接修正技能文件；② 出现一套可复用的流程时，主动固化为新技能，下次直接调用 |
| **处理未完成事项** | 识别对话中遗留的待办，在能完成时直接完成                                             |
| **沉淀记忆**    | 把对话中重要的偏好、决策、事实补记到记忆中，作为主对话的查缺补漏                                 |
| **沉淀知识**    | 把对话中产生的、值得日后查阅的可复用知识补充进知识库（主对话遗漏时）                               |

复盘完成后，如果确实做了改动，Agent 会在对话中用一句话告诉你"刚刚自主学习了什么、调整了哪里"，方便你判断是否需要回滚。

## 如何使用

### 触发时机

自主进化不是定时执行，而是在**一段对话自然结束、进入空闲后**才触发，避免打断正在进行的交流。需要同时满足：

* **对话已空闲** — 距离最后一次互动超过设定的空闲时长（默认 10 分钟）
* **对话有足够内容** — 自上次进化以来累积了足够轮次（默认 6 轮），或上下文已接近容量上限

只有两个条件都满足，才会启动一次复盘。这样既保证有足够的内容值得复盘，又不会在你还在对话时打扰你。

### 相关配置

自主进化可在 Web 控制台「配置 → Agent 配置」中通过开关启停（位于"深度思考"下方），也可在配置文件中调整：

| 参数                            | 说明            | 默认值     |
| ----------------------------- | ------------- | ------- |
| `self_evolution_enabled`      | 是否启用自主进化      | `false` |
| `self_evolution_idle_minutes` | 对话空闲多久后触发（分钟） | `10`    |
| `self_evolution_min_turns`    | 触发所需的最少对话轮次   | `6`     |

<Frame>
  <img src="https://cdn.jsdelivr.net/gh/zhayujie/cowagent-assets@main/screenshots/zh/web-console-evolution-config-zh.png" alt="在 Web 控制台开启自主进化" />
</Frame>

<Tip>
  Web 控制台只提供启用开关，若需调整空闲时长或轮次阈值，请编辑配置文件。修改后即时生效，无需重启。
</Tip>

### 进化记录

每次进化的过程和结果会按日期记录在 `memory/evolution/YYYY-MM-DD.md` 中，可在 Web 控制台的「记忆管理 → 自主进化」tab 中查看。该 tab 同时汇总了自主进化记录与梦境日记，方便统一回顾 Agent 的成长轨迹。

<Frame>
  <img src="https://cdn.jsdelivr.net/gh/zhayujie/cowagent-assets@main/screenshots/zh/web-console-evolution-logs-zh.png" alt="自主进化记录列表" />
</Frame>

### 如何回滚

如果你不认同某次进化的改动，直接在对话中告诉 Agent "把刚才的改动撤销"即可，它会根据进化前的备份还原相关文件。每次进化的改动都有独立备份，互不影响。

## 实现设计

自主进化复用了系统已有的能力，保持轻量：

* **隔离执行**：每次复盘都启动一个独立的、临时的复盘任务，使用与主对话相同的模型，但拥有受限的工具集（只能读上下文、改记忆与技能文件）。它不会污染主对话的上下文，也不会影响主对话的性能。
* **基于备份的撤销**：进化前对相关文件做快照备份，撤销时按备份还原，因此每一次改动都可追溯、可逆。
* **改动检测**：复盘结束后通过对比文件快照判断是否真的有改动，以此决定要不要通知你，从工程上保证"没做事就不打扰"。

### 克制与安全

自主进化的设计原则是"必要时执行，减少打扰"：

| 机制         | 说明                          |
| ---------- | --------------------------- |
| **没做事不通知** | 如果复盘后没有任何实际改动，全程静默，不产生任何通知  |
| **空闲才触发**  | 仅在对话空闲后运行，绝不打断正在进行的对话       |
| **改动可回滚**  | 每次进化前自动备份，若对结果不满意，可一键撤销本次改动 |
| **保护内置技能** | 项目自带的内置技能受保护，进化过程不会改动       |
| **限定工作空间** | 所有读写都限定在工作空间内，不会触碰系统其他文件    |
| **后台异步**   | 复盘在后台进行，不阻塞正常对话回复           |
