[BUG] BMAD 自定义代理的内存持久化没有强制执行机制

作者: eric-cathell创建于 2026年9月12日更新于 2026年9月17日
标签bug

可复现的步骤

  1. 使用 bmad-agent-builder (bmb v2.2.2) 使用标准生成的框架构建任何具有 agent_type = "memory"(一个基于 sanctum 的代理)的自定义代理 - 不添加任何自定义钩子。
  2. 启动代理并进行实质性对话(需要记住的决策、事实和上下文)。
  3. 在代理未主动调用 Write/Edit 任何 sanctum 文件的情况下结束会话。这不需要任何特殊操作 - 除非模型自发地写入,否则这是默认结果。
  4. 在新会话中再次启动代理并询问它关于之前的对话。

预期行为

要么:

  • 框架阻止会话结束(至少发出警告),当发生实质性对话且没有将任何内容保存到 sanctum 时,以便所有者在它消失之前捕获它,或者
  • 至少在代理在下次唤醒时显示出先前会话未产生任何记忆痕迹,以便所有者知道要预期间隙。

实际行为

会话默默结束。在下次唤醒时,代理没有记录先前对话发生的任何信息 - 不是"我不记得细节",而是 sanctum 中任何文件、日志条目或对它的引用都不存在。无论是框架还是 Claude Code 在任何时候都不会引发任何错误。

内容来源: bmad-code-org/BMAD-METHOD