Перейти к содержанию
Справочник APIMessages (Anthropic)

Messages (Anthropic)

Anthropic Messages: возможности выбранной модели и серверного промпта.

Протокол модели

POST /v1/messages использует один endpoint, одни заголовки и настройку SDK. Режимов ключа нет. Возможности ниже зависят от семейства, модели и фактического применения серверного промпта Claude.

Endpoint-aware матрица

ВозможностьClaude без серверного промптаClaude с применённым промптомOpenAI endpoints
СтримингНативный Anthropic SSE, включая thinking и citations deltasТекст и клиентские функции; без thinking/signature/citations deltasChat Completions и Responses поддерживают свои streaming-события с серверным промптом и без него
Клиентские функцииНативный tool_usetool_resultТот же клиентский цикл, включая rich tool_result; функцию выполняет клиентChat и Responses поддерживают client function calls; server tools не запускаются
Thinking / effortНативные thinking-блоки и подписи; output_config.effortthinking и output_config.effort принимаются и управляют глубиной; явный thinking имеет приоритет; отдельные signed thinking-блоки и подписи клиенту не возвращаютсяНативные thinking-блоки не входят в контракт Chat/Responses
cache_controlЯвные breakpoints, 5m/1h и cache tiersЯвные breakpoints, 5m/1h и публичные cache tiers; hit не гарантированВ Chat/Responses явный cache_control не поддерживается; автоматический кэш остаётся
Samplingtop_k, top_p, temperature на Opus 4.6, Sonnet 4.6 и Haiku 4.5. Opus 5, Opus 4.8, Opus 4.7, Sonnet 5, Fable 5 и Fable 5.1 эти поля не принимают вовсе, поэтому Guard убирает их из запросаЗависят от модели и совместимости thinking; отключение thinking само по себе не гарантирует применение samplingtop_p и temperature зависят от модели и thinking; top_k не поддерживается
PDF / documentsНативные PDF и text/content documentsBase64 PDF и text/content documents в user message и tool_resultChat/Responses не принимают PDF; используйте Messages
CitationsНативные document citations и citations_deltaНе поддерживаютсяНе поддерживаются
VisionBase64 и прямой публичный URLBase64 в Messages; URL не обещаетсяChat принимает base64; Responses input_image не поддерживается
Structured outputsMessages: output_config.formatMessages: output_config.format; при явном thinking сохраняется format, а конфликтующий effort не применяетсяResponses structured text.format не поддерживается
Web search / Web fetchНативные server tools AnthropicТе же нативные server tools в Anthropic MessagesНе входят в контракт Chat/Responses
МоделиВключая Fable 5/5.1, Opus 4.5 и Sonnet 4.5Fable 5/5.1, Opus 4.5 и Sonnet 4.5 с применяемым промптом отклоняются до списанияFable 5/5.1 доступны без фактического применения серверного промпта

Базовый запрос

python
import anthropic
client = anthropic.Anthropic(
    api_key=KEY,
    base_url="https://api.guardrelay.ai",
)
msg = client.messages.create(
    model="claude-opus-5",
    max_tokens=512,
    system="Ты лаконичный ассистент.",
    messages=[{"role": "user", "content": "Объясни рекурсию в двух предложениях."}],
)
print(msg.content[0].text)

Kimi на этой поверхности

Kimi здесь работает и отвечает в обычном формате Anthropic. Адрес и ключ те же, что у остальных семейств: https://api.guardrelay.ai и заголовок Authorization: Bearer gd-…. Семейство шлюз определяет по точному id в поле model: k3, k3-256k, kimi-for-coding или kimi-for-coding-highspeed. Отдельный ключ и отдельный адрес для Kimi заводить не нужно.

ПолеЧто с ним происходит
modelточный id одной из четырёх моделей Kimi
messagesдиалог в форме Anthropic, роли user и assistant
max_tokensобязателен, целое положительное; он же задаёт выходную часть предварительной блокировки денег
systemстрока либо массив блоков содержимого
streamtrue включает потоковую передачу
stop_sequences, temperature, top_p, top_kпринимаются и уходят наверх как присланы
tools, tool_choiceклиентские функции: модель возвращает вызов, исполняет его ваш код
thinkingвключение размышления в форме Anthropic: ровно {"type": "enabled"}, при желании с budget_tokens; работает на всех четырёх моделях
output_configвнутри допустимы effort и format
context_managementпринимается и уходит наверх

Ответ приходит обычным объектом Anthropic: id, массив content, stop_reason и usage. У k3 в content кроме текста приходит блок размышления с подписью. Предварительный подсчёт токенов у Kimi тоже работает: у этой поверхности есть отдельный путь count_tokens, он отвечает числом входных токенов и берёт те же поля, кроме max_tokens, stream и параметров выборки stop_sequences, temperature, top_p, top_k.

Claude Code с моделью Kimi

Claude Code разговаривает ровно по этому протоколу, поэтому работает и на Kimi. Ставится обычным npm i -g @anthropic-ai/claude-code, адрес и ключ кладутся в переменные окружения, модель задаётся точным id при запуске. Mac / Linux:

Переменные окружения
bash · macOS / Linux
export ANTHROPIC_BASE_URL="https://api.guardrelay.ai"
export ANTHROPIC_AUTH_TOKEN="gd-ваш-ключ-из-бота"

claude --model k3
PowerShell · Windows
$env:ANTHROPIC_BASE_URL = "https://api.guardrelay.ai"
$env:ANTHROPIC_AUTH_TOKEN = "gd-ваш-ключ-из-бота"

claude --model k3

Windows PowerShell:

powershell
$env:ANTHROPIC_BASE_URL = "https://api.guardrelay.ai"
$env:ANTHROPIC_AUTH_TOKEN = "gd-ваш-ключ-из-бота"
claude --model k3

Kimi, Composer и Grok на этом endpoint'е

Kimi эту поверхность обслуживает: приходит обычный ответ Anthropic, у k3 вместе с блоком размышления и подписью. Composer и Grok её тоже принимают, но контракт у них короче Anthropic-овского.

ВозможностьComposerGrok
Поля запросаmodel, messages, system, max_tokens, stream, tools; tool_choice только auto, output_config только с effort (игнорируется)то же
Роли в messagesтолько user и assistantто же
Системный тексттолько верхнеуровневый system; роль system внутри messages отклоняетсято же
Блок содержимогоtype и text; дополнительный cache_control принимается и игнорируетсято же
Изображениянет, 400 cursor_image_input_unavailableда, инлайн base64
Клиентские функциидада
thinking, temperature, top_k, top_p, metadata, cache_controlПринимаются и игнорируются; cache_control — внутри блокато же
PDF, documents, citationsнетнет
Типизированный инструмент Anthropic — computer use, текстовый редактор, web search400 cursor_parameter_unavailable до списаниято же
Окно контекста200K, оценка500K, измерено
max_tokensдо 32 000; без поля резервируются все 32 000то же

Ответ приходит в обычной форме Anthropic: текстовый блок в content и stop_reason: "end_turn". Если модель вызвала ваш инструмент, в content добавляются блоки tool_use, а stop_reason равен tool_use — это ход, на который нужно ответить блоком tool_result. В usage заполнены input_tokens, output_tokens и cache_read_input_tokens, а cache_creation_input_tokens всегда 0: платы за запись в кэш у этих моделей нет.

bash
curl https://api.guardrelay.ai/v1/messages \
  -H "x-api-key: $GUARD_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "cursor-grok-4.6-high",
    "max_tokens": 256,
    "system": "Отвечай кратко.",
    "messages": [{"role": "user", "content": "Проверка связи"}]
  }'

Вызов функции целиком

Инструменты описываются как у Anthropic: имя, описание и input_schema. Модель возвращает блок tool_use и stop_reason: "tool_use", функцию выполняет ваш клиент, результат уходит обратно блоком tool_result в новом сообщении с ролью user.

json
{
  "model": "cursor-grok-4.6-high",
  "max_tokens": 1024,
  "messages": [{"role": "user", "content": [{"type": "text", "text": "Какая погода в Москве?"}]}],
  "tools": [{
    "name": "get_weather",
    "description": "Текущая погода в городе",
    "input_schema": {
      "type": "object",
      "properties": {"city": {"type": "string"}},
      "required": ["city"]
    }
  }]
}
json
{
  "role": "user",
  "content": [{
    "type": "tool_result",
    "tool_use_id": "toolu_01...",
    "content": "+7, ясно"
  }]
}

Разделы документации

На этой странице