Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 6 — Giám sát chủ động: kill switch, cảnh báo và human-on-the-loop

Đã đọc 0/7 mục · còn khoảng 3 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Approval gate xử lý từng hành động một. Nhưng một số sự cố chỉ lộ ra ở quy mô: agent bắt đầu hoàn tiền cho mọi đơn vì hiểu sai một luật, hay gửi 500 tin nhắn trong một phút. Bài này lo tầng giám sát chủ động — phát hiện và dừng khi mọi thứ đang trượt bánh.

Kill switch: cái phanh khẩn cấp

Mọi agent production phải có nút dừng tức thì, toàn cục. Khi bật, agent ngừng nhận việc mới và không thực thi hành động write nào nữa.

def gated_execute(action, ctx):
    if kill_switch.is_on():
        audit("system", action.name, action.params,
              reasoning="Bị chặn bởi kill switch", risk=0, level="blocked")
        raise Halted("Agent đang bị tạm dừng khẩn cấp")
    ...  # phần còn lại như Bài 3

Kill switch phải: bật được bởi người không phải kỹ sư (một nút trên dashboard), có hiệu lực trong vài giây, và fail-safe — nếu không chắc trạng thái, mặc định là dừng.

Rate limit và circuit breaker

Ngoài phanh tay thủ công, cần phanh tự động:

  • Rate limit: giới hạn số hành động write/phút. Agent chỉ hoàn tối đa 20 đơn/giờ; vượt ngưỡng thì tự treo và cảnh báo.
  • Circuit breaker: nếu tỉ lệ lỗi/từ chối vượt mức (ví dụ 30% hành động gần đây bị người từ chối), tự ngắt và bắt mọi hành động phải qua người duyệt.
if window_stats.write_count(minutes=1) > RATE_LIMIT:
    trip_breaker("Vượt rate limit ghi")
if window_stats.rejection_rate(last=20) > 0.3:
    trip_breaker("Người duyệt từ chối quá nhiều -> agent có thể sai")

Circuit breaker biến một loạt sai lầm nhỏ thành một tín hiệu dừng lớn — thay vì để agent "kiên trì" làm sai hàng trăm lần.

Cảnh báo có thể hành động

Human-on-the-loop chỉ hiệu quả nếu người giám sát biết khi nào cần nhìn. Cảnh báo tốt phải: đúng người, đúng lúc, kèm ngữ cảnh và hành động gợi ý.

Ví dụ cảnh báo tốt: "Refund-bot vừa hoàn 12 đơn trong 5 phút (bình thường 2). Circuit breaker đã ngắt. [Xem chi tiết] [Khôi phục] [Giữ dừng]".

So với cảnh báo tệ: "Warning: high activity".

Các bước dựng giám sát chủ động

  • Thêm kill switch toàn cục kiểm tra ở đầu mọi lần thực thi write.
  • Đặt rate limit cho từng loại hành động nhạy cảm, dựa trên baseline bình thường.
  • Thêm circuit breaker theo tỉ lệ lỗi/từ chối; định nghĩa điều kiện tự ngắt và tự khôi phục.
  • Định nghĩa tín hiệu bất thường (spike số lượng, giá trị vượt trần, lặp mẫu lạ).
  • Xây cảnh báo có ngữ cảnh + nút hành động tới đúng kênh của người trực.
  • Diễn tập sự cố (game day): cố tình kích hoạt và đo thời gian từ phát hiện đến dừng.

Khung tư duy: ba lớp lưới an toàn

Lớp 1: Gate (Bài 3)         - chặn từng hành động rủi ro
Lớp 2: Undo/idempotency     - sửa sai sau khi lỡ chạy
Lớp 3: Giám sát chủ động    - dừng khi sai ở quy mô

Mỗi lớp bắt loại lỗi mà lớp khác bỏ sót. Đừng dựa vào một lớp duy nhất.

Sai lầm thường gặp

  • Kill switch chỉ kỹ sư mới bật được. Sự cố xảy ra ngoài giờ; người trực nghiệp vụ phải tự dừng được qua một nút đơn giản.
  • Không có phanh tự động. Chỉ dựa vào con người phát hiện thì quá chậm khi agent chạy hàng trăm hành động/phút.
  • Cảnh báo không hành động được. "High activity" khiến người trực phải tự điều tra từ đầu — chậm và dễ bỏ qua.
  • Alert quá nhiều thành nhiễu. Cảnh báo tràn lan gây "alert fatigue", người ta tắt thông báo và bỏ lỡ cái thật.
  • Không diễn tập. Kill switch chưa bao giờ được thử thường hỏng đúng lúc cần nhất.
Bài sau: thiết kế trải nghiệm người duyệt để họ quyết định nhanh, chính xác, và không kiệt sức.

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi