~/VibeHandbook
PDF miễn phí

Công cụ Agent

docs.claude.com

Hooks (Móc)

Nó là gì

Hãy nghĩ đến một chiếc đèn cảm biến chuyển động: nó tự động bật lên ngay khi có ai đó đi ngang qua, và không ai phải nhớ để bật công tắc. Một hook (móc) hoạt động theo cách tương tự. Hook là một lệnh do bạn tự định nghĩa, chạy tự động tại một thời điểm cụ thể trong vòng đời của (tác nhân AI) — trước khi nó chạy một lệnh , sau khi nó chỉnh sửa một tệp, khi một phiên làm việc bắt đầu, v.v. Hooks cho phép bạn quan sát và kiểm soát những gì agent làm bằng các script thông thường, thay vì tin tưởng rằng nó sẽ tự nhớ một quy tắc. Chúng là lớp thực thi (enforcement layer) của một coding harness (bộ khung điều phối lập trình).

Điểm mạnh

  • Xác định (deterministic): một hook chạy mỗi lần, đảm bảo, nên một quy tắc không thể bị quên hay bị lập luận để bỏ qua.
  • Được viết bằng shell hoặc script thông thường, nên bạn có thể làm bất cứ điều gì máy của bạn có thể làm.
  • Có thể chặn một hành động, chứ không chỉ ghi log nó — một hook "trước khi chạy lệnh" (pre-command) có thể từ chối một lệnh nguy hiểm.
  • Rất phù hợp cho các rào chắn an toàn (guardrails): tự động định dạng khi lưu, chạy kiểm thử sau khi chỉnh sửa, quét tìm bí mật (secrets) trước khi .

Đánh đổi

  • Hook là mã thực thi (code) thật, chạy tự động, nên một hook có lỗi có thể làm hỏng quy trình làm việc.
  • Các hook chạy chậm sẽ làm tăng độ trễ cho mỗi sự kiện kích hoạt.
  • Chúng kích hoạt dựa trên các khuôn mẫu (pattern), nên một hook quá rộng có thể can thiệp vào các hành động hợp lệ.
  • Cần thiết lập nhiều hơn và là thêm một nơi cần kiểm tra khi có điều gì đó hoạt động không như mong đợi.

Khi nào nên dùng

Dùng hooks khi bạn muốn có một đảm bảo chắc chắn về hành vi của agent — tự động định dạng, bắt buộc chạy kiểm thử, chặn các lệnh phá hoại, hoặc ghi log mọi hành động — thay vì dựa vào việc agent tự nguyện tuân thủ.

Phù hợp với vibe coding

Hooks là cách bạn giữ cho agent an toàn trong khi vẫn để nó di chuyển nhanh. Agent đề xuất; hook thực thi. Một hook "trước khi chạy" (before run) chặn rm -rf, hoặc một hook "sau khi chỉnh sửa" (after edit) chạy trình kiểm tra kiểu dữ liệu (type checker), sẽ biến một trợ lý tự do phóng khoáng thành một trợ lý không thể nào bỏ qua các rào chắn an toàn của bạn về mặt vật lý.

// run the formatter after every file edit
{
  "hooks": {
    "PostToolUse": [
      { "matcher": "Edit", "command": "npx prettier --write $FILE" }
    ]
  }
}