标准回答
状态分层
- 短期记忆:当前会话的对话历史与最近若干轮上下文,直接进 prompt。
- 长期记忆:跨会话的持久知识,存向量库/知识库,按需检索召回。
- 结构化状态:变量、scratchpad、计划与进度、待办动作等显式状态,用于精确控制流程。
持久化
以 session/thread id 为键,把上述状态写入数据库或检查点存储,实现跨轮、跨进程乃至人工介入后的断点恢复,保证长流程不丢上下文。
上下文窗口管理
历史会无限增长,需做摘要压缩、滑动窗口、按相关度选择性注入,把关键信息放首尾,缓解超窗与中段信息利用率低的问题。
流程编排
用状态机/状态图(如 LangGraph)显式建模节点、转移与中断点,使多轮 Agent 的执行可控、可暂停恢复、可观测,便于审批与调试。
常见误区
⚠️ 常见踩坑
把所有历史无脑全量塞进上下文——会超窗、变贵且触发 Lost in the Middle;应分层管理、对长期信息用检索召回、对历史做摘要与滑窗,并以会话 id 持久化支持恢复。
追问
追问 1:短期记忆和长期记忆怎么分工?
题库专题:Agent 系统如何设计人在回路(Human-in-the-Loop)?短期记忆是当前会话的近期上下文,直接进 prompt,保证连贯;长期记忆是跨会话的持久知识(用户偏好、历史事实),存向量库,按当前 query 相关度检索召回需要的部分注入。短期保连贯、长期保广度且可控规模,避免把一切都塞进窗口。
追问 2:上下文太长超出窗口怎么处理?
做上下文压缩与筛选:对早期历史滚动摘要、保留近窗口原文(滑动窗口)、用检索只召回与当前任务最相关的片段,并把关键信息放首尾缓解 Lost in the Middle。结构化状态(计划、变量)单独存储,需要时再注入,而非依赖模型从长历史里"记住"。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
🛠️ AI 工具
- LangGraph
基于图的 AI Agent 编排框架,29,857+ stars。LangChain 团队出品,用有向图定义 Agent 工作流,支持循环、条件分支、多 Agent 协作。是构建复杂 Agent 系统的标准工具。