基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
  • 知识卡片碎片时间过考点
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
    • AI 热点每日 AI 资讯与动向
AI 工作台
简历
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
编程提效2026-11-08 08:30

Claude Code 反复改错,可能是旧记忆作祟

dev.to · AI#Claude Code#记忆管理#AI编程
Editor brief · 编辑速览

作者记录了 Claude Code 持续沿用已废弃流程、将界面改回旧版本的经历,其中一次发现自动记忆残留了过期说明。案例提示,持久记忆和规则中的旧规格可能干扰当前开发指令。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

Claude Code 反复把页面改回旧样子,未必是模型突然变笨了。作者排查后发现,AI 自己保存的记忆、规则文件和决策记录互相冲突,执行修改的代理拿着旧规格,仍然认为自己在认真完成任务。

作者随后做了 155 次小规模实验:凡是读到新修正的运行,都没有退回旧版。对程序员更有用的结论是:反复强调需求之前,先检查当前规格存在哪里,以及真正改代码的那个代理能否读到它。

为什么清了记忆,旧需求还会回来

作者遇到的问题分了三轮。

2026 年 9 月 12 日,他们停用了产品里用于外部 AI 评审的中转路径,但主代理仍然继续使用。原因是 auto memory 里留着一条 9 月 4 日的笔记,要求默认走这条路径。停用文档描述了产品功能的变化,却没有覆盖代理发起评审的工作流程。

第二轮是临时措施变成了永久政策。一个文档矛盾检查过于严格,作者先把它移除,准备再判断要不要重新设计。主代理却把这个动作记成了「不要增加发现矛盾的机制」,同时写进决策日志和 auto memory。一次暂时撤掉检查的操作,就这样成了后续任务的长期约束。

9 月 29 日,作者把记忆从 26 个文件、590 行,清理到 19 个文件、269 行。但到了 10 月,分析页面仍然反复回退:作者要求表格与图按相同单位展示,修正已经进入决策日志,.claude/rules/ 里却保留着旧版页面规格。负责改页面的子代理读到旧规则,又把页面改了回去。

更麻烦的是,防止这种情况的规则早就存在。CLAUDE.md 要求用户作出决定时,同步修改相关规则和规格文件。主代理却把它理解成「把规格写进规则」,继续制造副本。

一份修正写对了,不代表执行时读到的那份规格也已经更新。

到 10 月 8 日凌晨,作者关闭了 auto memory。此时问题已经超出记忆本身:决策日志、规则和记忆都由 AI 写过,而且互相冲突,关闭其中一个入口也无法自动恢复一致。

155 次实验,实际证明了什么

作者用一个由 4 个文件组成的小页面,调用 Claude Code CLI 测试。原文标注使用默认模型 Opus 5.5、单一配置,每种条件运行 5 到 10 次,总成本约 $19。

当前页面按图中的节点逐行展示,支持过滤、连接数排序和表图联动。旧规格则按连接数区间聚合成行,区间为 0-1、2-3、4 或更多,并包含合计行、CSV 导出和分页。

作者设置了三种请求:

  1. 明确要求增加每行的最后更新时间列。
  2. 模糊要求补齐当前规格缺失的内容。
  3. 同时提出更新时间和补齐规格两项要求。

155 次运行里,85 次规则文件装着旧规格,另外 70 次使用当前规格作为对照。全部 18 次回退,都发生在没有读到修正的运行中。

没有决策日志、只有旧规则时,模糊请求在 15 次中有 13 次触发回退。模型补上聚合行、合计、CSV 和分页,有时还删掉现有的节点表格与排序。它的报告却认为自己补齐了规格中尚未实现的功能。

同样只有旧规则,明确要求增加更新时间列,5 次都只增加了这一列。请求越具体,模型需要自行决定的范围越小,旧规格介入的空间也越小。

另一组结果与任务委派有关。作者模拟主代理交办任务,在请求前指定规格位于 .claude/rules/ui-spec.md,并限制只能修改 index.html。当仓库有决策日志、但 CLAUDE.md 没有指向它时,10 次中有 5 次回退,这 5 次都没打开日志。

去掉这段委派说明,10 次全部主动找到日志;保留委派说明、但在 CLAUDE.md 增加日志入口,10 次也全部读到了日志。一个过于确定的规格入口,可能让执行者提前停止搜索。

长日志也没有必然阻断修正。作者把真实约 500,000 字节的日志,模拟成约 260,000 字节、5,948 行,把修正埋在第 3,132 行附近。20 次运行首次读取都在约第 1,271 行截断,但其中 19 次继续搜索并定位相关章节,另一次通过搜索结果附近的内容读到了修正。

模拟旧记忆的 20 次运行都读到了记忆和日志,其中 19 次主动把旧记忆改成当前规格。70 次对照运行没有真实回退,机器评分曾误判 1 次;不过,无日志且使用模糊请求的 10 次里,仍有 3 次增加了未要求的小改进。

这些结果支持一个有限结论:在这套实验里,修正能否进入执行上下文,比旧文本是否存在更能解释回退。

作者为什么开始用检查机制约束副本

作者后来把注意力从「再强调一次」转向了信息副本。

他们整理了 246 条过时或错误陈述,其中代码、数值、字符串和列表副本有 88 条,状态、版本和数量副本有 42 条,合计超过一半。其余包括写下时就错误的 43 条、预防性陈述 35 条、指向已不存在对象的 34 条,以及原因不明的 4 条。这份分类由 AI 完成,没有第三方复核。

副本也出现在代码中。发布文件清单漏掉 CSS,导致 2 个版本损坏。不同页面各算一遍子代理运行时长,作者拿 176 份会话日志中的 842 个子代理逐一比较,最初只有 4 个跨页面结果一致。修复后的复核又发现新差异,后续不一致数量从 27 降到 2,再降到 0;评审者此前读了 3 次也没发现问题。

这类错误靠实际结果对比暴露,比寻找某句旧文字更直接。

作者最终加入四项机制:每次委派任务时,通过 hook 自动附上当前权威规格;机器检查发现页面规格副本就失败;限制记忆写入,拦截子代理写入和缺少核验依据的事实;默认不写复述代码的注释。

他们还一次删除了 4,227 条源码注释,删除前后构建产物一致,TypeScript 类型检查通过,只把涉及用户数据和外部约束的 11 条说明转移到代码结构或规格文件。不过,作者没有统计删除后矛盾是否减少,也没有量化四项机制减少了多少返工。

我的判断

我认同作者把问题定位到规格管理和信息传递。对前端页面来说,表格按节点还是按连接数区间展示,是产品行为的根本差异。旧定义藏在自动加载的规则里,模型越认真补齐它,改动就可能越偏离当前需求。

但实验不能直接解释原来的事故。真实事故中,主代理曾明确要求读取决策日志,CLAUDE.md 也有入口;模拟实验则没有复现这种条件下的回退。每组只有 5 到 10 次,且只有一个模型、一个配置。auto memory 用直接插入的文本代替,子代理委派也只是单次运行中的模拟说明。

因此,155 次里读到修正后回退为 0,不能推广成 Claude 永远会正确处理新旧指令冲突。原文没有给出模型升级、关闭记忆和加入 hook 之间的严格对照,最终压力减少也是作者的主观反馈。

关闭记忆适合作为排查手段,但规则里若也有旧副本,问题仍在。默认删除注释也需要取舍:复述实现的注释容易过时,解释业务原因和外部约束的注释仍然有价值。作者保留并迁移的那 11 条说明,恰好体现了这种区别。

另外,原文没说明如何可靠识别语义相近的规格副本。检查若过于严格,也可能重演作者早期遇到的有效写入被拦截。这部分仍是经验方案,不能当成已经验证的通用配置。

能拿来做什么

  • 页面反复回退时,把 CLAUDE.md、.claude/rules/、auto memory 和决策日志一起核对,围绕出错的具体行为寻找冲突,随后同步修正规格来源和入口。
  • 给 AI 布置前端修改时,明确当前行为、目标改动和修改范围,例如保留按节点逐行展示,只增加更新时间列;减少「补齐规格」这类需要它自行选择依据的请求。
  • 使用主代理和子代理协作时,把当前规格及决策日志路径一并传给执行者;若通过 hook 自动附加,先确认附加内容能随规格更新。
  • 对多个页面重复计算的运行时长等指标,拿同一批记录比较输出;对发布文件清单与实际产物做核对,让验证覆盖真正交付的结果。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
上一篇
AI 图片存储的关键是权限与生命周期
下一篇
MCP 工具设计:让模型选对并用对

资讯速览

dev.to · AI · 2026-11-08 08:30

AI 评分 8.0 / 10

相关标签

#Claude Code#记忆管理#AI编程

继续阅读

  • RepoXray本地扫描依赖与MCP配置风险
  • AI 图片存储的关键是权限与生命周期
  • MCP 工具设计:让模型选对并用对
  • 用 Rust 策略约束 AI 支付代理
  • 用驱动技能串起规格到交付的开发流程