Le Duy Khuong

Chuỗi: cursor-15-p3 · Phần 11

Năng suất & công cụ dev

Hooks — tự động hóa theo sự kiện

Hooks chạy trước hoặc sau khi Agent dùng tool. Dùng để validate, log, hoặc chặn lệnh nguy hiểm.

2026-03-144 phút đọcVI

Phần 11 của 5220% hoàn thành

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).

LDK

Le Duy Khuong

AI Transformation & Digital Strategy. Writing about agentic systems, engineering leadership, and building in public.