Lộ trình học›Claude Code›Claude Code chuyên sâu — Tham khảo đầy đủ Mở bản đồ

6.3 · Hook nâng cao: agent hook, prompt hook, chặn lệnh nguy hiểm

Bài viếtNâng cao7 phút đọc

Ngoài hook chạy lệnh shell truyền thống, Claude Code còn hỗ trợ hook loại agent (tự spawn subagent) và loại prompt (chèn văn bản vào hội thoại).

Sau bài này, bạn sẽ
  1. Phân biệt hook loại command, agent và prompt
  2. Viết hook PreToolUse chặn lệnh nguy hiểm
  3. Áp dụng nguyên tắc thiết kế hook tốt

Ba loại hook

Loại"type"Hành vi
Command"command"Chạy một lệnh shell — loại phổ biến nhất
Agent"agent"Spawn một subagent thay vì chạy lệnh shell trực tiếp
Prompt"prompt"Chèn thẳng văn bản vào hội thoại thay vì thực thi gì

Chặn lệnh nguy hiểm

# chan-lenh-nguy-hiem.sh
if echo "$CLAUDE_TOOL_INPUT" | grep -q "rm -rf"; then
  echo "Lệnh xóa đệ quy bị chặn theo chính sách repo" >&2
  exit 2
fi

Nguyên tắc thiết kế hook tốt

  • Nhanh: hook chạy trong vòng lặp — mỗi giây chậm nhân lên nhiều lần
  • Im lặng khi ổn, nói rõ lý do khi chặn
  • Bắt đầu với một hook, quan sát một tuần rồi mới thêm cái tiếp theo
  • Quy tắc mềm để trong CLAUDE.md; quy tắc PHẢI đúng 100% mới làm hook
Kiểm tra nhanh1 câu hỏi · chọn đáp án để xem giải thích
    Bạn đã hoàn thành bài này chưa?Tiến độ lưu trên trình duyệt của bạn.