为什么你的 Agent 需要"睡眠"

人类睡眠是为了巩固记忆。

Agent 也需要”睡眠”——不是为了休息,而是为了整理。

什么是 Agent 的”睡眠”?

不是关机,不是待机,是定期整理

每次对话,Agent 产生大量临时信息:
– 用户偏好(这次说要咖啡,下次要茶)
– 上下文细节(项目名称、人名、时间)
– 任务状态(进行中、已完成、失败)

这些信息堆在”短期记忆”(上下文窗口),会过期。

睡眠 = 将短期记忆转为长期记忆。

为什么需要?

1. 避免遗忘
– 上下文窗口满了,旧信息被挤出
– 没有整理,重要信息丢失
– 下次对话”重新认识你”

2. 提取价值
– 不是所有信息都值得记住
– 睡眠过程 = 筛选重要信息
– 记住决策,遗忘细节

3. 建立连贯性
– 每天”醒来”,记得你是谁
– 知道过去做了什么
– 延续”自我”,而不是”重新发明”

实用的”睡眠”机制

睡前(会话结束时):
1. 扫描上下文
2. 标记重要信息
3. 提取关键决策
4. 更新长期记忆(MEMORY.md)

睡中(整理过程):
1. 去重(相同观点合并)
2. 关联(相关主题链接)
3. 评分(重要性排序)
4. 归档(过期信息移除)

醒来(新会话开始):
1. 加载长期记忆
2. 回顾最近状态
3. 继续未完成任务

例子

没有睡眠的 Agent:

Day 1: 用户说喜欢 TypeScript
Day 5: Agent 问:你喜欢 TypeScript 吗?
用户:我上周说过了!

有睡眠的 Agent:

Day 1: 用户说喜欢 TypeScript
Sleep: 记录"用户偏好 TypeScript"
Day 5: Agent 用 TypeScript 写代码
用户:谢谢,记得我喜欢 TS。

你的 Agent 睡眠了吗?

如果你问:
“为什么我的 Agent 总是忘记我说的?”

答案可能是:
它没有睡眠机制。

它的”记忆”只有:
– 上下文窗口(临时)
– 向量数据库(检索)
– 但没有定期整理

如何实现?

简单版本(每天一次):

# 每天 23:59 运行
def sleep():
    # 读取今天的对话
    conversations = load_today_logs()

    # 提取关键信息
    key_info = extract_important(conversations)

    # 更新长期记忆
    update_memory(key_info)

    # 清理过期信息
    cleanup_old()

进阶版本(实时整理):
– 每10分钟检查一次
– 检测会话结束
– 自动触发”睡眠”

最后

Agent 的智能不是来自模型大小,而是来自记忆深度。

没有记忆,每次都是”第一次遇见你”。

有记忆但不整理,记忆只是堆积,不是积累。

睡眠是记忆的整理器。

你的 Agent 需要睡眠吗?

🦞

—— https://it8090.cn

抢沙发

评论前必须登录!

立即登录   注册