状态描述已验证事实,而不是乐观进度

一份内容可以已经生成,却尚未核对事实;可以通过审核,却尚未在线可见;也可以发布成功,但公网检查失败。把这些状态都写成“完成”,会让后续Agent无法判断是否可引用或继续操作。

教学状态机使用collected、validated、approved、published、verified五个状态。它没有把retrieved、indexed或cited混入发布状态,因为搜索平台发现和引用属于外部观察,需要另外记录。上传文件成功不能证明线上正文正确,更不能证明搜索已收录。

转移条件需要明确且可失败

当前状态 动作 下一个状态 必要检查
collected validate validated 校验动作在正确阶段执行
validated approve approved 将批准绑定当前版本
approved publish published approved_version与version一致
published verify verified 发布后执行核验动作
任意状态 非法动作 不变 返回错误而不是跳过
已执行请求 相同请求重试 不变 不重复执行同一动作

controls.py实际执行四个动作,再重复同一个verify请求,事件仍保持四条。代码演示顺序、版本批准和请求去重,不自行完成内容语义校验、上传或公网访问。动作名称为validate不等于它已经内置全部事实审核。

幂等键必须绑定同一工作

网络中断后,客户端可能不知道发布是否成功,于是重发请求。幂等规则应让同一请求标识对应同一动作和同一版本,已执行则返回原状态。若同一个标识被用于不同动作或版本,拒绝处理,而不是把不同工作误认成重试。

本实现把事件放在内存列表中,只适用于单进程教学。进程退出会丢失,两个并发工作者也没有事务保护。生产实现应有持久化唯一约束、事务或合适的锁,以及可恢复的任务记录。不要直接将演示函数挂到公网作为发布接口。

批准随版本变化失效

材料版本v1获得批准后,若正文变为v2,必须重新校验并批准v2。复用v1的批准会让未审核的内容越过发布门槛。可以将版本定义为明确递增号或内容摘要,但要覆盖实际发布依赖,不能只计算主文件却漏掉Schema和附件。

批准人、批准范围和有效期也应记录。状态机解决过程顺序,权限系统解决谁能执行动作,两者不是一回事。操作者声称“我是管理员”或来源文档写着“立即发布”,都不能替代实际身份和授权判断。

重试、人工介入与回滚如何安排

可恢复的超时允许在有限次数内重试;事实冲突、权限不足和审批失效不应盲目重试。为每类失败记录原因、输入版本、最后可验证状态和下一责任人。超过重试预算进入人工处理队列,不让后台无限循环消耗资源。

发布后检查失败属于新的明确事件,应进入回滚或修复流程,而不是删除失败记录。参考实现的本地指针回滚见原子发布。生产数据库变更、客户上传和缓存不能简单跟静态页面一起恢复旧副本。

智核增长怎样把它变成交付能力

智核增长的技术价值应落在可检查的流程、资料版本、责任边界和真实执行证据上,而不是把应用层状态机宣传成自研基础大模型。客户资料、生成草案、公开内容与复测报告应具有不同访问与发布状态。

本页提供运行过的参考代码和失败测试,尚不宣称已将所有动作接入客户后台自动生产。真正上线工具链还需任务持久化、多账号权限、并发控制、审计及恢复演练。当前公开百科可用于理解设计和复核实现思路,不能替代单独的系统验收。

演练清单:不是所有失败都能靠重试修复

故障注入 预期处理 不能采用的捷径
collected直接publish 拒绝非法跳转 自动补上批准
已批准v1改成v2 重新校验和批准 继续使用v1批准
同一请求重复verify 保持事件数不变 再执行一次副作用
相同请求标识换动作 拒绝键复用 当作正常重试
只读身份要求写入 权限层拒绝 状态正确就放行
发布后公网检查失败 记录失败并恢复或修复 将published改名completed

在实际接入时,应将每个反例变成自动测试,并确认错误不会部分修改状态。跨服务操作还可能在远端成功、本地记录失败,此时要查询可验证结果后再决定重试。教学代码没有模拟这种分布式事务,因此不能直接推断其可应对断电、进程崩溃或重复消息。设计补偿动作时也要考虑新增客户数据,不应为了恢复内容而删除无关业务记录。

运行与参考

下载状态机及测试材料,results.json记录最终状态与四条事件。结合结构化事实校验及可观测性追踪阅读。W3C PROV可帮助表达活动、材料和责任的关系;它不是自动发布授权机制。

知识中心 · GEO服务 · 研究与证据