Write/SearchReplace 对已存在的大 HTML 文件做增量修改时,工具返回成功但磁盘内容未更新
问题描述
在使用 workspace 模式时,底层 AI 的 Write / SearchReplace 工具对已存在的较大 HTML 文件(约 100KB、1300+ 行)进行多次增量修改时,出现如下现象:
- 工具调用返回"修改成功",
file_changes 也显示 diff 正确;
- 但随后读取/检索该文件,发现部分修改未真正落盘(磁盘内容与工具返回的 diff 不一致);
- 尤其集中在文件后半段(如第 500 行之后的多个 section)进行连续多次编辑时更容易复现;
- 新建文件、覆盖整个文件、shell 层
cp 覆盖写入均正常,唯独"对已存在大文件的多次 SearchReplace 增量修改"会出现丢失。
复现步骤
- 准备一个 1300+ 行、约 100KB 的 HTML 文件;
- 用
SearchReplace 对文件不同位置连续做 3~5 次增量修改;
- 每次工具均返回成功;
- 用
Grep / Read / wc -l 核验磁盘内容,发现部分修改未生效。
期望行为
SearchReplace 对已存在大文件的增量修改应可靠落盘,工具返回成功即代表磁盘内容已更新,不应出现"返回成功但内容未变"的不一致。
补充排查信息
环境信息
- 模式:workspace 模式
- 复现对象:自包含 HTML 文件(约 100KB、1370+ 行)
- 工具:
Write / SearchReplace
Write/SearchReplace 对已存在的大 HTML 文件做增量修改时,工具返回成功但磁盘内容未更新
问题描述
在使用 workspace 模式时,底层 AI 的
Write/SearchReplace工具对已存在的较大 HTML 文件(约 100KB、1300+ 行)进行多次增量修改时,出现如下现象:file_changes也显示 diff 正确;cp覆盖写入均正常,唯独"对已存在大文件的多次 SearchReplace 增量修改"会出现丢失。复现步骤
SearchReplace对文件不同位置连续做 3~5 次增量修改;Grep/Read/wc -l核验磁盘内容,发现部分修改未生效。期望行为
SearchReplace对已存在大文件的增量修改应可靠落盘,工具返回成功即代表磁盘内容已更新,不应出现"返回成功但内容未变"的不一致。补充排查信息
/workspace与/data/user均为 virtiofs,同一底层文件系统;Write工具新建、覆盖写入均正常且落盘保持;环境信息
Write/SearchReplace