diff --git a/AGENTS.md b/AGENTS.md index 6353cb5c5..57aa40c9e 100755 --- a/AGENTS.md +++ b/AGENTS.md @@ -808,3 +808,46 @@ LangChain 将 Harness Engineering 应用于开源项目,取得了可观的效 → 80%+ 任务一次通过编译 → 人工介入聚焦架构和设计决策 ``` + +## 持久化执行:状态管理与幂等性 + +### 三层状态管理 + +| 层级 | 内容 | 本项目的实现 | +|---|---|---| +| **系统层** | 工作流 ID、超时、重试配置 | update_plan 记录任务 ID 和进度 | +| **执行层** | 当前活动、执行进度、等待事件 | 编译失败后从失败点继续 | +| **业务层** | 已完成工作、中间产物 | git diff 记录变更,编译结果作为验证 | + +### 事件溯源(本项目的简化版) + +每次操作产生不可变的事件记录,用于审计和恢复: + +``` +事件流(按时间顺序): + ① 你提交任务 → ② 我制定计划 → ③ 修改代码 + → ④ 编译检查(通过/失败) → ⑤ 数据流验证 + → ⑥ 你审查(通过/驳回) → ⑦ 提交代码 +``` + +每次事件都可通过 `git log` + update_plan 追溯。 + +### 幂等性模式 + +| 模式 | 说明 | 本项目的应用 | +|---|---|---| +| **唯一标识** | 每个操作生成唯一 ID,已执行则跳过 | 同一个 Bug 修复不重复生成相同文件 | +| **状态检查** | 执行前检查目标是否已达成 | 编译检查只运行一次,不重复编译已成功的模块 | +| **补偿操作** | 失败时回滚到之前状态 | 编译失败 → 撤销本次修改 → 从上次检查点继续 | + +### 检查点策略 + +``` +时间触发:每个关键步骤完成后保存检查点(update_plan) +事件触发:编译通过/失败后保存 +状态变化:代码修改后保存(git diff 可见) + +恢复流程: + 失败 → 定位最新检查点 → 分析失败原因 + → 从失败点修复 → 继续执行(不从头开始) +```