P366 · 工具调用

同时确认进程退出和任务完成

Process Success and Semantic Completion Handshake

后台进程退出成功后,还需找到任务完成记录,才能报告完成。

编辑审核

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

使用场景

后台分析器处理一份观察记录。教学运行R7因读不到输入而报告阻塞,却退出0;主进程若把它当成功并归档唯一输入,就丢失了待处理工作。

具体做法

为本轮固定输入快照和运行身份。完成契约要求必需读取、分析与写入成功后,最后一个非空行输出精确记录{“status”:”analysis_complete”};没有发现也应输出,阻塞不得输出。主进程同时检查退出0与本轮恰好一个末尾完成记录,独立核对必需产物。全部满足后只确认该快照,保留后来新增输入;失败保留待办和诊断。

反例

R7退出0,所以分析完成。即使日志说输入不可读,也归档所有当前观察记录。

改进写法

R7退出0只表示进程正常结束。检查本轮输出恰好一个末尾analysis_complete记录及必需产物;缺失、重复、写入失败或输入快照不符则保持待处理。有效的无发现分析也可以完成,但不能归档本轮未读取的新增记录。

为什么这样改

进程状态与任务状态回答不同问题。明确完成协议给主进程一个可检查信号;输入快照约束避免确认范围扩大到分析器并未处理的数据。

如何验证

教学矩阵:退出0但阻塞、记录缺失、重复记录或记录后仍有其他非空输出均不确认。退出非0即使有记录也不确认。退出0、精确末尾记录、产物核对通过可确认R7快照;新增记录仍留待办。

适用边界

自报标记可能错误,不能证明分析质量或每个写入正确,故需独立产物核验。具体记录格式是本例契约,真实宿主可能用其他协议。归档与确认还要防并发覆盖,不能只依赖模型口头完成声明。

原文与版本

如何收录这些方法