文件反复被覆盖问题

你的运行环境(版本号「点击帮助-关于-复制」):

TRAE CN
版本: 3.3.43
VSCode 版本: 1.107.1
提交: 47a8a0b02bdf9226ea9b8f0a56df3ae9aa77857d
日期: 2026-03-31T09:05:38.542Z
Electron: 39.2.7-release.1.28.8 (aha)
Node.js: 22.21.1
V8: 14.2.231.24-electron.0
OS: Windows_NT x64 10.0.19045
构建版本: 2.3.17432
设备ID: 44ceb648179db4e3264ca96dfd956a8abb65579f0e8354811cc82df042e87754
Device Id: 3789395222869241

问题描述(你遇到了什么问题?):

让TRAE基于现有代码实现一个功能,会“反复”导致修改的文件代码被覆盖(原来的功能被删除)

复现步骤(如何才能重现这个 Bug/问题?):
1.让TRAE基于现有工程增加一个功能,被修改的MainForm.cpp 6267行代码,修改之后变成398行代码

报错信息或截图(如有):

第一次覆盖TRAE提示: 文件被覆盖了。我需要重新实现所有的办公模式功能。让我先恢复文件的基本结构,然后重新添加办公模式功能:

第二次覆盖TRAE提示: 看起来文件被完全覆盖了!我需要重新恢复 MainForm.cpp 文件。让我使用之前的方法重新读取并恢复文件:

第三次覆盖TRAE提示: 非常抱歉出现了文件覆盖问题。让我从备份目录恢复文件:

第四次覆盖TRAE提示: 文件被损坏了。我需要从备份重新恢复并采用更安全的方法进行修改。让我恢复文件并使用一个更稳妥的方案 - 创建一个补丁文件然后应用:

第五次覆盖TRAE提示: 文件又被覆盖了!看起来 Write 工具完全覆盖了文件而不是追加。让我从备份重新恢复:

1 个赞

我理解了,你在使用 TRAE Builder 模式添加新功能时,遇到了原始文件被反复覆盖、几千行代码直接变成几百行的问题,原有功能都被弄丢了。

根据经验,这通常是因为任务太复杂,AI 没有正确理解要增量修改而不是重写整个文件。你可以试试把这个大任务拆分成几个小任务,一次只让 AI 添加一个小功能点,而不是一口气实现完整的办公模式。

另外在 Builder 模式下,每次 AI 修改完后,你都可以先查看代码 diff,确认修改范围没问题后再 Accept。如果发现 AI 要覆盖整个文件,可以直接停止任务,重新明确告诉它只修改新增功能相关的部分。你当前使用的是哪个 AI 模型呢?

1 个赞

功能就是拆分的,让TRAE实现代码只有300多行代码

1 个赞

我理解了,即使已经拆分成只有300多行代码的小功能,仍然出现整个文件被覆盖的问题,而且 TRAE 自身也检测到了这个问题但尝试恢复后还是反复失败。

这种情况大概率是 Builder 的 Write 工具在处理大文件时出现了识别错误。你可以试试这两个方法:

  1. 在提示词里明确指定修改范围:比如写上"只需要修改 handleOfficeMode() 这个函数,保留文件其他所有原有代码不变,不要重写整个文件",强制约束 AI 的修改行为

  2. 改用 Chat 模式:让 AI 在对话中生成需要修改的代码片段,你手动复制粘贴合并到原文件中,这样可以避免自动写入时的覆盖问题

你的 MainForm.cpp 原来有 6000 多行,这个文件大小正常吗?是否有部分内容没有被 TRAE 正确索引到?

1 个赞

您尝试在规则中定义明确的修改迭代和新增功能的界限,比如修改功能时需要基于当前功能改造,不能擅自重构替代

1 个赞

需求是拆分,这个问题就是Write 工具对于大文件的处理不好导致