AI 编程实践:LLM 与 Memory Bank 提升项目可控性 (Vibecoding 经验) • 大嘴碎碎念
- 内容介绍
- 文章标签
- 相关推荐
我开发了一个 Telegram User Bot (链接),整个开发过程依然全程使用了 Aider。回顾这个过程,我发现有不少值得分享的经验和思考。
起初,我因为 Gemini 2.5 Pro 作为思考模型响应首字较慢,等待过程令人有些不耐,所以在项目前半程主要使用了 DS v3。DS v3 在速度和成本效益方面表现出色,堪称性价比之选。 然而,随着项目的推进,我发现 Gemini 的大上下文窗口优势非常明显。相比之下,使用 DS 模型时,必须时刻关注任务的规模以避免超出其上下文限制;一旦超出,就需要重新规划提示(prompt),这无疑会浪费大量时间。
工具方面,我依然选择了 Aider,并且越用越顺手,没有更换的打算。值得一提的是,这次我完全没有使用 Aider 的 /architect 模式,原因我将在下文详述。
在我看来,对于非一次性脚本的 AI 辅助编码项目而言,其核心目标在于确保项目的可控性。 可控性体现在两方面:一是对项目的人为掌控,二是对 LLM行为的有效引导。 LLM 因其上下文容量、注意力机制及可能产生的幻觉等限制,并非完全可靠。有趣的是,人脑在处理复杂信息时也面临类似的挑战,甚至在某些方面可能表现出更大的不确定性。 那么,解决方案是什么?答案是:文档。
我阅读了 Cline 关于 Memory Bank 的理念后, 发现这是一种简单而高效的项目控制方法。
简单来说,Memory Bank 就像一个自文档化系统:在 LLM 每次行动前后,都通过文档化的形式对项目信息进行压缩,并为 LLM 的后续行动提供指导。 这种模式具有诸多优点:
- 文档化的形式能够自动描述项目的目标和当前状态,使 LLM 无需通过分析全部源码来理解项目,从而避免了上下文窗口被大量代码占据的问题。
- 文档本身即构成提示(prompt),用于指导 LLM 的下一步行动。
- 文档有助于自动拆分任务,减小当前任务的规模,从而保证 LLM 的注意力集中,尽可能减少幻觉的产生。
- 文档对人类友好。特别是当你指导 LLM 一步步迭代文档时,你会对项目的进展和方向更有信心。
我开发了一个 Telegram User Bot (链接),整个开发过程依然全程使用了 Aider。回顾这个过程,我发现有不少值得分享的经验和思考。
起初,我因为 Gemini 2.5 Pro 作为思考模型响应首字较慢,等待过程令人有些不耐,所以在项目前半程主要使用了 DS v3。DS v3 在速度和成本效益方面表现出色,堪称性价比之选。 然而,随着项目的推进,我发现 Gemini 的大上下文窗口优势非常明显。相比之下,使用 DS 模型时,必须时刻关注任务的规模以避免超出其上下文限制;一旦超出,就需要重新规划提示(prompt),这无疑会浪费大量时间。
工具方面,我依然选择了 Aider,并且越用越顺手,没有更换的打算。值得一提的是,这次我完全没有使用 Aider 的 /architect 模式,原因我将在下文详述。
在我看来,对于非一次性脚本的 AI 辅助编码项目而言,其核心目标在于确保项目的可控性。 可控性体现在两方面:一是对项目的人为掌控,二是对 LLM行为的有效引导。 LLM 因其上下文容量、注意力机制及可能产生的幻觉等限制,并非完全可靠。有趣的是,人脑在处理复杂信息时也面临类似的挑战,甚至在某些方面可能表现出更大的不确定性。 那么,解决方案是什么?答案是:文档。
我阅读了 Cline 关于 Memory Bank 的理念后, 发现这是一种简单而高效的项目控制方法。
简单来说,Memory Bank 就像一个自文档化系统:在 LLM 每次行动前后,都通过文档化的形式对项目信息进行压缩,并为 LLM 的后续行动提供指导。 这种模式具有诸多优点:
- 文档化的形式能够自动描述项目的目标和当前状态,使 LLM 无需通过分析全部源码来理解项目,从而避免了上下文窗口被大量代码占据的问题。
- 文档本身即构成提示(prompt),用于指导 LLM 的下一步行动。
- 文档有助于自动拆分任务,减小当前任务的规模,从而保证 LLM 的注意力集中,尽可能减少幻觉的产生。
- 文档对人类友好。特别是当你指导 LLM 一步步迭代文档时,你会对项目的进展和方向更有信心。

