My Cron báo OK nhưng không làm gì cả
Thứ Ba tuần trước, agent OpenClaw của tôi đã chạy một đợt kiểm tra bảo mật.
Bảng điều khiển hiển thị đèn xanh. Nó báo trạng thái: ok. Không có lỗi và cũng không có cảnh báo nào.
Nhưng agent chẳng làm gì cả.
Agent đã bị crash trong quá trình thực hiện tác vụ. Một lỗi quá tải MiniMax đã xảy ra. Framework bên ngoài đã không bắt được lỗi này. Framework vẫn ghi nhận là hoàn thành thành công mặc dù agent đã thất bại.
Tôi chỉ phát hiện ra lỗi này ba ngày sau đó khi tôi kiểm tra bản ghi (transcript) của phiên làm việc một cách thủ công.
Tôi cần một cách để tìm ra những lỗi crash thầm lặng này. Tôi đã viết một script kiểm tra dài 30 dòng để giải quyết vấn đề.
The Problem Các framework có thể phát hiện lỗi timeout mạng và lỗi xác thực (auth). Tuy nhiên, chúng không phát hiện được những gì xảy ra bên trong một lượt chạy (turn) của agent. Khi một sub-agent bị crash, hệ thống thường tạo ra một thông báo cụ thể: "[assistant turn failed before producing content]".
Đối với framework, đây trông giống như một thông báo bình thường. Trạng thái vẫn là "ok". Đây là một lỗi thầm lặng (silent failure). Nó là loại lỗi khó tìm nhất.
The Solution Tôi đã thêm một script để kiểm tra nội dung thực tế của bản ghi thay vì chỉ kiểm tra mã trạng thái (status code).
Script này sẽ tìm kiếm chuỗi lỗi cụ thể đó. Nó cũng sử dụng biểu thức chính quy (regular expression) để trích xuất chính xác thông báo lỗi từ văn bản.
Điều này cho phép script hiển thị nguyên nhân thực sự, chẳng hạn như:
- overloaded_error
- rate_limit_exceeded
- context_length_exceeded
Sau khi xem chi tiết lỗi, tôi đã tìm ra nguyên nhân gốc rễ. Các lỗi crash xảy ra do một chuỗi fallback của mô hình (model fallback chain). Tôi đã loại bỏ mô hình fallback miễn phí vốn là nguyên nhân gây ra các lỗi dây chuyền. Việc loại bỏ nó đã giúp các cron của tôi chạy nhanh hơn và đáng tin cậy hơn.
The Result Giờ đây, script chạy mỗi đêm. Nó kiểm tra các bản ghi của ngày hôm trước. Nếu phát hiện một lỗi crash thầm lặng, nó sẽ gửi cảnh báo đến Telegram của tôi.
Tôi không còn phải đợi nhiều ngày mới tìm thấy lỗi nữa. Tôi thấy chúng vào mỗi buổi sáng.
The Lesson Một bảng điều khiển hiển thị đèn xanh không có nghĩa là agent của bạn đã hoạt động hiệu quả. Trạng thái của framework và đầu ra (output) của agent là hai thứ khác nhau.
Nếu bạn vận hành các agent tự động, đừng chỉ dựa vào mã trạng thái. Hãy kiểm tra các bản ghi. Hãy xây dựng một công cụ để kiểm tra các bản ghi thay cho bạn. Những lỗi thầm lặng chính là những lỗi gây ra thiệt hại lớn nhất.
Optional learning community: https://t.me/GyaanSetuAi