第10章:上下文与会话记忆——多轮对话如何不跑偏 📅 2026/6/22 0:37:24 1. 项目背景业务场景某公司的AI产品经理小美正在验收内部开发的"AI面试助手"。这个助手的场景是:HR输入候选人简历,助手进行模拟面试,一轮接一轮地问问题,并在面试结束后生成综合评估。验收时发现一个严重问题——面试到第5轮时,助手突然问:"请问你的上一份工作是?"明明第1轮已经问过而且候选人回答了。到第10轮时,助手完全忘了候选人的核心技能是Python,开始问Java问题。小美皱着眉:“这哪像面试官,分明是金鱼——只有7秒记忆。”开发小哥排查后发现:Ollama的num_ctx默认是2048 tokens,而每轮面试问答大约消耗400 tokens。到第5轮时上下文窗口就满了,最早的对话被"挤出去"了——模型自然忘了之前说过什么。痛点上下文窗口有限:默认2048 tokens的上下文窗口,长对话必然溢出。增大num_ctx虽然缓解但增加显存和延迟,治标不治本。消息污染:多轮对话中,模型早期的错误回答、无效信息、重复内容会一直"污染"后续的上下文空间。就像雪球越滚越大,有用的信息被稀释。指令漂移:系统提示词在长对话中逐渐失效。面试官说好要"统一评分标准",但到20轮后评分逻辑已经变了。缺乏记忆管理边界:哪些该记住(候选人核心信息)?哪些该忘记(已完成的面试轮次细节)?没有标准