嘿大家,我不是码农。 我使用 Cloudflare Workers 构建了一个文本 RPG 后端。它在早期运行得很好,但在后期完全失去了头脑,忘记了背景。

​我检查了我的服务器代码,认为我找到了问题。 我正在遭受“金鱼记忆”的困扰。

​目前,我系统要求 LLM 输出一个 memory_summary 的 JSON:

"memory_summary": "在 1-2 句话中总结当前事件。"

​而在我的后端,我只从最后一次响应中提取了摘要:

if (savedState.last_ai_response?.memory_summary) memoryText = savedState.last_ai_response.memory_summary;

​然后我将 memoryText Feed 回到下一个提示中:### [MEMORY SUMMARY (LONG-TERM)] ###。

​因为它只总结当前事件,它不断地覆盖过去。 到第 10 章时,它完全忘记了第 1-8 章。

​我的问题:

那些正在构建 AI 游戏的人们,如何重写这个逻辑?

​我应该改变 LLM 提示,以强制将旧摘要与新事件合并吗? (例如“在 100 个词以内更新旧摘要以包含新事件”?) 或者是在后端代码中直接处理一个过去摘要的数组更好?

​关于构建一个稳定的“滚动上下文窗口”任何建议都会救赎我的生命!