Bỏ qua đến nội dung chính

Defining prompts

📖 Nội dung bài học

Tóm tắt

Các prompt trong máy chủ MCP cho phép bạn định nghĩa các hướng dẫn chất lượng cao, được xây dựng sẵn mà client có thể dùng thay vì tự viết prompt. Hãy nghĩ chúng như các mẫu được tạo ra cẩn thận, cho kết quả tốt hơn so với những gì người dùng có thể tự nghĩ ra.

Tại sao dùng prompt?

Đây là điểm mấu chốt: người dùng đã có thể yêu cầu Claude thực hiện hầu hết các tác vụ trực tiếp. Ví dụ, người dùng có thể gõ "định dạng lại report.pdf bằng markdown" và nhận được kết quả khá tốt. Nhưng họ sẽ có kết quả tốt hơn nhiều nếu bạn cung cấp một prompt chuyên biệt, đã được kiểm tra kỹ lưỡng, xử lý các trường hợp đặc biệt và tuân theo các phương pháp hay nhất.

Là người tạo máy chủ MCP, bạn có thể dành thời gian để tạo, kiểm tra và đánh giá các prompt hoạt động nhất quán trong các tình huống khác nhau. Người dùng được hưởng lợi từ chuyên môn này mà không cần phải trở thành chuyên gia về prompt engineering.

Xây dựng lệnh Format

Hãy triển khai một ví dụ thực tế: một lệnh format chuyển đổi tài liệu sang markdown. Người dùng sẽ gõ /format doc_id và nhận lại phiên bản markdown được định dạng chuyên nghiệp của tài liệu của họ.

Quy trình làm việc như sau:

  • Người dùng gõ / để xem các lệnh khả dụng
  • Họ chọn format và chỉ định ID tài liệu
  • Claude dùng prompt được xây dựng sẵn của bạn để đọc và định dạng lại tài liệu
  • Kết quả là markdown sạch với các tiêu đề, danh sách và định dạng thích hợp

Định nghĩa prompt

Prompt dùng một mẫu decorator tương tự như toolresource:

@mcp.prompt(
    name="format",
    description="Rewrites the contents of the document in Markdown format."
)
def format_document(
    doc_id: str = Field(description="Id of the document to format")
) -> list[base.Message]:
    prompt = f"""
Your goal is to reformat a document to be written with markdown syntax.

The id of the document you need to reformat is:
<document_id>
{doc_id}
</document_id>

Add in headers, bullet points, tables, etc as necessary. Feel free to add in structure.
Use the 'edit_document' tool to edit the document. After the document has been reformatted...
"""
    
    return [
        base.UserMessage(prompt)
    ]

Hàm trả về một danh sách các message được gửi trực tiếp đến Claude. Bạn có thể bao gồm nhiều message của người dùng và trợ lý để tạo các luồng hội thoại phức tạp hơn.

Kiểm tra prompt của bạn

Dùng MCP Inspector để kiểm tra prompt của bạn trước khi triển khai:

Inspector cho bạn thấy chính xác những message nào sẽ được gửi đến Claude, bao gồm cách các biến được nội suy vào mẫu prompt của bạn. Điều này cho phép bạn xác minh prompt có vẻ chính xác trước khi người dùng bắt đầu dựa vào nó.

Lợi ích chính

  • Tính nhất quán - Người dùng nhận được kết quả đáng tin cậy mọi lúc
  • Chuyên môn - Bạn có thể mã hóa kiến thức chuyên môn vào prompt
  • Khả năng tái sử dụng - Nhiều ứng dụng client có thể dùng cùng một prompt
  • Bảo trì - Cập nhật prompt ở một nơi để cải thiện tất cả các client

Prompt hoạt động tốt nhất khi chúng được chuyên biệt cho domain của máy chủ MCP của bạn. Một máy chủ quản lý tài liệu có thể có prompt để định dạng, tóm tắt hoặc phân tích tài liệu. Một máy chủ phân tích dữ liệu có thể có prompt để tạo báo cáo hoặc hình ảnh hóa.

Mục tiêu là cung cấp các prompt được tạo và kiểm tra tốt đến mức người dùng thích chúng hơn là tự viết hướng dẫn của riêng họ.

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?