2026-03-144 phút đọcVI
Hooks — tự động hóa theo sự kiện
English title: Hooks — Automate on Events
Bài 11 trong chuỗi 15 bài hướng dẫn Cursor. Mỗi lần Agent chạy tool (vd. đọc file, sửa file, chạy lệnh terminal) — bạn có thể chạy logic trước hoặc sau đó. Hooks trong Cursor cho phép gắn logic vào sự kiện (vd. PreToolUse, PostToolUse): cảnh báo trước khi chạy lệnh nguy hiểm, log sau khi sửa file, hoặc validate tham số. Tài liệu: cursor.com/docs/agent/hooks. Bài này giới thiệu khái niệm và khi nào dùng.
Mở đầu: Mỗi lần Agent chạy tool — hook chạy trước/sau
Bạn muốn: "Mỗi khi Agent sắp chạy lệnh terminal có chứa rm -rf thì nhắc tôi xác nhận." Hoặc: "Sau mỗi lần Agent sửa file, ghi log vào file audit." Hooks làm điều đó: bạn đăng ký logic (code hoặc config) cho sự kiện "trước khi tool chạy" hoặc "sau khi tool chạy"; Cursor gọi logic đó mỗi khi sự kiện xảy ra. Không phải user nào cũng cần hooks ngay — nhưng khi cần enforce quy ước hoặc audit, hooks rất hữu ích.
1. Đi sâu: Hooks là gì
Tại sao chủ đề này quan trọng: Agent có quyền sửa file và chạy lệnh; hooks giúp bạn chèn bước kiểm tra hoặc ghi nhận (validation, logging, block) mà không phải nhắc AI bằng tay mỗi lần.
Hiểu sai thường gặp: Nhiều người nghĩ "hooks = chỉ cho git". Trong Cursor, hooks gắn với tool use của Agent — mỗi lần Agent gọi tool (read_file, edit_file, run_terminal_cmd, ...) có thể có PreHook và PostHook.
Bản chất đúng: Hooks = hàm hoặc logic chạy khi một sự kiện xảy ra. PreToolUse = chạy trước khi tool thực thi — có thể validate, chặn, hoặc sửa tham số. PostToolUse = chạy sau khi tool xong — có thể log kết quả, trigger bước khác. Cấu hình hooks tùy Cursor version (xem Docs).
2. Khái niệm
- PreToolUse: Sự kiện "trước khi tool chạy"; hook có thể đọc tham số tool (vd. lệnh terminal), quyết định allow/block, hoặc thay đổi tham số.
- PostToolUse: Sự kiện "sau khi tool chạy"; hook nhận kết quả (vd. output lệnh, diff file), có thể log hoặc gửi đi đâu đó.
- Tool: Hành động Agent gọi (read_file, edit_file, run_terminal_cmd, ...). Mỗi lần gọi có thể kích hoạt Pre/Post hook.
3. Khi nào dùng Hooks
- Bảo mật / an toàn: Chặn lệnh nguy hiểm (vd.
rm -rf, format ổ đĩa). PreToolUse kiểm tra lệnh, nếu match pattern nguy hiểm thì block và nhắc user. - Audit / compliance: PostToolUse ghi log mọi thay đổi file hoặc mọi lệnh chạy — phục vụ audit sau này.
- Tích hợp: Sau khi Agent sửa file, hook gọi script bên ngoài (vd. gửi notification, chạy build).
Hooks tăng độ phức tạp; chỉ nên dùng khi lợi ích rõ ràng. Đa số user dùng Cursor hiệu quả mà không cần hooks.
4. Ứng dụng
Sau bài này bạn đã biết: Hooks = PreToolUse / PostToolUse; dùng cho validate, log, block. Bài tiếp: TDD với Cursor Agent — viết test trước, Agent implement và verify.
Bài tiếp: TDD với Cursor Agent (bài 12).