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ẽ
- Phân biệt hook loại command, agent và prompt
- Viết hook PreToolUse chặn lệnh nguy hiểm
- Á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.