Cron vs Heartbeat: Khi nào nên dùng từng loại
Cả heartbeat và cron job đều cho phép bạn chạy tác vụ theo lịch. Hướng dẫn này giúp bạn chọn cơ chế phù hợp cho trường hợp sử dụng của mình.Hướng dẫn quyết định nhanh
| Trường hợp sử dụng | Khuyến nghị | Lý do |
|---|---|---|
| Kiểm tra hộp thư mỗi 30 phút | Heartbeat | Gộp với các kiểm tra khác, nhận biết ngữ cảnh |
| Gửi báo cáo hằng ngày đúng 9 giờ | Cron (isolated) | Cần thời điểm chính xác |
| Theo dõi lịch cho sự kiện sắp tới | Heartbeat | Phù hợp tự nhiên cho nhận biết định kỳ |
| Chạy phân tích sâu hằng tuần | Cron (isolated) | Tác vụ độc lập, có thể dùng mô hình khác |
| Nhắc tôi sau 20 phút | Cron (main, --at) | Một lần, thời điểm chính xác |
| Kiểm tra sức khỏe dự án nền | Heartbeat | Tận dụng chu kỳ hiện có |
Heartbeat: Nhận biết định kỳ
Heartbeat chạy trong phiên chính theo một khoảng thời gian đều đặn (mặc định: 30 phút). Chúng được thiết kế để agent kiểm tra tình hình và đưa ra bất cứ điều gì quan trọng.Khi nào nên dùng heartbeat
- Nhiều kiểm tra định kỳ: Thay vì 5 cron jobs riêng lẻ kiểm tra hộp thư, lịch, thời tiết, thông báo và trạng thái dự án, một heartbeat có thể gộp tất cả.
- Quyết định theo ngữ cảnh: Tác tử có đầy đủ ngữ cảnh của main session, nên có thể quyết định thông minh việc nào khẩn cấp và việc nào có thể chờ.
- Liên tục hội thoại: Các lần chạy heartbeat dùng chung một phiên, nên tác tử nhớ các cuộc trò chuyện gần đây và theo dõi tự nhiên.
- Giám sát chi phí thấp: Một heartbeat thay thế nhiều tác vụ polling nhỏ.
Ưu điểm của heartbeat
- Gộp nhiều kiểm tra: Một lượt của tác tử có thể xem hộp thư, lịch và thông báo cùng lúc.
- Giảm số lần gọi API: Một heartbeat rẻ hơn 5 cron jobs tách biệt.
- Nhận biết ngữ cảnh: Tác tử biết bạn đang làm gì và ưu tiên phù hợp.
- Ẩn thông minh: Nếu không có gì cần chú ý, tác tử trả lời
HEARTBEAT_OKvà không gửi thông báo nào. - Thời điểm tự nhiên: Có thể trôi nhẹ theo tải hàng đợi, phù hợp cho hầu hết giám sát.
Ví dụ heartbeat: danh sách kiểm HEARTBEAT.md
Cấu hình heartbeat
Cron: Lập lịch chính xác
Cron jobs chạy tại thời điểm chính xác và có thể chạy trong các phiên cô lập mà không ảnh hưởng đến ngữ cảnh chính.Khi nào nên dùng cron
- Cần thời điểm chính xác: “Gửi lúc 9:00 sáng mỗi thứ Hai” (không phải “khoảng 9 giờ”).
- Tác vụ độc lập: Các tác vụ không cần ngữ cảnh hội thoại.
- Mô hình/suy nghĩ khác: Phân tích nặng cần mô hình mạnh hơn.
- Nhắc việc một lần: “Nhắc tôi sau 20 phút” với
--at. - Tác vụ ồn/nhanh: Những tác vụ sẽ làm lộn xộn lịch sử main session.
- Kích hoạt bên ngoài: Tác vụ cần chạy độc lập dù tác tử có đang hoạt động hay không.
Ưu điểm của cron
- Thời điểm chính xác: Biểu thức cron 5 trường với hỗ trợ múi giờ.
- Cô lập phiên: Chạy trong
cron:<jobId>mà không làm bẩn lịch sử chính. - Ghi đè mô hình: Dùng mô hình rẻ hơn hoặc mạnh hơn cho từng job.
- Kiểm soát phân phối: Job cô lập mặc định là
announce(tóm tắt); chọnnonekhi cần. - Gửi ngay: Chế độ announce đăng trực tiếp, không chờ heartbeat.
- Không cần ngữ cảnh tác tử: Chạy ngay cả khi main session đang nhàn rỗi hoặc đã được nén.
- Hỗ trợ một lần:
--atcho mốc thời gian tương lai chính xác.
Ví dụ cron: Bản tin buổi sáng hằng ngày
Ví dụ cron: Nhắc việc một lần
Lưu đồ quyết định
Kết hợp cả hai
Thiết lập hiệu quả nhất sử dụng cả hai:- Heartbeat xử lý giám sát thường xuyên (hộp thư, lịch, thông báo) trong một lượt gộp mỗi 30 phút.
- Cron xử lý lịch chính xác (báo cáo hằng ngày, rà soát hằng tuần) và nhắc việc một lần.
Ví dụ: Thiết lập tự động hóa hiệu quả
HEARTBEAT.md (kiểm tra mỗi 30 phút):Lobster: Quy trình xác định với phê duyệt
Lobster là runtime quy trình làm việc cho pipeline công cụ nhiều bước cần thực thi mang tính quyết định và phê duyệt rõ ràng. Hãy dùng nó khi tác vụ không chỉ là một lượt agent duy nhất, và bạn muốn một quy trình có thể tiếp tục lại với các điểm kiểm soát của con người.Khi Lobster phù hợp
- Tự động hóa nhiều bước: Bạn cần một pipeline gọi công cụ cố định, không phải prompt một lần.
- Cổng phê duyệt: Các tác động phụ nên tạm dừng cho đến khi bạn phê duyệt, rồi tiếp tục.
- Chạy có thể tiếp tục: Tiếp tục một quy trình đã tạm dừng mà không chạy lại các bước trước.
Cách kết hợp với heartbeat và cron
- Heartbeat/cron quyết định khi nào một lần chạy xảy ra.
- Lobster định nghĩa những bước nào diễn ra khi lần chạy bắt đầu.
Ghi chú vận hành (từ mã nguồn)
- Lobster chạy như một tiến trình con cục bộ (CLI
lobster) ở chế độ tool và trả về JSON envelope. - Nếu tool trả về
needs_approval, bạn tiếp tục vớiresumeTokenvà cờapprove. - Tool là plugin tùy chọn; bật theo cách bổ sung qua
tools.alsoAllow: ["lobster"](khuyến nghị). - Nếu bạn truyền
lobsterPath, nó phải là đường dẫn tuyệt đối.
Phiên chính so với Phiên độc lập
Cả heartbeat và cron đều có thể tương tác với main session, nhưng theo cách khác nhau:| Heartbeat | Cron (main) | Cron (isolated) | |
|---|---|---|---|
| Phiên | Main | Main (qua sự kiện hệ thống) | cron:<jobId> |
| Lịch sử | Dùng chung | Dùng chung | Mới mỗi lần chạy |
| Ngữ cảnh | Đầy đủ | Đầy đủ | Không (bắt đầu sạch) |
| Mô hình | Mô hình main session | Mô hình main session | Có thể ghi đè |
| Đầu ra | Gửi nếu không HEARTBEAT_OK | Prompt heartbeat + sự kiện | Thông báo tóm tắt (mặc định) |
Khi nào dùng cron main session
Dùng--session main với --system-event khi bạn muốn:
- Nhắc việc/sự kiện xuất hiện trong ngữ cảnh main session
- Tác tử xử lý trong heartbeat tiếp theo với đầy đủ ngữ cảnh
- Không có lần chạy cô lập riêng
Khi nào dùng cron cô lập
Dùng--session isolated khi bạn muốn:
- Trạng thái sạch không có ngữ cảnh trước đó
- Cài đặt mô hình hoặc suy nghĩ khác
- Thông báo tóm tắt trực tiếp tới một kênh
- Lịch sử không làm lộn xộn main session
Cân nhắc chi phí
| Cơ chế | Hồ sơ chi phí |
|---|---|
| Heartbeat | Một lượt mỗi N phút; tăng theo kích thước HEARTBEAT.md |
| Cron (main) | Thêm sự kiện vào heartbeat tiếp theo (không có lượt cô lập) |
| Cron (isolated) | Một lượt tác tử đầy đủ cho mỗi job; có thể dùng mô hình rẻ hơn |
- Giữ
HEARTBEAT.mdnhỏ để giảm chi phí token. - Gộp các kiểm tra tương tự vào heartbeat thay vì nhiều cron jobs.
- Dùng
target: "none"trên heartbeat nếu bạn chỉ muốn xử lý nội bộ. - Dùng cron cô lập với mô hình rẻ hơn cho các tác vụ thường lệ.