[BUG] BMAD 自定义代理的内存持久化没有强制执行机制
作者: eric-cathell创建于 2026年9月12日更新于 2026年9月17日
标签bug
可复现的步骤
- 使用
bmad-agent-builder(bmb v2.2.2) 使用标准生成的框架构建任何具有agent_type = "memory"(一个基于 sanctum 的代理)的自定义代理 - 不添加任何自定义钩子。 - 启动代理并进行实质性对话(需要记住的决策、事实和上下文)。
- 在代理未主动调用
Write/Edit任何 sanctum 文件的情况下结束会话。这不需要任何特殊操作 - 除非模型自发地写入,否则这是默认结果。 - 在新会话中再次启动代理并询问它关于之前的对话。
预期行为
要么:
- 框架阻止会话结束(至少发出警告),当发生实质性对话且没有将任何内容保存到 sanctum 时,以便所有者在它消失之前捕获它,或者
- 至少在代理在下次唤醒时显示出先前会话未产生任何记忆痕迹,以便所有者知道要预期间隙。
实际行为
会话默默结束。在下次唤醒时,代理没有记录先前对话发生的任何信息 - 不是"我不记得细节",而是 sanctum 中任何文件、日志条目或对它的引用都不存在。无论是框架还是 Claude Code 在任何时候都不会引发任何错误。
内容来源: bmad-code-org/BMAD-METHOD