本章进度 14 / 18
78%
Harness 与工作流·判断·13 分钟
正文已完成

两个正确工具也会写出错误结果

识别重复写入、覆盖更新和先读后写竞态,并设计串行化或版本锁。

L145
为什么现在学

把“工具编排”从听懂变成会判断,避免遇到真实任务时仍靠感觉选择。

本课会用什么
  • 无需安装新工具
  • 准备一个可对照的真实问题或样本

每个工具单独看都正确,并行后仍可能出错。两个分支同时读取旧状态、各自修改再写回,后一个会覆盖前一个。

这一课的结果

能发现并行工具对共享资源的竞态风险并选择控制方案。

核心概念

先把关键判断说清楚

01

先读后写最易竞态

分支基于同一旧版本计算,写入时必须检查 version 没有变化。

02

单写者简化一致性

多个分析分支只输出建议,由一个确定节点统一合并并写入。

03

去重处理重复事件

event_id 和幂等键防止同一完成回调触发两次下游写入。

案例拆解

两个 Agent 同时修改客户标签

销售分支加 high_value,客服分支加 at_risk,后写分支覆盖了前一标签集合。

  1. 01

    两个分支改为只返回 proposed_tags,不直接写客户。

  2. 02

    汇合节点读取最新版本,合并去重后一次写入。

  3. 03

    写入使用 expected_version,不匹配则重新读取。

案例结果

并行保留分析速度,共享资源只由一个带版本检查的节点更新。

提交前练习

现在轮到你

审查一个含共享资源的并行流程。

完成本课需要:完成以下内容用于本课收口。

内容会自动保存在当前设备
查看参考答案与评分标准

参考答案

两个分支更新项目清单会丢条目;改为分支只产出 patch,汇合节点按 item_id 合并;写入带 version;冲突时重读并重新应用未消费 patch。

评分标准

  • 竞态描述具体
  • 控制方案适合数据模型
  • 冲突重试不会重复副作用

本课收口 · 应用检查

完成一次应用,再检查理解

完成一次必填练习,再通过理解检查;阅读标记和总结不设硬门槛。

0 / 2
02完成本课必填练习0 / 4 项必填内容已填写03通过理解检查点此去回答,约 30 秒
04补一句总结(可选)可以留空,不影响完成本课。
两个并行分支都要更新同一对象,最简单可靠的设计是?
你现在更接近哪一种状态?
尚有必填项未完成,请补齐后再继续。

资料来源

继续核对与延伸阅读

本课内容最近更新于 。