Разработка с Claude API

Запросы, потоковые ответы, tool use, структурированный вывод и стоимость.

92 уроков, первые 3 бесплатно. Полный доступ: 1490 руб.

Уроки курса

  1. Welcome to the course
  2. Overview of Claude models
  3. Accessing the API
  4. Getting an API key
  5. Making a request
  6. Multi-Turn conversations
  7. Chat exercise
  8. System prompts
  9. System prompts exercise
  10. Temperature
  11. Course satisfaction survey
  12. Response streaming
  13. Structured data
  14. Structured data exercise
  15. Quiz on accessing Claude with the API
  16. Prompt evaluation
  17. A typical eval workflow
  18. Generating test datasets
  19. Running the eval
  20. Model based grading
  21. Code based grading
  22. Exercise on prompt evals
  23. Quiz on prompt evaluation
  24. Prompt engineering
  25. Being clear and direct
  26. Being specific
  27. Structure with XML tags
  28. Providing examples
  29. Exercise on prompting
  30. Quiz on prompt engineering techniques
  31. Introducing tool use
  32. Project overview
  33. Tool functions
  34. Tool schemas
  35. Handling message blocks
  36. Sending tool results
  37. Multi-turn conversations with tools
  38. Implementing multiple turns
  39. Using multiple tools
  40. Fine grained tool calling
  41. The text edit tool
  42. The web search tool
  43. Quiz on tool use with Claude
  44. Introducing Retrieval Augmented Generation
  45. Text chunking strategies
  46. Text embeddings
  47. The full RAG flow
  48. Implementing the RAG flow
  49. BM25 lexical search
  50. A Multi-Index RAG pipeline
  51. Extended thinking
  52. Image support
  53. PDF support
  54. Citations
  55. Prompt caching
  56. Rules of prompt caching
  57. Prompt caching in action
  58. Code execution and the Files API
  59. Quiz on features of Claude
  60. Introducing MCP
  61. MCP clients
  62. Project setup
  63. Defining tools with MCP
  64. The server inspector
  65. Implementing a client
  66. Defining resources
  67. Accessing resources
  68. Defining prompts
  69. Prompts in the client
  70. MCP review
  71. Quiz on Model Context Protocol
  72. Anthropic apps
  73. Claude Code setup
  74. Claude Code in action
  75. Enhancements with MCP servers
  76. Agents and workflows
  77. Parallelization workflows
  78. Chaining workflows
  79. Routing workflows
  80. Agents and tools
  81. Environment inspection
  82. Workflows vs agents
  83. Quiz on Agents and Workflows
  84. Final Assessment
  85. Course Wrap Up
  86. What You'll Learn
  87. What You'll Learn
  88. What You'll Learn
  89. What You'll Learn
  90. What You'll Learn
  91. What You'll Learn
  92. What You'll Learn
Определение промптов в MCP

Введение: Что такое промпты в MCP-серверах?

В мире больших языковых моделей (LLM), таких как Claude от Anthropic, промпты играют центральную роль. Промпт — это инструкция или запрос, который вы отправляете модели, чтобы получить желаемый результат. Однако, когда речь заходит о разработке сложных приложений с использованием API, написание эффективных промптов "с нуля" каждый раз может быть неэффективным и приводить к непоследовательным результатам.

Именно здесь на помощь приходят готовые промпты в контексте MCP (Managed Compute Platform) серверов. Представьте их как тщательно разработанные, высококачественные шаблоны инструкций, которые ваши клиентские приложения могут использовать вместо того, чтобы каждый раз формулировать запросы самостоятельно. Эти промпты создаются авторами MCP-сервера, которые обладают глубокими знаниями о возможностях Claude и специфике предметной области, обеспечивая тем самым гораздо более предсказуемые и качественные результаты.

Почему готовые промпты так важны?

Давайте рассмотрим пример. Предположим, ваша задача — преобразовать содержимое документа в формат Markdown с помощью Claude. Обычный пользователь мог бы просто написать "конвертируй report.pdf в markdown", и Claude, вероятно, справился бы с этой задачей. Однако результат мог бы быть далек от идеала: возможно, отсутствовали бы заголовки, списки или таблицы были бы отформатированы неоптимально.

Ключевая идея заключается в следующем: хотя пользователи могут выполнять эти задачи самостоятельно, они получат значительно более стабильные и высококачественные результаты, используя промпты, которые были тщательно разработаны и протестированы экспертами. Такие промпты включают в себя детальные инструкции по форматированию, структуре, требованиям к выходным данным и даже могут указывать на использование специфических инструментов (tool use), доступных Claude. Это позволяет стандартизировать взаимодействие с LLM, гарантировать соответствие корпоративным стандартам и значительно улучшить пользовательский опыт, предоставляя предсказуемые и профессиональные результаты.

Как работают промпты в MCP-сервере?

В основе работы готовых промптов лежит их способность определять заранее заданный набор сообщений между пользователем и ассистентом, которые клиентские приложения могут использовать напрямую. Когда клиент запрашивает определенный промпт у вашего MCP-сервера, сервер возвращает список сообщений. Эти сообщения затем могут быть отправлены непосредственно Claude через его API.

Таким образом, MCP-сервер выступает в роли посредника, который инкапсулирует сложную логику формирования промпта. Клиенту не нужно знать все тонкости формулирования запросов к LLM; ему достаточно знать имя нужного промпта и предоставить необходимые параметры. Сервер берет на себя ответственность за создание оптимального диалога для Claude.

Анатомия промпта: Пример форматирования документа

Давайте рассмотрим, как можно реализовать промпт для форматирования документа. В MCP-сервере промпты обычно определяются с использованием декораторов и функций, которые возвращают список объектов сообщений.

Базовая структура определения промпта выглядит следующим образом:

Вот концептуальный пример реализации промпта для форматирования документа в Markdown:

from mcp.server.fastmcp import base
from pydantic import Field # Часто используется для определения параметров

@mcp.prompt(
    name="format_document_to_markdown",
    description="Переписывает содержимое документа в формат Markdown, используя оптимальную структуру."
)
def format_document(
    doc_id: str = Field(description="Идентификатор документа, который необходимо отформатировать")
) -> list[base.Message]:
    prompt_content = f"""
Ваша цель — переформатировать документ, используя синтаксис Markdown.
Идентификатор документа, который вам нужно отформатировать: {doc_id}.

Добавьте заголовки, маркированные списки, таблицы и другие элементы форматирования по мере необходимости.
Используйте инструмент 'edit_document' для редактирования документа после его переформатирования.
"""
    return [
        base.UserMessage(prompt_content)
    ]

В этом примере:

Тестирование промптов

Создание промпта — это только половина дела; не менее важно убедиться, что он работает так, как ожидается. В реальной разработке вы будете использовать инструменты, подобные "MCP Inspector", для тестирования ваших промптов. Этот инструмент позволяет вам выбрать промпт, предоставить любые необходимые параметры (например, doc_id из нашего примера) и увидеть сгенерированные сообщения, которые будут отправлены Claude.

Такое тестирование позволяет вам убедиться, что:

Тщательное тестирование на этом этапе критически важно для проверки логики промпта и предотвращения ошибок в реальном приложении.

Лучшие практики при создании промптов для MCP-сервера

Чтобы ваши готовые промпты были максимально эффективными и полезными, следуйте этим рекомендациям:

Помните, что промпты призваны предоставить ценность, которую пользователи не смогли бы легко получить самостоятельно. Они должны отражать вашу экспертизу в той области, которую охватывает ваш MCP-сервер, и служить мощным инструментом для создания интеллектуальных и надежных приложений на базе Claude.