問題從何而來
上週一早上,檢查在主裝置上運行的機器人日誌時,我發現了一個奇怪的模式。某些工作經常比預定時間結束得更晚。
起初我以為「可能是網路延遲」就跳過了,但連續兩天出現同樣的現象後,我仔細查看了日誌。
「咦?這個數據工作跑了2次?」
原因是過度的安全機制
用Claude Code建立的自動化程序設置為自動執行同一工作2次以應對可能的失誤。這是為了防止數據遺漏的善意規則,但隨著程序變得複雜,某個時刻驗證迴圈開始重複運作。
結果每天約300個數據被處理了4次(2次+重複2次)。
30行的修改改變了一切
解決方案很簡單。
# 修改前:驗證邏輯在2個區段獨立運作
if validation_1(data):
process_data(data)
if validation_2(data): # 再次檢查同樣的數據
process_data(data)
# 修改後:只執行一次驗證
if validation_1(data) and validation_2(data):
process_data(data)
改為用單一驗證檢查2個條件,並只處理一次數據。
我們學到的東西
從這次經驗中得到3點教訓。
首先,過度的安全機制會成為負擔。 最初為了防止失誤而建立多層驗證,但隨著時間推移,其意圖變得不明確。定期清理邏輯至關重要。
其次,養成閱讀日誌的習慣很重要。 明顯的性能下降通常是小漏洞的累積。即使一週檢查一次自動化日誌,也能及早發現問題。
第三,非開發者也完全可以診斷問題。 我也不能精確了解代碼語法,但向Claude Code提出「為什麼這項工作很慢」的問題,一起分析就能找到解決方案。
下一步
現在我們的夢幻團隊(倉鼠+小狗)添加了週度自動化審計(Automation Audit)程序。每週五花大約15分鐘查看各機器人的日誌。
這是一次小發現帶來大效率的經驗。