功能介绍
自主进化(Self-Evolution)让 Agent 不止于”完成单次任务”,而是能在与你的相处中持续成长。每段对话告一段落后,它会自动”回头复盘”一次:把值得记住的沉淀为长期记忆、把使用中暴露的问题修进技能、把没做完的事情接着推进。久而久之,Agent 会越来越懂你的偏好、越来越少重复犯错、越来越主动地把事情收尾,而这一切都在后台静默完成,只有真正做了事情时才会简短地告诉你。
它与梦境蒸馏互补:梦境蒸馏负责整理记忆本身,自主进化则在记忆之外,进一步优化技能、推进未完成的任务,让 Agent 的能力随使用不断打磨。
三个目标
自主进化围绕三件事工作:
| 目标 | 说明 |
|---|
| 沉淀记忆 | 把对话中重要的偏好、决策、事实补记到记忆中,作为主对话的查缺补漏 |
| 优化技能 | 当某个技能在使用中暴露出问题(如配置错误、步骤缺失),直接修正技能文件,而不只是记一笔;也可在需要时创建新技能 |
| 处理未完成事项 | 识别对话中遗留的待办,在能完成时直接完成 |
复盘完成后,如果确实做了改动,Agent 会在对话中用一句话告诉你”刚刚自主学习了什么、调整了哪里”,方便你判断是否需要回滚。
如何使用
触发时机
自主进化不是定时执行,而是在一段对话自然结束、进入空闲后才触发,避免打断正在进行的交流。需要同时满足:
- 对话已空闲 — 距离最后一次互动超过设定的空闲时长(默认 15 分钟)
- 对话有足够内容 — 自上次进化以来累积了足够轮次,或上下文已接近容量上限
只有两个条件都满足,才会启动一次复盘。这样既保证有足够的内容值得复盘,又不会在你还在对话时打扰你。
相关配置
自主进化默认关闭,可在 Web 控制台「配置 → Agent 配置」中通过开关启用(位于”深度思考”下方),也可在配置文件中调整:
| 参数 | 说明 | 默认值 |
|---|
self_evolution_enabled | 是否启用自主进化 | false |
self_evolution_idle_minutes | 对话空闲多久后触发(分钟) | 15 |
self_evolution_min_turns | 触发所需的最少对话轮次 | 6 |
Web 控制台只提供启用开关,若需调整空闲时长或轮次阈值,请编辑配置文件。修改后即时生效,无需重启。
进化记录
每次进化的过程和结果会按日期记录在 memory/evolution/YYYY-MM-DD.md 中,可在 Web 控制台的「记忆管理 → 自主进化」tab 中查看。该 tab 同时汇总了自主进化记录与梦境日记,方便统一回顾 Agent 的成长轨迹。
如何回滚
如果你不认同某次进化的改动,直接在对话中告诉 Agent “把刚才的改动撤销”即可,它会根据进化前的备份还原相关文件。每次进化的改动都有独立备份,互不影响。
实现设计
自主进化复用了系统已有的能力,保持轻量:
- 隔离执行:每次复盘都启动一个独立的、临时的复盘任务,使用与主对话相同的模型,但拥有受限的工具集(只能读上下文、改记忆与技能文件)。它不会污染主对话的上下文,也不会影响主对话的性能。
- 基于备份的撤销:进化前对相关文件做快照备份,撤销时按备份还原,因此每一次改动都可追溯、可逆。
- 改动检测:复盘结束后通过对比文件快照判断是否真的有改动,以此决定要不要通知你,从工程上保证”没做事就不打扰”。
克制与安全
自主进化的设计原则是”必要时执行,减少打扰”:
| 机制 | 说明 |
|---|
| 没做事不通知 | 如果复盘后没有任何实际改动,全程静默,不产生任何通知 |
| 空闲才触发 | 仅在对话空闲后运行,绝不打断正在进行的对话 |
| 改动可回滚 | 每次进化前自动备份,若对结果不满意,可一键撤销本次改动 |
| 保护内置技能 | 产品自带的内置技能受保护,进化过程不会改动 |
| 限定工作空间 | 所有读写都限定在工作空间内,不会触碰系统其他文件 |
| 后台异步 | 复盘在后台进行,不阻塞正常对话回复 |