Agent thật sự "làm việc" khi nó gọi tool (API, hàm, truy vấn DB) và chạy nhiều bước để đạt mục tiêu. Đây là lúc prompt phải hướng dẫn agent suy nghĩ rồi hành động, biết khi nào dừng, và xử lý khi tool lỗi.
Mô tả tool đúng cách
Agent chọn tool dựa trên mô tả bạn viết. Mô tả mơ hồ → agent chọn sai tool. Mỗi tool cần:
Tool: query_orders
Mô tả: Tra cứu trạng thái đơn hàng theo mã đơn. CHỈ đọc, không thay đổi dữ liệu.
Dùng khi: khách hỏi đơn ở đâu, đã giao chưa.
KHÔNG dùng khi: khách muốn hủy/đổi (dùng create_ticket).
Tham số: order_id (bắt buộc, dạng chuỗi số).
Điểm mấu chốt là dòng "Dùng khi / KHÔNG dùng khi" — nó ngăn agent lạm dụng một tool cho mọi việc.
Khung ReAct: Suy nghĩ → Hành động → Quan sát
Hướng dẫn agent lặp theo chu trình:
Với mỗi bước:
1. SUY NGHĨ: mình cần gì tiếp theo? tool nào?
2. HÀNH ĐỘNG: gọi đúng 1 tool với tham số cụ thể.
3. QUAN SÁT: đọc kết quả tool trả về.
4. Lặp lại cho tới khi đủ thông tin.
5. KẾT LUẬN: trả lời cuối theo định dạng yêu cầu.
ĐIỀU KIỆN DỪNG:
- Đã đủ dữ liệu để trả lời → dừng, kết luận.
- Gọi tool 3 lần chưa xong → dừng, báo cần người hỗ trợ.
- Tool lỗi 2 lần liên tiếp → dừng, không thử vô hạn.
Điều kiện dừng là phần dễ quên nhất và gây tốn kém nhất khi thiếu — agent có thể lặp mãi.
Xử lý tool lỗi
Tool sẽ lỗi (timeout, không tìm thấy, sai tham số). Prompt phải dạy agent phản ứng:
NẾU tool trả lỗi:
- Lỗi "không tìm thấy" → hỏi lại người dùng thông tin đúng, KHÔNG bịa kết quả.
- Lỗi tạm thời (timeout) → thử lại TỐI ĐA 1 lần.
- Lỗi quyền → dừng, báo "thao tác này cần cấp quyền cao hơn".
TUYỆT ĐỐI không bịa dữ liệu khi tool thất bại.
Dòng cuối cực quan trọng: khi tool fail, agent yếu thường "tưởng tượng" ra kết quả để tỏ ra hữu ích.
Ví dụ hoàn chỉnh ngắn
Nhiệm vụ: giúp khách biết đơn tới đâu.
SUY NGHĨ: cần order_id. Khách chưa đưa.
HÀNH ĐỘNG: hỏi "Bạn cho mình mã đơn nhé?"
(khách đưa 12345)
SUY NGHĨ: có id, tra cứu.
HÀNH ĐỘNG: query_orders(order_id="12345")
QUAN SÁT: {status:"dang_giao", eta:"2 ngày"}
KẾT LUẬN: "Đơn 12345 đang giao, dự kiến 2 ngày nữa tới bạn nhé."
Các bước xây agent nhiều bước
- Viết mô tả từng tool kèm "Dùng khi / KHÔNG dùng khi".
- Nêu rõ chu trình Suy nghĩ→Hành động→Quan sát.
- Định nghĩa điều kiện dừng (thành công, quá số bước, tool lỗi).
- Quy định xử lý cho từng loại lỗi tool.
- Cấm bịa dữ liệu khi thiếu/lỗi.
- Test với ca tool trả rỗng và ca tool lỗi.
Checklist agent dùng tool
- [ ] Mỗi tool có "Dùng khi / KHÔNG dùng khi".
- [ ] Có chu trình suy nghĩ trước hành động.
- [ ] Có điều kiện dừng rõ ràng (số bước tối đa).
- [ ] Có chiến lược xử lý tool lỗi + giới hạn retry.
- [ ] Cấm bịa dữ liệu khi tool fail.
Sai lầm thường gặp
- Không có điều kiện dừng: Agent lặp vô hạn, đốt token và tạo side-effect trùng.
- Mô tả tool mơ hồ: Agent chọn nhầm tool, làm sai việc.
- Không xử lý lỗi tool: Agent bịa kết quả để "cứu" câu trả lời — sai và nguy hiểm.
- Retry không giới hạn: Một tool hỏng khiến agent thử mãi, treo hệ thống.
- Cho agent gọi nhiều tool cùng lúc mà không kiểm soát thứ tự: Kết quả khó dự đoán; ép mỗi bước một tool khi cần chắc chắn.
Học xong bài này rồi?
Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu,
và học hết khóa thì có chứng chỉ.
Lưu tiến độ của tôi