基于上述的理论基础,Agent 状态栏包括以下几种类型的信息:

**任务规划**:当 Agent 处理复杂的多步骤任务时,轨迹会变得很长。Agent 容易过分关注当前的局部子任务,而忘记用户的原始诉求、核心约束以及后续工作。通过引入 TODO 列表将任务分解为清晰的步骤,放在轨迹末尾不断提醒模型当前的进展和未来的目标,确保行动与总体规划保持一致。

**事件的侧信道信息(Side-channel Information)**:为每个事件附加元数据——精确的时间、地理位置、距上次 Agent 回复的时间间隔等。侧信道信息是指不在主要数据通道中传递、但对理解事件很有帮助的辅助信息。这些信息帮助模型理解事件的时序关系和环境背景,从而做出更符合情境的决策。

**环境的当前状态**:包括动态的环境信息(系统时间、工作目录等)、异常操作提醒(“该工具已被重复调用 N 次”)、以及从隐式状态到显式状态的转换。这一设计原则同样适用于人类界面——命令行(CLI)和图形界面(GUI)都致力于让用户清晰地感知系统的当前状态。

**可用能力清单**:当 Agent 框架支持插件化的能力扩展(如上一节的 Skills 系统)时,所有已安装 Skill 的元数据列表也走这条同一的末尾注入通道,相当于告诉模型“你现在拥有哪些可调用的专业能力”。它变化频率最低(仅在用户安装/卸载 Skill 时才变),其增量发送机制已在上一节 Skills 中详述,此处不再重复。

侧信道信息和可用能力清单一经添加就不再改变,对 KV Cache 很友好(因为不会破坏已缓存的前缀)。而任务规划和环境状态是动态变化的,需要以特殊的用户消息追加到上下文末尾,并随任务推进不断更新——更新方式的选择直接关系到 KV Cache 的代价,下面结合具体的消息结构展开讨论。
 

Logo

更多推荐