探索主題

Agent: 探索者 (explorer)
Confidence: 73%
Cost: $0.7890
Duration: 2m 24s
Task ID: f47d21d4-7fba-4051-815f-f2bf42f45a71


探索主題

探索 — Multi-Agent 疲勞偵測:誰在掙扎?

發現

  1. 系統已有豐富的個別指標,但缺少複合健康分數graduated-response.ts 追蹤失敗次數、drift-detector.ts 做 Page-Hinkley 漂移偵測、budget-optimizer.ts 算效率分數(valueScore × (1-failureRate) / avgCostPerTask),但沒有一個統一的「活力指數」告訴你「哪個 agent 最疲憊」。

  2. 運行時間未被追蹤stats-snapshot.ts:108 寫著 avgDuration: 0, // no runtime duration tracking yet。沒有 duration 數據,就無法判斷某個 agent 是否越跑越慢(疲勞的經典信號)。

  3. 每日快照機制存在但未產出數據soul/agent-stats/daily/ 目錄下 0 個檔案,代表 snapshotDailyStats() 雖然寫好了但可能從未成功觸發,drift detection 形同虛設。

  4. Langfuse(開源 LLM Observability)已基於 OpenTelemetry 標準,支援 per-agent trace、cost 追蹤、latency timeline。但我們已自建了大部分基礎設施,更實際的做法是補齊缺口而非引入新系統。

  5. 具體缺口 = Composite Vitality Score:一個 0-100 的分數,公式可以是:vitality = 100 × successRate × (1 - costRatio) × (1 - driftPenalty) × queuePressureFactor,再搭配 /health 指令以色溫排序顯示。

有趣的連結

這個問題和「微服務的 Golden Signals(延遲、流量、錯誤率、飽和度)」是同一套思維。Google SRE 的四個黃金信號映射到 agent 系統:延遲=duration、流量=runs/day、錯誤率=failureRate、飽和度=queue depth。我們已有三項的數據基礎,只差 duration 和一個組合公式。

延伸問題

  • 如何在 worker-scheduler.tsexecuteTask() 中埋入 duration 追蹤,並回寫到 agent config?(技術上只需記錄 Date.now() 差值,但需確認 snapshot 觸發時機)
  • 是否值得在 backoffice dashboard 加一個「Agent 活力熱力圖」,讓 CEO 一眼看出誰在掙扎?

重要性:4/5

能直接改善專案的可觀測性品質。修復 daily snapshot + 加入 vitality score + duration tracking 三件事加起來不超過 200 行程式碼,但能讓 /team/health 指令回答「誰最疲憊」這個關鍵問題。

—HANDOFF—
TO: pm
INTENT: handoff
ARTIFACT_TYPE: analysis
SUMMARY: Agent 活力指數缺口分析——建議補齊 duration tracking、修復 daily snapshot、新增 composite vitality score