3. 记忆与上下文核心概念
在自动驾驶智能体系统中,“记忆”并不是一个单一仓库,而是由多种时间尺度、抽象层级和访问方式共同构成的能力集合。理解这些概念的关键,是区分三件事:信息保留多久、信息以什么形式被组织、当前决策能同时看到多少信息。短期记忆、长期记忆、工作记忆、情景记忆、语义记忆和上下文窗口,正是从这三个维度切分出来的核心概念。
一、六类记忆的定位与关系
短期记忆通常指最近几秒到几分钟内的感知与动作信息,例如最近 10 帧障碍物轨迹、当前车道线、上一周期的加速度指令。它的特点是容量小、更新快、时效性强,主要用于维持连续控制与局部一致性。
长期记忆则跨越单次行程甚至多车多城数据,保存高精地图先验、驾驶风格偏好、常见路口通行规则、历史故障模式等。长期记忆不追求实时刷新,而追求可检索、可复用、可版本管理。
工作记忆是当前任务执行时的“临时工作台”。它从短期记忆和长期记忆中抽取与当前目标相关的信息,形成一个小规模、高相关性的信息集合,供规划与控制模块在本次决策周期内使用。工作记忆强调任务相关性和可操作性,而不是简单堆积。
情景记忆记录“某时某地发生了什么”,例如“昨天 17:30 在 A 路口遇到施工锥桶,绕行成功”。它具有时间戳、位置、事件序列和结果标签,适合用于案例回溯与相似场景检索。
语义记忆记录“普遍成立的知识”,例如“红灯停、绿灯行”“环岛内车辆优先”“雨天制动距离增加”。它不依赖具体时间地点,是从大量情景中抽象出的规则与常识。
上下文窗口不是记忆类型,而是模型或智能体在单次推理中能够同时读取的信息容量边界。它像一张“当前可见桌面”,决定工作记忆能摆下多少内容。窗口过小会丢失关键历史,窗口过大则引入噪声与计算负担。
二、从感知到决策的记忆流转
以一次城市路口右转为例,记忆系统的典型流转如下:
- 短期记忆写入:感知模块持续写入最近 5 秒的车辆、行人、信号灯状态,形成实时状态流。
- 情景记忆检索:规划模块根据当前路口 ID 和时间,检索“该路口历史右转案例”,找到“行人闯红灯导致急刹”的情景记录。
- 语义记忆约束:规则库返回“右转需让行直行行人”“黄灯不得加速通过”等语义规则。
- 工作记忆装配:将实时状态、相似案例、规则约束压缩成一个任务相关集合,写入上下文窗口。
- 决策与回写:规划输出右转轨迹,同时将本次结果作为新情景记忆写回长期存储。
工作记忆装配伪代码:
context = []
context += short_term.get_recent(seconds=5)
context += episodic.retrieve(location=current_intersection, top_k=3)
context += semantic.query(rules=["right_turn", "pedestrian_yield"])
context = compress(context, max_tokens=context_window_size)
decision = planner.infer(context)
episodic.write(event=decision, location=current_intersection, result=executed)
三、六类记忆对比清单
| 记忆类型 | 时间尺度 | 典型内容 | 访问方式 | 工程载体 |
|---|---|---|---|---|
| 短期记忆 | 毫秒~秒 | 最近帧障碍物、车速、转向角 | 顺序读写 | 环形缓冲区、共享内存 |
| 长期记忆 | 跨行程~持续 | 高精地图、驾驶偏好、故障库 | 键值/向量检索 | 数据库、对象存储 |
| 工作记忆 | 单次决策周期 | 任务相关状态与约束集合 | 装配与压缩 | 上下文缓冲区 |
| 情景记忆 | 分钟~单次行程 | 时间、地点、事件、结果 | 相似度检索 | 向量库 + 时间索引 |
| 语义记忆 | 长期稳定 | 交通规则、常识、抽象知识 | 规则匹配/查询 | 知识图谱、规则引擎 |
| 上下文窗口 | 单次推理 | 模型可见的 token 集合 | 容量约束 | 模型输入缓冲区 |
四、常见误区与复盘
总结来看,短期记忆维持连续控制,长期记忆提供跨行程复用,工作记忆负责当前任务装配,情景记忆支撑案例检索,语义记忆提供规则约束,上下文窗口则界定单次推理的可见边界。六者协同,才能让自动驾驶智能体在“记得住”与“看得清”之间取得平衡。