P219 · 工具调用

编辑前确认是替换还是局部更新

Check replace semantics before editing

根据接口的更新语义选择操作,避免局部修改变成全文覆盖。

编辑审核

以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。

使用场景

已有报告包含A、B两章,用户只要末尾加C。教学工具R是整份替换,工具I是末尾插入。把C单独传R会让原章节消失;动作名update不说明它是patch。

具体做法

先读取目标身份、当前内容与工具更新语义。追加接口可用时按它添加;只有替换时先合并完整当前稿与新段,再用支持的版本条件写入。写后回读核对修改范围,冲突时重读协调,不以缓存全文覆盖他人变化。

反例

只把C提交给R,认为update就是局部更新;成功响应后不回读,原A/B丢失也报告追加完成。

改进写法

按教学目标核对R/I语义,使用I末尾追加C;如果只能用R,先读当前A/B并合并C,核对版本再提交完整稿。回读确认A/B保持且C在指定位置,冲突保留他人修改再协调。没有明确语义不猜patch,不把成功响应代替内容范围检查。

为什么这样改

替换与局部更新有不同保留义务,选操作前确认能避免正确新段以错误方式覆盖旧文。回读把传输状态连到实际文本结果。

如何验证

教学目标结果A+B+C;R只有C时应判失败,I放错位置也不符合。插入并发作者B2时,最终保留B2而不是恢复缓存B。

检查目标、内容和版本条件,本篇不编辑真实云文档。

适用边界

不同接口对缺失/空字段和数组可能有不同替换语义,按实际schema核对。读取与写入也可能竞态,支持条件比较或适当协调;冻结工具名不保证当前参数。

原文与版本

如何收录这些方法