📖 Nội dung bài học
Tóm tắt
Khi xây dựng AI chatbot cho các trường hợp sử dụng cụ thể, bạn cần một cách để kiểm soát cách AI phản hồi. System prompt (lời nhắc hệ thống) là chìa khóa để biến một AI đa năng thành một trợ lý chuyên biệt, tuân thủ các nguyên tắc cụ thể và luôn tập trung vào chủ đề.

Vấn đề với các chỉ dẫn ở cấp độ người dùng (User-Level Instructions)
Bạn có thể nghĩ rằng giải pháp là đưa tất cả các yêu cầu vào chính tin nhắn của người dùng (user message). Ví dụ: yêu cầu AI trong mỗi cuộc hội thoại phải "đề cập đến các dịch vụ AWS" và "không nhắc đến đối thủ cạnh tranh". Cách tiếp cận này có những hạn chế nghiêm trọng:
- Bạn cần dự đoán mọi câu hỏi và trường hợp biên (edge case) có thể xảy ra.
- Danh sách chỉ dẫn trở nên cồng kềnh và lặp đi lặp lại.
- Người dùng thấy tất cả các chỉ dẫn nội bộ, làm cho cuộc hội thoại bị lộn xộn.
- Các yêu cầu thay đổi dựa trên câu hỏi cụ thể được hỏi.

System prompts: Một cách tiếp cận tốt hơn
System prompts giải quyết vấn đề này bằng cách giao cho Claude một vai trò (role) để đóng. Thay vì liệt kê cụ thể những việc nên làm và không nên làm, bạn yêu cầu Claude hành động như một kiểu chuyên gia cụ thể. Sau đó, AI sẽ phản hồi theo cách mà người đó phản hồi một cách tự nhiên.

System prompts mang lại một số lợi ích chính:
- Claude nhận được hướng dẫn về cách phản hồi nhất quán.
- AI áp dụng tư duy và các ràng buộc của vai trò được chỉ định.
- Các phản hồi tự động tập trung và đúng nhận diện thương hiệu.
- Bạn không cần phải dự đoán mọi tình huống có thể xảy ra.
Triển khai System prompts
Để thêm một system prompt vào cuộc hội thoại với Claude, bạn truyền nó như một tham số cho hàm converse:
system_prompt = """
Bạn là một chuyên gia hỗ trợ đám mây AWS. Công việc của bạn là trả lời các truy vấn của người dùng liên quan
đến các dịch vụ cloud hosting trên AWS.
"""
response = client.converse(
modelId=model_id,
messages=messages,
system=[{"text": system_prompt}]
)
System prompt được truyền dưới dạng một danh sách (list) chứa một từ điển (dictionary) với khóa "text". Điều này cho Claude biết vai trò cần đảm nhận trước khi nó nhìn thấy bất kỳ tin nhắn nào của người dùng.
Xây dựng một hàm Chat linh hoạt
Dưới đây là một hàm chat có thể tái sử dụng, xử lý system prompts một cách tinh tế:
def chat(messages, system=None):
params = {"modelId": model_id, "messages": messages}
if system:
params["system"] = [{"text": system}]
response = client.converse(**params)
return response["output"]["message"]["content"][0]["text"]
Cách tiếp cận này cho phép bạn tùy chọn bao gồm system prompt. Khi không có system prompt nào được cung cấp, Claude sẽ phản hồi như mặc định. Khi bạn đưa vào một system prompt, Claude sẽ đảm nhận vai trò cụ thể đó.
System prompts trong thực tế
Sự khác biệt sẽ thấy rõ ngay lập tức khi bạn thử nghiệm cùng một câu hỏi có và không có system prompt. Nếu hỏi "Làm thế nào để tôi host một cơ sở dữ liệu Postgres?" mà không có system prompt, bạn sẽ nhận được một câu trả lời toàn diện bao gồm nhiều nhà cung cấp đám mây và các tùy chọn tự host.

Với system prompt là chuyên gia hỗ trợ AWS, phản hồi sẽ chỉ tập trung vào các giải pháp AWS như RDS, Aurora và triển khai trên EC2. Không có đối thủ cạnh tranh nào được nhắc đến và câu trả lời bao gồm các bước thiết lập cụ thể cho AWS.
Thậm chí ấn tượng hơn là cách system prompts xử lý các câu hỏi lạc đề. Nếu hỏi công thức làm bánh mì khi system prompt chuyên gia AWS đang hoạt động, Claude sẽ từ chối một cách lịch sự trong khi vẫn giữ đúng vai trò của mình:

Các chi tiết kỹ thuật quan trọng
Khi làm việc với system prompts, hãy lưu ý các yêu cầu sau:
- System prompts không được là chuỗi rỗng - chúng phải chứa ít nhất một ký tự.
- Tham số system yêu cầu một danh sách các từ điển với khóa "text".
- System prompts được xử lý trước bất kỳ tin nhắn người dùng nào trong cuộc hội thoại.
- Bạn có thể cập nhật system prompt giữa các cuộc hội thoại, nhưng không được cập nhật giữa chừng trong một cuộc hội thoại.
System prompts giúp bạn kiểm soát mạnh mẽ hành vi của AI mà không cần các hệ thống quy tắc phức tạp. Bằng cách chỉ định cho Claude một vai trò chuyên môn cụ thể, bạn sẽ nhận được các phản hồi nhất quán, phù hợp, tự nhiên tuân theo các ràng buộc và chuyên môn của vai trò đó.
Tải xuống
🔁 Bài học liên quan
- Bài tiếp: System prompt exercise
- Bài trước: Chat bot exercise
- Cùng section: Overview of Claude Models · Accessing the API · Making a request
- Thuộc lộ trình: Path C
- Docs tham khảo: Glossary · Skills atlas · By use-case
📚 Nguồn & ghi nhận
- Bài học gốc Anthropic Academy: https://anthropic.skilljar.com/claude-in-amazon-bedrock/276726
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: 2026-04-23 · Chuẩn hoá: 2026-05-01