Lên Lịch Tác Vụ AI Với OpenCode Scheduler
OpenCode Scheduler cho phép chạy tác vụ AI theo lịch trình bằng bộ lập lịch native của OS — launchd, systemd hoặc Task Scheduler.
OpenCode đã trở thành một AI coding agent phổ biến trên terminal. Nhưng nếu bạn muốn AI agent của mình tự động chạy — kiểm tra deal lúc 9 giờ sáng, tổng hợp thông báo GitHub vào mỗi thứ Hai, hoặc giám sát website mỗi 6 giờ — mà không cần giữ terminal mở thì sao?
OpenCode Scheduler ra đời để giải quyết vấn đề đó: một plugin chính thức cho OpenCode biến hệ điều hành của bạn thành công cụ lập lịch cho AI agent.
OpenCode Scheduler là gì?#
OpenCode Scheduler là plugin dành cho CLI framework OpenCode ↗ cho phép bạn lên lịch các tác vụ AI định kỳ bằng bộ lập lịch native của hệ điều hành — launchd trên macOS, systemd --user trên Linux, schtasks trên Windows, với cron dự phòng khi không có sẵn backend native.
Thay vì chạy một daemon nặng nề hay phụ thuộc vào dịch vụ cron đám mây, plugin hoạt động như một lớp mỏng bao bọc quanh các bộ lập lịch OS đã được kiểm chứng qua nhiều năm.
Tính năng chính#
Lập lịch bằng ngôn ngữ tự nhiên#
Bạn mô tả những gì bạn muốn bằng tiếng Việt. Plugin tự động dịch thành biểu thức cron và cấu hình bộ lập lịch OS phù hợp.
“Lên lịch công việc hàng ngày lúc 9h sáng để tìm kiếm bàn đứng dưới 300 đô la trên Facebook Marketplace và gửi 5 deal tốt nhất vào Telegram của tôi”
Không cần phải nhớ cú pháp cron — nhưng nếu bạn biết, plugin cũng chấp nhận biểu thức cron 5 trường tiêu chuẩn.
Thực thi native trên OS#
Sau khi được lên lịch, công việc chạy tự động. OS đánh thức tác vụ vào thời điểm đã định, chạy script giám sát, và thực thi opencode run với prompt của bạn. Bạn không cần giữ terminal hay bất kỳ tiến trình Node.js nào chạy nền.
| Nền tảng | Backend | Trạng thái |
|---|---|---|
| macOS | launchd | Hỗ trợ đầy đủ |
| Linux (systemd) | systemd --user | Hỗ trợ đầy đủ |
| Linux (POSIX) | cron (crontab) | Dự phòng |
| Windows | schtasks (Task Scheduler) | Được hỗ trợ |
Giám sát thực thi (v1.2.0+)#
Các lần chạy theo lịch được bọc trong một script giám sát cung cấp:
- Chống chồng lấn — nếu lần chạy trước vẫn đang hoạt động, lần chạy theo lịch tiếp theo sẽ bị bỏ qua
- Chế độ không tương tác — các lần chạy theo lịch buộc
OPENCODE_PERMISSIONtừ chối các prompt tương tác, đảm bảo công việc không bị treo chờ người dùng - Timeout cấu hình được — đặt
timeoutSecondsđể dừng cứng các tác vụ chạy quá lâu vớiSIGTERMrồiSIGKILL
Phạm vi theo thư mục làm việc#
Công việc được phân chia theo thư mục làm việc. Điều này có nghĩa các dự án khác nhau không xung đột — mỗi dự án có định nghĩa công việc, khóa, nhật ký và đơn vị lập lịch OS riêng biệt.
Skill template tích hợp sẵn#
Plugin đi kèm skill template @scheduled-job-best-practices. Cài đặt vào bất kỳ repo nào bằng một lệnh duy nhất:
Install the scheduled job best practices skilltextTemplate được ghi vào .opencode/skill/scheduled-job-best-practices/SKILL.md, bạn có thể tham chiếu trong các prompt công việc đã lên lịch.
Cài đặt#
Thêm plugin vào opencode.json:
{
"plugins": ["opencode-scheduler"]
}jsonVậy là xong. Plugin tự động đăng ký tất cả các tool khi OpenCode khởi động.
Các công cụ có sẵn#
| Công cụ | Mô tả |
|---|---|
schedule_job | Tạo công việc theo lịch mới (ngôn ngữ tự nhiên hoặc cron) |
list_jobs | Liệt kê tất cả công việc đã lên lịch |
get_job | Lấy chi tiết và metadata của một công việc |
update_job | Cập nhật lịch trình, prompt hoặc timeout của công việc |
delete_job | Xóa công việc đã lên lịch và các artifacts |
run_job | Thực thi công việc ngay lập tức (fire-and-forget) |
job_logs | Xem nhật ký mới nhất từ một công việc |
get_version | Hiển thị phiên bản scheduler và OpenCode |
get_skill | Lấy skill template tích hợp sẵn |
install_skill | Cài đặt skill template vào repo của bạn |
cleanup_global | Xóa artifacts scheduler trên tất cả phạm vi |
Use cases thực tế#
Săn deal tự động#
Schedule a daily job at 9am to search for standing desks under $300textAgent duyệt các chợ trực tuyến, lọc kết quả và gửi deal tốt nhất đến Telegram hoặc Slack — tất cả trong khi bạn ngủ.
Kiểm toán code hàng tuần#
Schedule a job every Monday at 8am to summarize my GitHub notificationstextNhận bản tóm tắt hàng tuần về PR, issue và hoạt động trên các repository của bạn.
Giám sát health#
Schedule a job every 6 hours to check if my website is up and alert me on Slack if it's downtextKhông cần dịch vụ giám sát riêng — AI agent của bạn tự xử lý kiểm tra uptime.
Xử lý dữ liệu nền#
Schedule a daily job from /path/to/project to run my-tasktextGiao phó các tác vụ bảo trì định kỳ, dọn dẹp token, hoặc sinh tài liệu cho các agent nền tự động.
Cách hoạt động#
- Bạn mô tả công việc bằng ngôn ngữ tự nhiên hoặc cung cấp biểu thức cron
- Plugin ghi file cấu hình công việc vào
~/.config/opencode/scheduler/scopes/<scopeId>/jobs/ - Nó cài đặt một bộ định thời native OS —
.plistcholaunchd,.service+.timerchosystemd, hoặc Task Scheduler trên Windows - Vào thời điểm đã định, OS gọi một script giám sát (
~/.config/opencode/scheduler/supervisor.pl) - Script giám sát chạy
opencode run -- "<prompt>", ghi nhật ký và cập nhật metadata
Xử lý sự cố#
Nếu công việc không chạy, hãy kiểm tra đăng ký scheduler:
- macOS:
launchctl list | grep opencode - Linux:
systemctl --user list-timers | grep opencode - Windows:
schtasks /Query /TN "\OpenCode\opencode-job-*"
Kiểm tra nhật ký: Show logs for my-job trong OpenCode.
Đảm bảo thư mục làm việc có opencode.json với cấu hình MCP server — nếu không, các MCP tools sẽ không có sẵn khi chạy theo lịch.
Triết lý#
OpenCode Scheduler là một lớp mỏng có chủ đích. Nó không cố gắng trở thành một bộ lập lịch công việc phân tán hay thay thế cron đám mây. Thay vào đó, nó tận dụng cơ sở hạ tầng lập lịch đã tồn tại trên mọi hệ điều hành lớn, thêm vào lớp giám sát vừa đủ (chống chồng lấn, timeout, tổng hợp nhật ký) để làm cho các AI agent tự động đủ tin cậy cho môi trường sản xuất.
Kết quả: bạn có thể thiết lập các AI agent tự động trong vài phút, chạy trên máy của chính bạn, mà không tốn thêm chi phí hạ tầng.