Anthropic предлагает два способа разработки с Claude, каждый из которых подходит для разных сценариев использования:
| Messages API | Claude Managed Agents | |
|---|---|---|
| Что это | Прямой доступ к модели через подсказки | Готовая настраиваемая агентная оболочка, работающая в управляемой инфраструктуре |
| Лучше всего подходит для | Пользовательских агентных циклов и детального контроля | Длительных задач и асинхронной работы |
| Подробнее | Документация по Messages API | Документация по Claude Managed Agents |
Это руководство охватывает распространённые шаблоны работы с Messages API, включая базовые запросы, многоходовые диалоги, техники предзаполнения и возможности компьютерного зрения. Полные спецификации API см. в справочнике по Messages API.
Эта функция соответствует требованиям Zero Data Retention (ZDR) (нулевого хранения данных). Если у вашей организации действует соглашение ZDR, данные, отправленные через эту функцию, не сохраняются после возврата ответа API.
Параметры сэмплирования temperature, top_p и top_k не поддерживаются в Claude Opus 4.7 и более поздних моделях, включая Claude Opus 4.8. Установка для них значения, отличного от значения по умолчанию, возвращает ошибку 400. Исключите их из тела запроса и вместо этого используйте подсказки для управления поведением модели. См. руководство по миграции.
message = anthropic.Anthropic().messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello, Claude"}],
)
print(message){
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello!"
}
],
"model": "claude-opus-4-8",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 12,
"output_tokens": 6
}
}В Claude Opus 4.7 и более поздних моделях ответы с отказом (stop_reason: "refusal") также включают объект stop_details, указывающий категорию политики, которая вызвала отказ. См. Обработка причин остановки для справки по полям и примера кода обработки.
Messages API не хранит состояние, что означает, что вы всегда отправляете в API полную историю диалога. Вы можете использовать этот шаблон для постепенного построения диалога. Предыдущие ходы диалога не обязательно должны фактически исходить от Claude. Вы можете использовать синтетические сообщения assistant.
message = anthropic.Anthropic().messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello, Claude"},
{"role": "assistant", "content": "Hello!"},
{"role": "user", "content": "Can you describe LLMs to me?"},
],
)
print(message){
"id": "msg_018gCsTGsXkYJVqYPxTgDHBU",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Sure, I'd be happy to provide..."
}
],
"model": "claude-opus-4-8",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 30,
"output_tokens": 309
}
}В Claude Opus 4.8 вы можете включать сообщения с "role": "system" после хода пользователя (с учётом правил размещения), чтобы добавить новую системную инструкцию в середине диалога. Сообщение system не может быть первым элементом в messages; используйте поле верхнего уровня system для инструкций, которые применяются с самого начала.
Системное сообщение в середине диалога имеет тот же приоритет, что и поле верхнего уровня system, но поскольку оно добавляется в конец истории сообщений, оно не делает недействительным кэшированный префикс, который был до него. Используйте поле верхнего уровня system для инструкций, которые должны применяться с самого первого хода, а системное сообщение в середине диалога — для инструкций, которые становятся актуальными только позже.
См. Системные сообщения в середине диалога для полного руководства, включая информацию о том, как сочетать это с кэшированием подсказок.
Вы можете предварительно заполнить часть ответа Claude в последней позиции списка входных сообщений. Это можно использовать для формирования ответа Claude. В примере ниже используется "max_tokens": 1, чтобы получить от Claude один ответ на вопрос с множественным выбором.
Предзаполнение не поддерживается в Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5 и Claude Sonnet 4.6. Запросы с использованием предзаполнения для этих моделей возвращают ошибку 400. Вместо этого используйте структурированные выводы на моделях, которые их поддерживают, или инструкции в системной подсказке. См. руководство по миграции для шаблонов миграции.
message = anthropic.Anthropic().messages.create(
model="claude-sonnet-4-5",
max_tokens=1,
messages=[
{
"role": "user",
"content": "What is latin for Ant? (A) Apoidea, (B) Rhopalocera, (C) Formicidae",
},
{"role": "assistant", "content": "The answer is ("},
],
)
print(message){
"id": "msg_01Q8Faay6S7QPTvEUUQARt7h",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "C"
}
],
"model": "claude-sonnet-4-5",
"stop_reason": "max_tokens",
"stop_sequence": null,
"usage": {
"input_tokens": 42,
"output_tokens": 1
}
}Claude может читать как текст, так и изображения в запросах. Изображения могут быть предоставлены с использованием типов источников base64, url или file. Тип источника file ссылается на изображение, загруженное через Files API. Поддерживаемые типы медиа: image/jpeg, image/png, image/gif и image/webp. Подробнее см. в руководстве по компьютерному зрению.
import base64
import httpx
# Вариант 1: изображение в кодировке Base64
image_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image_media_type = "image/jpeg"
image_data = base64.standard_b64encode(httpx.get(image_url).content).decode("utf-8")
message = anthropic.Anthropic().messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": image_media_type,
"data": image_data,
},
},
{"type": "text", "text": "What is in the above image?"},
],
}
],
)
print(message)
# Вариант 2: изображение по URL-ссылке
message_from_url = anthropic.Anthropic().messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "url",
"url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg",
},
},
{"type": "text", "text": "What is in the above image?"},
],
}
],
)
print(message_from_url){
"id": "msg_01EcyWo6m4hyW8KHs2y2pei5",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "This image shows an ant, specifically a close-up view of an ant. The ant is shown in detail, with its distinct head, antennae, and legs clearly visible. The image is focused on capturing the intricate details and features of the ant, likely taken with a macro lens to get an extreme close-up perspective."
}
],
"model": "claude-opus-4-8",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 1551,
"output_tokens": 71
}
}Обрабатывайте каждое значение stop_reason и решайте, что делать, когда ответ завершается.
Предоставьте Claude инструменты для вызова внешних сервисов и API из Messages API.
Управляйте окружениями настольных компьютеров с помощью Messages API.
Получайте гарантированный, проверенный по схеме вывод JSON от Claude.
Установите рекомендательный бюджет токенов для всего агентного цикла с помощью output_config.task_budget.
Was this page helpful?