docs: define B-class subagent failure modes
This commit is contained in:
@@ -46,6 +46,19 @@ Watchdog status 僅定義監看子代理完成投遞狀態時可使用的狀態
|
||||
|
||||
> 本節僅定義 watchdog statuses 的語意與邊界,不提前實作 recovery logic、receipt state code、scenario tests 或其他後續 task。
|
||||
|
||||
|
||||
|
||||
## B-class failure modes
|
||||
|
||||
B-class failure modes 指的是「子代理工作本身不一定真的 timeout,但主線沒有收到可信 completion 回報」的假 timeout 類型。這一類問題的核心不是先判定 child 一定失敗,而是先區分執行端、事件投遞端與主線轉交端哪一段失聯。
|
||||
|
||||
- **done but not forwarded**:child session 內已有可信跡象顯示工作完成,例如子代理已產出最終回報、session 狀態顯示 done,或可確認 completion 已存在於子線;但 main conversation 沒有收到對應的 forwarded result。這類型代表「結果已存在,但沒有被成功轉交到主線」。
|
||||
- **no completion event received**:主流程已完成 dispatch,且等待時間已逼近或超過 `expectedBy`,但主線完全沒有收到任何 completion event。此時不能直接斷言 child 一定還在跑,也不能直接斷言 child 已失敗;只能先明確標記為「主線未收到 completion event」,避免把 delivery 問題誤判成單純執行逾時。
|
||||
- **session exists but no result bounce**:可確認 child session 仍存在、可被查到,甚至可見到該 session 有持續活動或已留下結果內容,但沒有任何 result bounce 回到 main conversation。這類型比前一類更明確指出:session 並未消失,問題在於結果沒有沿正常回傳路徑反彈回主線。
|
||||
- **unclear slow-run vs delivery failure**:目前只知道主線等待已超過預期,但還無法分辨 child 是真的慢、仍在執行,還是其實已完成卻發生 delivery failure。這個 failure mode 的定義重點是保留不確定性:在證據不足時,不應把所有超時都歸類成 slow run,也不應直接假設是 delivery failure。
|
||||
|
||||
> 本節只定義 B-class 假 timeout failure modes 的語意邊界與彼此差異,不提前實作 recovery logic、receipt state code、watchdog script 或 scenario tests。
|
||||
|
||||
## Completion receipt example
|
||||
|
||||
```json
|
||||
|
||||
Reference in New Issue
Block a user