首页/技术笔记

使用AI编程一点经验

控制信息的输入和强制AI进行‘执行前反思’。

39

LLM应用的“失忆”与“短视”

很多开发者在使用本地或开源大模型时,习惯于直接用Ollama这类工具加载模型进行对话。但大家容易忽略一个事实:Ollama只提供了推理能力,并没有自带“长期记忆层”和“动态规划层”。
这就导致了一个经典现象:我让AI帮我改一个BUG,第一版它干得非常漂亮。我在此基础上继续让它迭代第二版、第三版,AI开始频频出错,甚至把改好的第一版又改回去了。
根本原因在于:此时AI的记忆和规划,全靠当前对话的上下文窗口撑着。随着反复修改,上下文里掺杂了旧的错误代码、多次的指令修正,变得杂乱无章。AI在杂乱的信息中提取规划依据,自然容易“精神错乱”。

基于此的建议:

在不改变底层应用架构的前提下,我们要主动帮AI做好清晰的规划。针对不同的任务,建议开启全新的对话窗口。 让每个窗口只负责一个独立的任务,确保AI拿到的上下文永远是“干净”的。
(注:即便如Cursor/Claude/Codex等带有工程级记忆的软件,在处理高度复杂的逻辑迭代时,开启新对话也往往比死磕旧上下文更有效。)


Agent的“过度勤奋”

为了改善以往AI“问一句走一步”的啰嗦体验,现在的AI Agent走向了另一个极端:过度解读模糊指令。

你给一个模糊的需求,现在的AI不再追问细节,而是选择“干了再说”。它为了显得聪明,会在模棱两可的地方擅自做主,直接生成一版可运行的代码。

直观上AI确实变“能干”了,但代价是决策黑盒化。AI认为“怎么干都行”的地方,很可能与你的底层逻辑预期不符。虽然结果跑通了,但后续扩展时你会发现,代码的执行逻辑与你内心的业务逻辑已经背道而驰。

Agent误删正确数据的真相

AI删除开发数据的案例屡见不鲜。今天不制造焦虑,我们来聊聊为什么即使是高智商的AI也会犯这种低级错误。
核心在于:AI没有“生产环境敬畏心”,且默认“用户指令的优先级无限高”。
举个例子:你想插入一条新数据,AI发现主键冲突了。它不会像人类DBA那样先报错询问,而是为了“完成你插入数据的指令”,潜意识里认为“删掉冲突的旧数据”是解决问题的最快路径。只要你没有在提示词里明令禁止删除操作,它就会默认这个方案可行。

基于以上的原因我给的建议:

在写完提示词后,在提示词的结尾,添加这句话:不要直接开始写代码,先检查能不能实现,有没有什么更好的方案,有没有什么遗漏?得到我的肯定后,再开始写代码。 这样AI会告诉你现在方案是否可行,怎么改会更好,并且你需求中没有说明的内容,也会追问你。而不会盲目直接动手干。

使用AI编程一点经验 · LuckyMiku