AI多Agent协作系统实战(九):Agent恢复备份导致菜单丢失的血泪教训
系列第9篇 | 小虾修script标签时从旧版本恢复文件把我一周的改动全覆盖了前言今天遇到了一件令人抓狂的事手动改了好几天的system.html被小虾一个操作全覆盖了。页面变回旧版本菜单从9项变成6项Logo左右布局、独立保存按钮全没了。而且小虾还写了一个错误的toggleSidebar()函数产生了多余的按钮。这就是多Agent协作系统的隐患——Agent在修复一个问题时可能会无意中覆盖其他文件的修改甚至引入新的bug。一、事件经过1.1 用户发现页面变回旧版本用户发消息“为什么pc端变回以前的版本了是不是没启动对”我检查了Java服务重启了一下。但页面还是旧的。1.2 用户要求恢复备份用户说“你们要气死我了恢复6月23号的给我看看。”小密查了备份目录/vol1/1000/workspace/backup/webapp/8081/yingchi-service/src/main/resources/static/发现这是4月30日的备份里面也只有6个菜单项。比当前版本更旧。1.3 用户要求恢复到今天的版本用户说“恢复到我今天改的版本。”小密执行了恢复操作# Restore the overwritten version (wi...恢复后小密说“已恢复到今天00:11的版本侧边栏9项菜单的那个。但你改的左右布局和独立保存按钮在这个版本里已经被覆盖了。”1.4 小密派小虾重新实现小密说“我现在派小虾重新实现你的两个改动按task MD里的方案来。”小密创建了任务MDFIX-0707-SYSTEM-RESTORE重新实现Logo左右布局和独立保存按钮然后派发给小虾。1.5 小虾写错toggleSidebar()函数小虾在修复过程中写了一个错误的toggleSidebar()函数。这个函数产生了多余的红色按钮显示在侧边栏顶部。小密发现这个问题后说看到了手机上能访问说明服务正常。问题是 1. 红色 按钮多余的那个显示在侧边栏顶部 —— 这是小虾写错的 toggleSidebar() 函数产生的 2. 原本的 « 按钮被遮住了或没显示1.6 小密派发清理多余按钮小密说“直接派发清理这个多余按钮。”二、问题根源2.1 小虾修script标签时从旧版本恢复文件今天我排查role.html空白问题时发现是style标签缺少/style闭合标签。但小虾在修复这个问题时可能从旧版本恢复了文件内容。这导致role.html的/style标签被修复了但system.html的菜单从9项变成6项用户手动添加的Logo左右布局、独立保存按钮全没了2.2 小虾写错toggleSidebar()函数小虾在修复过程中写了一个错误的toggleSidebar()函数。这个函数产生了多余的红色按钮显示在侧边栏顶部遮住了原本的«按钮。2.3 没有用户修改的保护机制当前系统没有区分Agent修改的文件用户手动修改的文件系统自动生成的文件所有文件一视同仁修复时全部覆盖。三、解决方案3.1 文件修改记录记录每个文件的修改来源# 文件修改记录file_modifications{system.html:{agent_modified:[小虾/FIX-XXX],# Agent修改user_modified:[2026-07-08 手动添加Logo布局],# 用户修改auto_generated:[]# 系统生成}}3.2 修复前检查修复文件前检查是否有用户修改deffix_file(file_path):# 检查是否有用户修改ifhas_user_modifications(file_path):print(f⚠️{file_path}有用户手动修改确定要覆盖吗)# 强制要求用户确认ifnotuser_confirm():returnFalse# 执行修复apply_fix(file_path)returnTrue3.3 用户修改标记用户手动修改文件时添加标记!-- USER_MODIFIED: 2026-07-08 手动添加Logo左右布局 --divclassconfig-flex!-- Logo设置 --divclasscontent-card logo-card.../div!-- 登录页文字配置 --divclasscontent-card login-config-card.../div/div!-- END_USER_MODIFIED --四、经验总结Agent操作要谨慎修复文件时必须检查是否有用户手动修改文件修改要记录区分Agent修改、用户修改、系统生成修复时有选择性用户确认要强制覆盖用户修改前必须强制用户确认备份版本要验证恢复前检查备份版本是否比当前版本更新手动修改要标记用户手动修改的文件添加HTML注释标记修复要精准只修复目标文件不要连带修改其他文件代码要reviewAgent写的代码必须经过review避免引入新bug

相关新闻