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

Defining prompts

📖 Nội dung bài học

Lùi←

Chú thích Bật/Tắtc

Toàn màn hình/Thoát toàn màn hìnhf

Tắt/Bật tiếngm

Giảm kích thước chú thích-

Tăng kích thước chú thích+ or =

Chuyển %0-9 Màu phông

Trắng

Độ mờ phông

100%

Kích thước phông

100%

Kiểu phông

Tóm tắt

Máy chủ MCP có thể xác định prompt - các hướng dẫn chất lượng cao, được viết sẵn mà client có thể dùng thay vì tự viết prompt từ đầu. Hãy nghĩ về prompt 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ự viết.

Tại sao nên dùng Prompt?

Giả sử bạn muốn Claude định dạng lại một tài liệu thành markdown. Bạn có thể chỉ cần hỏi "Chuyển report.pdf thành markdown" và nó sẽ hoạt động tốt. Nhưng bạn có lẽ sẽ có kết quả tốt hơn nhiều với một prompt chi tiết, đã được kiểm tra kỹ lưỡng, bao gồm các trường hợp đặc biệt và đưa ra các hướng dẫn định dạng cụ thể.

Ý tưởng rất đơn giản: với tư cách là nhà phát triển máy chủ MCP, bạn có thể dành thời gian để tạo và kiểm tra các prompt thực sự tốt, sau đó cung cấp chúng cho bất kỳ ai dùng máy chủ của bạn. Người dùng sẽ có kết quả tốt hơn mà không cần phải trở thành chuyên gia về prompt engineering.

Xác định một Prompt

Prompt dùng một mẫu decorator tương tự như tools và resources. Đây là cấu trúc cơ bản:

@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]:
    # Return a list of messages

Hàm trả về một danh sách các message có thể được gửi trực tiếp đến Claude. Việc này cho phép bạn xây dựng các prompt phức tạp với nhiều message của người dùng và trợ lý nếu cần.

Xây dựng Prompt Định dạng

Đối với máy chủ tài liệu của bạn, bạn sẽ tạo một prompt định dạng lại tài liệu thành markdown. Prompt cần:

  • Lấy ID tài liệu làm đầu vào
  • Dùng tool read_doc_contents để lấy tài liệu
  • Định dạng lại nó với cú pháp markdown thích hợp
  • Lưu các thay đổi trở lại tài liệu

Đây là giao diện của việc triển khai:

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:

{doc_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)
    ]

Kiểm tra Prompt

Sau khi bạn đã xác định prompt của mình, bạn có thể kiểm tra nó bằng MCP Inspector. Điều hướng đến tab Prompts, chọn prompt của bạn và cung cấp các tham số cần thiết.

Inspector sẽ hiển thị các message được tạo sẽ được gửi đến Claude. Bạn có thể xác minh rằng việc nội suy tham số hoạt động chính xác và prompt của bạn chứa tất cả các hướng dẫn cần thiết.

Lợi ích chính

  • Kiểm soát chất lượng - Tác giả máy chủ có thể kiểm tra và tinh chỉnh prompt trước khi người dùng nhìn thấy chúng
  • Tính nhất quán - Mọi người đều có cùng một prompt chất lượng cao thay vì ứng biến
  • Chuyên môn hóa - Prompt có thể được điều chỉnh theo miền và khả năng cụ thể của máy chủ của bạn
  • Khả năng tái sử dụng - Nhiều ứng dụng client có thể dùng cùng một prompt được tạo tốt

Hãy nhớ import module base cho các kiểu message:

from mcp.server.fastmcp.prompts import base

Prompt đặc biệt có giá trị khi máy chủ MCP của bạn có một lĩnh vực tập trung cụ thể - như quản lý tài liệu, phân tích dữ liệu hoặc tạo code. Bạn có thể cung cấp cho người dùng các prompt đã được kiểm tra kỹ lưỡng, tận dụng hiệu quả các tool của máy chủ của bạn.

🔁 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?