AI 整理完一份共享文档,准备保存时,同事可能已经改过原文。要避免把新修改覆盖掉,关键是让实际执行写入的一端核对版本:只有当前正文仍符合生成时的版本条件,才接受这次写入;条件不符,就保留提案,重新比较。
本文讨论 AI Agent(能读取文档、生成内容并调用工具保存结果的助手)采用“读出全文—生成—替换”的接法。条件写入是通用设计方法,具体能力需按目标接口确认;它不是对石墨实时协同机制或现有 Agent 集成的说明。
三份文本,看清一次覆盖怎样发生
假设团队共同维护一份培训通知。你让 Agent 把报名要求整理成编号步骤,在它生成内容期间,同事延长了报名时间:
09:00 · Agent 读取的原文 r17
报名截至 10 月 20 日。
提交报名表,并填写所在团队。
09:01 · 同事保存的当前正文 r18
报名截至 10 月 25 日。
提交报名表,并填写所在团队。
09:02 · AI 基于 r17 生成的提案
1. 在 10 月 20 日前报名。
2. 提交报名表。
3. 填写所在团队。
AI 完成了“整理成步骤”的任务,但如果程序直接用它的结果替换当前正文,截止日期就会退回 20 日。生成内容是否通顺,与保存时是否保住他人的修改,是两项不同的检查。这里的 r17、r18 仅表示先后版本,不是石墨接口字段。
为什么保存前再读一次还不够?
重新读取能发现已经发生的修改,但从检查结束到真正保存之间,同事仍可能继续编辑。因此,版本检查必须约束实际写入,不能只靠客户端“先查、再写”,也不能靠提示词要求 AI“使用最新版本”。
HTTP 标准 RFC 9110 的 If-Match 条件提供了一种机制:客户端携带读取时获得的实体标签(ETag),源站在执行操作前检查当前表示是否与该标签匹配。If-Match 使用强比较,常用于防止并行修改造成的“丢失更新”。
条件为假时,服务端不得执行本次请求的方法,可返回 412 Precondition Failed。标准也允许在判断请求的变更似乎已被应用时返回成功;因此,客户端还要结合接口约定和回读结果解释响应。If-Match: *只检查是否存在当前表示,不能代替对读取时版本的匹配。
文档接口也可能使用修订号或协同操作协议。接入前要确认标记覆盖整篇文档还是局部内容、条件是否由写入端执行,以及不匹配时的行为。自行添加 If-Match 请求头,不代表目标接口一定会处理它。
发现版本冲突后,怎样保留双方的修改?
同时保留三份文本:Agent 读取的基线、同事修改后的当前正文、AI 尚未写入的提案。基线能帮助区分双方各自改了什么,避免把同事新增的内容误判为 AI 要删除的内容。
- 对照基线找出变化。示例中,同事改了截止日期,AI 改了表达形式。文本位置不重叠,也不保证业务含义没有冲突;涉及同一事实的分歧,由文档负责人先确认。
- 基于当前正文重新组织内容。确认 25 日是有效日期后,保留该日期,再生成编号步骤。不要只把旧请求中的版本标记换新,继续提交原来的旧全文。
- 绑定新版本,再提交并回读。新提案应绑定本次读取的当前版本;若期间又有人修改,再次进入冲突处理。保存后核对截止日期、原有内容和本次修改,确认结果符合预期。
版本条件决定“能否基于这份旧状态写入”,不会替你判断哪个日期正确,也不代替权限和内容检查。回读用于确认结果,不能补上保存前缺失的并发保护。
接口没有条件写入能力时,先交付提案
如果接口不能提供可验证的并发保护,可先让 Agent 输出带基线标记的修改说明,或在权限和接口允许时创建独立草稿,由负责人对照当前正文处理。
只给 Agent 所在电脑加锁,无法阻止同事从网页、客户端或其他集成继续编辑。采用统一排队或锁定方案时,必须确认所有相关写入路径都受它控制。
还要分清明确的条件失败与超时、断线。前者说明本次条件写入未执行;后者只说明客户端没有拿到确定结果。遇到超时,应先查询操作状态或核对实际内容,不能把它当作“未保存”立即重发全文。
接入前,用四个场景检查写回流程
下面是验收建议,可在隔离测试文档中执行。每次记录基线版本、AI 提案、服务端结果和保存后的正文,再判断流程是否符合约定。
- 没有并发修改。读取后直接提交,核对目标内容是否正确更新、无关内容是否保留,以及新版本标记是否符合接口约定。
- 同事先修改。Agent 读取后,先由同事改动日期并保存,再提交旧提案。应拒绝旧条件写入,并保留同事的新日期。
- 重做提案期间再次修改。基于新版本生成提案后,再让另一位协作者保存。新提案也应重新检查条件,不能因已经处理过一次冲突就直接放行。
- 重复提交或保存响应丢失。在测试环境模拟重复请求及服务端已保存但客户端未收到响应的情况,确认程序先查状态或回读,没有盲目覆盖,也不会把操作结果不明误报成失败或成功。
如果还在评估整体接入,可以结合AI Agent 接入私有化文档的五项验收,一起检查身份、权限、数据范围和失败恢复。本文进一步展开其中的并发写回问题。
评估石墨接入时,先说清写回范围
企业内部的文档协作可从石墨办公套件私有部署开始评估;需要在业务系统中嵌入文档能力时,可了解石墨文档中台(Shimo Office SDK)私有部署。Agent 的写回能力仍需按部署版本、文档类型和具体开放接口核对。
准备一份脱敏样本,说明要修改哪个章节或字段、哪些人会同时编辑,以及冲突或超时后由谁处理,再预约演示,沟通文档接入与写回需求。如果想先体验基础文档协作,也可以立即试用石墨办公套件;试用入口不代表已配置本文的 Agent 写回流程。