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

Prompts in the client

📖 Nội dung bài học

Tóm tắt

Bước cuối cùng trong việc xây dựng MCP client của chúng ta là triển khai chức năng prompt. Điều này cho phép chúng ta liệt kê tất cả các prompt có sẵn từ server và lấy các prompt cụ thể với các biến đã được điền đầy đủ.

Triển khai List Prompts

Phương thức list_prompts khá đơn giản. Nó gọi hàm liệt kê prompt của session và trả về các prompt:

async def list_prompts(self) -> list[types.Prompt]:
    result = await self.session().list_prompts()
    return result.prompts

Lấy các Prompt riêng lẻ

Phương thức get_prompt thú vị hơn vì nó xử lý việc chèn biến (variable interpolation). Khi bạn yêu cầu một prompt, bạn cung cấp các đối số (arguments) được truyền vào hàm prompt dưới dạng đối số từ khóa (keyword arguments):

async def get_prompt(self, prompt_name, args: dict[str, str]):
    result = await self.session().get_prompt(prompt_name, args)
    return result.messages

Ví dụ: nếu server của bạn có một prompt format_document yêu cầu tham số doc_id, từ điển arguments sẽ chứa {"doc_id": "plan.md"}. Giá trị này sẽ được chèn vào template của prompt.

Kiểm thử Prompt trong thực tế

Sau khi triển khai, bạn có thể kiểm thử các prompt thông qua CLI. Khi bạn gõ dấu gạch chéo (/), các prompt hiện có sẽ xuất hiện dưới dạng lệnh. Chọn một prompt như "format" sẽ yêu cầu bạn chọn từ các tài liệu có sẵn.

Sau khi chọn tài liệu, hệ thống sẽ gửi prompt hoàn chỉnh đến Claude. AI nhận được cả hướng dẫn định dạng và ID tài liệu, sau đó sử dụng các tool có sẵn để lấy và xử lý nội dung.

Cách Prompt hoạt động

Prompt định nghĩa một tập hợp các tin nhắn của người dùng (user) và trợ lý (assistant) mà client có thể sử dụng. Chúng nên có chất lượng cao, được kiểm thử kỹ lưỡng và liên quan đến mục đích của MCP server của bạn. Quy trình làm việc là:

  • Viết và đánh giá (eval) một prompt liên quan đến chức năng của server.
  • Định nghĩa prompt trong MCP server bằng decorator @mcp.prompt.
  • Client có thể yêu cầu prompt bất cứ lúc nào.
  • Các đối số do client cung cấp sẽ trở thành keyword arguments trong hàm prompt của bạn.
  • Hàm trả về các tin nhắn đã được định dạng, sẵn sàng cho mô hình AI.

Hệ thống này tạo ra các prompt có thể tái sử dụng, được tham số hóa để duy trì tính nhất quán trong khi vẫn cho phép tùy chỉnh thông qua các biến. Nó đặc biệt hữu ích cho các quy trình phức tạp, nơi bạn muốn đảm bảo AI luôn nhận được các hướng dẫn có cấu trúc chuẩn xác.

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