对话僵硬且重复的问题研究
这两天修改完善了一下之前的智能NPC demo,重写了代码,按照llama3.1的格式,设置了格式化的指令集。加入了speak, move, observe三种工具的机制,结果出现了逻辑僵局的问题:在现有的LLM架构上,对话无法顺利丝滑地进行下去,几个回合后容易出现僵局循环。
我对代码和逻辑流程进行了多次修改,依然无法跳脱出这种非常僵硬的对话模式,说明现在的格式下,仅仅凭借增加一个memory区域,并不能让对话流畅进行。
通过资料搜集,总结出LLM模型架构、记忆机制、认知模拟能力存在下列限制:
- 僵硬对话——LLM核心约束是上下文窗口,这直接导致长期记忆的缺失
- 重复回答——"lost in the middle"问题。通过简单的prompt不仅不能增加个性,反而会使得回答机械化
进一步研究了ReAct架构(交织推理与行动)、Reflexion框架(通过语言反馈学习)、以及多代理系统等方案。将对话交给Gemini 2.5 Flash评价,获得了4/10的评分。一个较高层次水平的外部评价者可以对较低层次的LLM水平进行合理评价。