1 · Evidence Production
Track B 只负责生成事实,不做语义裁决Target Runtime
action_chunk() 返回 status,其中最终原始观测位于 status["obs"]。
SessionRunner
SessionState.last_status 保存最后状态;final_observation 暴露最终 observation。
ResultWriter
递归查找 uint8 HWC/CHW 三通道数组,编码为 PNG,并组合任务与历史上下文。
Verification Bundle
runtime 成功后写入 artifact,并将 session 标记为 awaiting_verification。
artifacts/runtime/<session_id>/
├── episode.json
├── verification_bundle.json
└── rgb/final_*.png
2 · Two Entry Paths, One Service
Tool 不复制业务逻辑,只调用 SessionVerifier.verify_session()Background Worker · source=auto
轮询第一个 awaiting_verification session,自动发起语义校验。
→
VerifySessionTool · source=tool
主 Agent 指定 session_id;等待状态执行 apply,终态且证据存在时执行 review。
SessionVerifier
verify_session(session_id, source)Apply Route · awaiting_verification
- SessionRegistry 原子 claim:awaiting_verification → verifying。
- 读取 bundle 和所有 RGB;构造 text + image_url 多模态消息。
- LLM 返回严格 JSON verdict:success / failure / replan。
- 追加 mode=apply attempt,写 lesson,并提交最终状态或子 session。
- 按 rgbRetention 清理证据并同步 bundle 与 result metadata。
Review Route · succeeded / failed / replanned
- 要求原 bundle 与 RGB 仍存在;不重新采集现场观测。
- 使用相同多模态 prompt 重新生成 verdict。
- 追加 mode=review attempt,并记录 agent_reverification lesson。
- 不覆盖历史终态,不创建新的 replan,不再次执行 retention。
- 证据已清理时返回 evidence_unavailable,不调用模型。
3 · Session State Machine
Runtime completion 与 Agent semantic completion 分离pending等待 runtime 调度
claimedwatchdog 独占
runningtarget / policy 执行
finalizing写 episode 与 history
awaiting_verification证据已准备
verifyingAgent claim + LLM
terminalsucceeded / failed / replanned
success → succeeded
语义任务完成;默认 failed retention 会删除最终 RGB。
failure → failed
无法通过再次执行修正,或达到 replan 上限;记录失败 lesson。
replan → replanned + pending child
原 session 成为终态;复制执行约束并以新 task_description 插入子 session。
4 · RGB Retention Matrix
只在有效 apply verdict 提交后执行;模型或状态错误时不删除| rgbRetention | succeeded | failed | replanned | verification error | 终态 review 能力 |
|---|---|---|---|---|---|
| all | 保留 | 保留 | 保留 | 保留 | 所有有 bundle 的终态均可复核 |
| failed · default | 删除 | 保留 | 保留 | 保留 | 成功不可复核;失败与 replan 可复核 |
| none | 删除 | 删除 | 删除 | 保留 | 有效 verdict 后不可复核 |
5 · Audit Record
状态只表达当前结论;attempts 保留每次推理过程result.metadata.verification = {
"applied_attempt_id": "verification_…",
"latest_review_attempt_id": "verification_…",
"attempts": [{
"attempt_id": "verification_…",
"created_at": "ISO-8601",
"source": "auto | tool",
"mode": "apply | review",
"verdict": "success | failure | replan | null",
"evidence": ["…"],
"lesson": "…",
"details": { "failure_reason": "…" },
"error": null
}],
"rgb_retention": {
"policy": "failed",
"status": "retained | deleted | partial | error"
}
}
Claim Safety后台和 Tool 竞争同一个 waiting session 时,只有一个进程能完成 awaiting → verifying。
Review Immutabilityreview 只更新 result metadata 与 lesson;session.status 和 replan 拓扑保持不变。
Retention Consistency删除文件后将 bundle.rgb_paths 更新为剩余路径,并记录 deleted_at、deleted_paths 与 errors。
Error Boundary语义 verdict 已提交后,retention 错误不会反向覆盖 session 终态。
6 · Agent Configuration
仅在 runtime.enabled 与 verification.enabled 同时为 true 时启动服务并注册 Tool{
"agents": {
"verification": {
"enabled": true,
"model": null,
"maxReplans": 1,
"rgbRetention": "failed"
}
}
}
enabled控制 runtime 是否进入 awaiting_verification,以及 Agent 是否启动后台 verifier。
modelnull 时复用主 Agent 模型;指定其他模型时按该模型重新选择 provider。
maxReplans语义 replan 的最大链路深度;达到上限后将原 session 标记为 failed。
rgbRetention控制有效 apply 后的视觉证据生命周期,不影响 episode、bundle、attempts 和 lessons。