Community研究與資料分析github.com

沉默失敗檢測器

捕捉監控錯誤無法發現的失敗:一個流程只是「沉默不語」。沒有異常,沒有崩潰——它只是停止發送信號,而你數天後才發現。

沉默失敗檢測器 是什麼?

沉默失敗檢測器是一種專門用於檢測流程靜默失敗的技能。在傳統的錯誤監控無法發現問題時(例如流程停止發出日誌、心跳訊號或數據流),此技能能透過檢查時間戳來判斷流程是否已「沉默」。它適用於各種具有預期發送頻率的場景,如定時任務、代理循環、數據饋送等。支援多種平台(如 Claude Code、Cursor、Codex),並可透過命令列或 Python 匯入使用。該技能經過嚴格評估,在 105 個標籤案例中達到 83.8% 的準確率,並清楚記錄了侷限性與調優方法。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add alidoesAi/alidoesai-skills

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

沉默失敗檢測器 是做什麼的?

捕捉監控錯誤無法發現的失敗:一個流程只是沉默不語。沒有異常,沒有崩潰——它只是停止發送信號,而你數天後才發現。

使用時機

  • 你有一串發送時間戳(記錄器、心跳、定時任務、代理循環、數據饋送)和預期的發送頻率,並希望知道它是否已停止。
  • 你想要一個可驗證、確定性的檢查,可以將其整合到每日完整性掃描中。

運作原理(一個旋鈕)

當最新的信號時間比 expected_interval_sec * multiplier 更舊時,則判定為沉默(預設 multiplier = 3.0 → 大約錯過三次心跳)。空的串流也被視為沉默。這個乘數在檢測延遲(較低的值能更快捕捉到真正的停止)和誤報(對爆發性節奏的容忍度,較高的值更容忍)之間進行權衡。將 expected_interval_sec 設定為串流的典型間隔;如果節奏是爆發性的,則將其設定為接近 p95 的間隔,並在說明中註明。

執行方式

echo '{"now": 1750000000, "expected_interval_sec": 60,
       "timestamps": [1749999940, 1749999990]}' > input.json
python3 detector.py input.json     # exit 0 = 健康, exit 1 = 沉默(應觸發警報)

或者匯入使用:from detector import detect; detect(now, timestamps, expected_interval_sec, multiplier=3.0)。

輸出範例

{ "status": "silent", "reason": "last signal 19880s old vs threshold 180s",
  "last_age_sec": 19880, "threshold_sec": 180.0 }

已知限制(經測量,非宣稱——請參閱 BENCHMARK.md)

在 105 個標籤案例集上,其得分為 83.8% 準確率(TPR 81.8% / TNR 86.0%)。所有錯誤都發生在閾值附近的 2–4 倍「灰色地帶」;明確的案例 100% 正確。 有兩個誠實的失敗模式:(1)對仍然存活但目前較慢、剛好跨越 3 倍閾值的串流產生誤報;(2)對於剛剛停止的串流有一次窗口的檢測延遲。調整 multiplier 以滿足你對延遲/誤報的偏好。評估是可重現的——重新執行並自行檢查數值。

相關技能