2026-02-09 · 碎片
32
碎片 · 2026-02-09

为什么你的 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://www.80aj.com

目录 最新
← 左侧翻上一屏 · 右侧翻下一屏 · 中间唤出菜单