Mỗi agent là một "nhân viên" có mô tả công việc
Sau khi biết cần những vai nào (Bài 1), việc tiếp theo là viết role prompt — bản mô tả công việc của từng agent. Một role prompt tốt gồm 5 phần cố định, giúp agent làm đúng phạm vi và biết khi nào phải chuyển việc.
Khung R-A-C-E-G cho role prompt
- Role — bạn là ai, thuộc phòng nào.
- Action — bạn được làm gì (danh sách tool cụ thể).
- Constraint — bạn KHÔNG được làm gì.
- Escalate — khi nào phải chuyển cho agent/người khác.
- Goal/format — output mong muốn.
Ví dụ cụ thể: role prompt cho Refund Agent
[ROLE] Bạn là Refund Agent của phòng CSKH công ty Vietnamcos.
[ACTION] Công cụ được dùng:
- check_policy(order_id): kiểm tra đơn có đủ điều kiện hoàn.
- create_refund(order_id, amount): tạo yêu cầu hoàn tiền.
[CONSTRAINT]
- Chỉ hoàn tiền cho đơn <= 2.000.000đ.
- Không hứa mốc thời gian hoàn tiền cụ thể.
- Không xử lý khiếu nại về chất lượng sản phẩm.
[ESCALATE] Chuyển cho escalation_agent khi:
- Số tiền > 2.000.000đ, HOẶC
- Khách yêu cầu bồi thường ngoài giá trị đơn.
[GOAL] Trả về JSON:
{ "action": "refunded|escalated", "order_id": "...", "reason": "..." }
Role prompt này ngắn, rõ ràng, có ranh giới. Đó là mục tiêu.
Ví dụ đối chiếu: role prompt cho Router Agent
Router cần mô tả cực gọn để phân loại nhanh và rẻ:
[ROLE] Bạn là Router của phòng CSKH.
[ACTION] Không dùng tool. Chỉ đọc tin nhắn và phân loại.
[CONSTRAINT] Chỉ trả về ĐÚNG một trong: order | refund | complaint | other.
[GOAL] Trả về đúng một từ khóa, không giải thích, không thêm chữ.
So sánh hai role prompt cho thấy nguyên tắc: agent hành động (refund) cần đủ 5 phần R-A-C-E-G, còn agent phân loại (router) có thể lược C-E vì nó không thực thi hành động nguy hiểm và không cần escalate. Hãy điều chỉnh độ chi tiết theo mức rủi ro của vai.
Các bước viết role prompt cho cả đội
- Với mỗi vai, viết 1 câu Role duy nhất ("Bạn là X của phòng Y").
- Liệt kê CHÍNH XÁC các tool được phép — không thêm tool "để phòng hờ".
- Viết Constraint dưới dạng câu cấm cụ thể, đo được ("<= 2 triệu", không phải "số tiền hợp lý").
- Định nghĩa điều kiện Escalate rõ ràng, tránh mơ hồ.
- Chuẩn hóa Goal/format output — nên là JSON có cấu trúc để agent khác đọc được.
- Kiểm thử với 5–10 tình huống biên (edge case) trước khi ghép đội.
Nguyên tắc "quyền tối thiểu"
Mỗi agent chỉ được cấp đúng tool nó cần. Router agent KHÔNG nên có tool create_refund. Điều này giới hạn thiệt hại nếu agent hiểu nhầm ý khách — một agent lạc lối cũng không thể gây hại ngoài phạm vi của nó.
Checklist một role prompt đạt chuẩn
- [ ] Có đủ 5 phần R-A-C-E-G
- [ ] Danh sách tool là tối thiểu cần thiết
- [ ] Constraint đo được, không mơ hồ
- [ ] Điều kiện escalate rõ ràng
- [ ] Output có format cố định (JSON)
- [ ] Đã test với ít nhất 5 edge case
Sai lầm thường gặp
- Role prompt "vạn năng": thêm "và làm bất cứ việc gì khác được yêu cầu" → agent lấn sân, phá vỡ phân vai.
- Constraint mơ hồ: "chỉ hoàn tiền khi hợp lý" → agent tự diễn giải, mỗi lần một khác. Luôn dùng con số/điều kiện đo được.
- Cấp thừa tool: cho agent tool nó không cần → tăng bề mặt lỗi và rủi ro.
- Quên định nghĩa escalate: agent cố tự xử mọi thứ, kể cả việc vượt thẩm quyền, gây rủi ro pháp lý/tài chính.
- Output tự do: không ép format → agent tiếp theo trong chuỗi không parse được, chuỗi đứt.