感知记忆
这里的感知记忆指对最近观测的短暂保留,让智能体接续行动,同时知道眼前信息何时可能已经过时。
理解与应用
感知记忆在不同理论和系统里有不同含义。本篇用它描述一个具体的工程职责:暂存刚看到的截图、传感器读数或工具观测,供下一步决策使用。例如网页助手看到一张报销单上的“上传发票”按钮,会保留页面内容和按钮位置;这是一份带时间的观测,不是关于网页永远如此的知识,也不意味着模型天生有一个同名模块。
假设助手准备点击时,用户已经切到另一张报销单。旧截图只过去三秒,仍然可能完全失效。观测因此需要与页面、对象或环境版本一起保存,不能只看获取时间。点击完成后再次观察,又能确认页面是否真的发生变化。这样的短期保留减少重复读取,也把“我刚才看到了什么”与“环境现在是什么状态”区分开来。若操作后无法确认状态,继续沿用旧截图通常比重新观测更危险。
保留多久取决于信息变化速度和任务用途。静态文档页面可以在未变更时复用,报价、库存和按钮状态则需要更及时的核对。观测本身还可能包含遮挡、加载不全或外部指令;新鲜不代表完整,更不代表可信。任务结束后,屏幕里偶然出现的个人信息也没有理由自动变成长期记忆。长期记录应该另有保存目的和权限,而不是短期缓存的自然延长。
动手试一试:同时检查观测年龄和页面版本
时间和页面版本均为手工数据。这个缓存判定把“够新”“仍是原页面”和“仍是原对象”同时作为条件;五秒是示例策略,不是网页状态有效期的普遍标准。
将代码保存为 example.py,使用 Python 3.10+ 运行 python3 example.py。仅使用标准库,无需密钥,不会调用外部模型。
Python 代码
observation = {"page_version": 4, "seen_at": 100, "record": "R-204"}
def usable(now, page_version, record, ttl=5):
age = now - observation["seen_at"]
return (0 <= age <= ttl
and page_version == observation["page_version"]
and record == observation["record"])
print("同页新观测:", usable(103, 4, "R-204"))
print("观测已过期:", usable(110, 4, "R-204"))
print("页面已变化:", usable(103, 5, "R-204"))
print("报销单已切换:", usable(103, 4, "R-205"))运行结果
同页新观测: True 观测已过期: False 页面已变化: False 报销单已切换: False
常见误区
- 刚刚获取的截图也可能已经过时,尤其是在页面跳转或用户切换对象之后。
- 一次局部观测没有覆盖全部环境,不能把没看到的状态当成不存在。
- 短期需要读取的信息,不等于有必要长期保存的信息。
前置与延伸
建议先读
相关概念
参考与版本
Apollo 原创讲解与教学示例。参考资料用于核对技术定义;核验日不代表资料的发布日期。
- Gymnasium:Env API ↗
核对动作后返回观测的环境接口;并未把“感知记忆”称为 Gymnasium 的标准存储模块。 · 核验:2026-10-10
- Spinning Up:Key Concepts in RL ↗
核对状态/观测、策略、轨迹、奖励与回报的定义;标准库示例是离散算例。 · 核验:2026-10-10