五厂面经真题集蚂蚁集团面经高频多轮对话会话状态上下文管理速答 · 约 5 分钟更新 2026-09-29

多轮对话状态怎么管理?百轮对话后怎么保持上下文准确?

一句话结论

把会话状态外置存库,百轮后用分层压缩、关键状态锚定和按需检索,保持上下文准确。

先这样答

结论是:多轮对话不能只靠上下文窗口记忆,要把结构化会话状态外置存库。状态里至少包括槽位、已确认事实和任务进度。模型每轮对话都基于这份状态继续判断,避免状态只存在于不断变长的对话文本里。

百轮对话后,我会采用分层压缩。早期对话不再保留全部原文,而是摘要成事实卡。近期对话保留原文,方便模型理解当前语境。这样既能减少历史内容对上下文的占用,也能保留最近几轮的具体表达。

对金额、账户这类关键信息,我会做关键状态锚定。这些信息永不压缩,只保存为可直接引用的状态。模型需要历史细节时,再按需检索原始轮次。整体策略是状态外置、历史分层、关键字段固定、细节按需回捞。

面试官会怎么追问

  • 「为什么不能直接把一百轮对话全部放进上下文窗口?」 上下文窗口不是会话状态的可靠存储位置。结构化状态需要单独存库,不能依赖窗口中的记忆。历史内容可以分层处理,近期保留原文,早期整理成事实卡。

  • 「哪些内容可以压缩,哪些内容不能压缩?」 早期对话可以摘要成事实卡,近期对话保留原文。金额、账户类信息属于关键状态,不能压缩,只能固定保存并在需要时引用。

  • 「摘要后模型还需要原始细节,怎么处理?」 不把所有细节都塞进当前上下文。模型判断需要哪段历史后,按需检索对应的原始轮次,再补充到当前对话中。

回答的坑

  • 只说扩大上下文窗口,不说结构化状态外置,会遗漏槽位、已确认事实和任务进度的管理。
  • 只做摘要而不保留关键状态和原始轮次,可能无法准确引用金额、账户类信息和历史细节。
—— 本题完 ——