Коротко: Anthropic позиционирует Claude Sonnet 5.5 для ограниченных повседневных задач: исправления локальной ошибки, преобразования данных, первичного ревью и подготовки документов. Anthropic позиционирует Opus 5.5 для более сложной работы, где требуется тщательное суждение. Это описание сценариев разработчика, а не гарантия результата на конкретном проекте. Источник Anthropic.
Официальный API ID Anthropic — claude-sonnet-5-5. В таблице Anthropic для версии указаны контекст до 1 млн токенов, максимальный вывод до 128 тыс. токенов, адаптивный thinking и высокий effort по умолчанию. В снимке каталога Zenith от 27 октября 2026 года для одного ключа был SKU claude-sonnet-5-5. Это каталожный ID и наблюдение одного ключа, а не доказательство того, что Zenith использует определённый внутренний backend модели.
Кому подходит Claude Sonnet 5.5
Anthropic сообщает, что Sonnet 5.5 отвечает более чем на 30% быстрее Sonnet 5 и в собственных оценках может снижать стоимость задачи до 30%. Эти показатели относятся к оценкам разработчика: «стоимость задачи» не равна ставке за токен, а скорость зависит от входа, вывода и условий запуска. Публикация Anthropic.
Идентификация версии и статус доступа
Официальный API ID Anthropic — claude-sonnet-5-5. Отдельно, в снимке каталога Zenith от 27.10.2026 для одного ключа присутствовал SKU с таким же ID. Это датированное наблюдение каталога, не подтверждение текущего доступа или соответствия внутренней модели.
claude-sonnet-5-5
В наблюдении GET /v1/models Zenith от 28.10.2026 ответ был объектом с массивом data. Для собственного ключа проверьте точный ID записи и supported_endpoint_types; наличие SKU подтверждает метаданные каталога, а не работу inference. В снимке от 27.10.2026 reasoningEffortModes для SKU был пустым: доступность режима medium этим наблюдением не подтверждается. Высокий effort по умолчанию указан в таблице Anthropic для официальной модели и не устанавливает настройки маршрута Zenith. Таблица моделей Anthropic и каталог Zenith.
На 28.10.2026 документация Zenith указывала способ получения API key через Telegram-бота; процесс покупки редакция не проходила. Условия оплаты опубликованы на странице условий Zenith, но конкретная операция и платный inference редакцией не проверялись. Поэтому этот материал описывает документированные маршруты и способ предварительной проверки каталога, а не подтверждённый доступ к рабочему запросу. Факт SKU — наблюдение каталога одного ключа, цены — архивный снимок от 27.10.2026; ни то ни другое не подтверждает текущую доступность или соответствие backend официальной модели.
Чем Sonnet 5.5 отличается от ближайших вариантов
| Вариант | Подтверждённое отличие | Практический компромисс |
|---|---|---|
| Sonnet 5.5 | Anthropic позиционирует модель для чётко ограниченных повседневных задач, исправления ошибок и создания документов, презентаций и таблиц. В официальной таблице указаны контекст 1 млн токенов, адаптивный thinking и высокий effort по умолчанию. | Подходит для рассмотрения, когда важны ясные границы задачи и большой контекст; качество на конкретном проекте здесь не измерялось. |
| Sonnet 5 | Anthropic сообщает о сравнительных результатах по скорости, стоимости задачи и Terminal-Bench 4.0. Для Sonnet 5 указаны автоматически добавляемые budget tags; Sonnet 5.5 их не получает. | Это различия в опубликованных характеристиках, а не гарантия результата на вашем коде. Доступность обеих версий зависит от выбранного канала. |
| Opus 5.5 | Anthropic позиционирует её для сложной работы, требующей тщательного суждения. | Рассмотрите её для неоднозначной задачи, но не считайте это доказательством превосходства на каждом проекте. В официальном прайсе Anthropic базовые ставки Opus 5.5 выше ставок Sonnet 5.5. |
В опубликованном Anthropic результате Terminal-Bench 4.0 Sonnet 5.5 набрала 70,6%, а Sonnet 5 — 10,3%. Это показатель конкретной оценки Anthropic, не точность на вашем репозитории и не результат редакционного прогона. Из этих процентов нельзя вывести качество или скорость на приведённой ниже функции. Описание оценки Anthropic.
Практический сценарий с заданным контрактом
Пример ниже демонстрирует проверяемую методику исправления кода, а не преимущество Sonnet 5.5 перед другой моделью и не фактический ответ модели. Контракт ограничен целыми числами: вернуть уникальные элементы в порядке возрастания, не изменяя исходный список.
Исправь функцию минимальным изменением.
Контракт: items — список целых чисел. Вернуть отсортированный
список уникальных элементов; исходный список не изменять.
Публичную сигнатуру не менять.
Верни только JSON с полями cause, patch, tests и risks.
Фрагмент:
def unique_sorted(items):
items.sort()
return list(set(items))
Ожидаемый результат для входа [3, 1, 3, 2] — список [1, 2, 3], при этом исходный список остаётся [3, 1, 3, 2]. Следующий объект — пример формата и эталонного содержания, а не полученный ответ модели; корректность кода проверяется тестами.
{
"cause": "items.sort() меняет исходный список",
"patch": "def unique_sorted(items):\n return sorted(set(items))",
"tests": [
{"input": [3, 1, 3, 2], "expected": [1, 2, 3], "source_after": [3, 1, 3, 2]},
{"input": [], "expected": []},
{"input": [2, 2], "expected": [2]}
],
"risks": ["Контракт рассчитан на целые числа"]
}
Критерии проверки: cause указывает на мутацию исходного списка; patch содержит полный текст функции; tests задаёт входы и ожидаемые выходы, включая отсутствие мутации; risks фиксирует ограничение на целые числа. Объект выше — пример ожидаемого формата, не ответ модели.
Проверка результата и границ изменений
Сохраните следующий код как check_paths.py во временной Git-копии вместе с solution.py и тестами. До передачи задания зафиксируйте эти файлы коммитом. Проверка имеет два независимых режима: before требует чистую базу, after допускает изменение только отслеживаемого solution.py.
"""Read-only Git scope check for the isolated solution.py example."""
import argparse
import subprocess
from pathlib import Path
def main():
parser = argparse.ArgumentParser()
parser.add_argument('phase', choices=['before', 'after'])
parser.add_argument('--repo', type=Path, default=Path.cwd())
args = parser.parse_args()
result = subprocess.run(
['git', 'status', '--porcelain=v1', '-z', '--untracked-files=all'],
cwd=args.repo, check=True, capture_output=True,
)
records = [record.decode('utf-8', errors='strict')
for record in result.stdout.split(b'\0') if record]
if args.phase == 'before':
if records:
raise SystemExit('Expected a clean committed baseline before work')
print('precheck=OK')
return
if not records:
raise SystemExit('No tracked solution.py modification found')
if any(record[:2] not in {' M', 'M ', 'MM'}
or record[3:] != 'solution.py' for record in records):
raise SystemExit('Unexpected changes outside tracked solution.py')
print('postcheck=OK')
if __name__ == '__main__':
main()
Это документарная методика, а не отчёт о запуске. В отдельной временной Git-копии заранее зафиксируйте базовое состояние, включая тесты и check_paths.py. Выполните python check_paths.py before, примените полный текст функции из поля patch только к solution.py, затем выполните python check_paths.py after и python test_solution.py. Успех требует чистой базы до работы, изменения только solution.py после неё и прохождения независимых тестов. Сам Git-checker проверен редакцией офлайн в семи изолированных Git-сценариях, включая чистую базу, изменение только solution.py, staged-изменение и посторонние файлы. Это проверка вспомогательного кода, не результат Sonnet или платного API-запроса.
from solution import unique_sorted
items = [3, 1, 3, 2]
before = items.copy()
assert unique_sorted(items) == [1, 2, 3]
assert items == before
assert unique_sorted([]) == []
assert unique_sorted([2, 2]) == [2]
print("OK")
Стоимость одного сценария через Zenith
В нормализованном архивном снимке каталога Zenith от 27.10.2026 для SKU claude-sonnet-5-5 указаны ставки за миллион токенов: вход — $0,67, выход — $3,35, создание кэша — $0,84, чтение кэша — $0,07. Это запись каталога Zenith на указанную дату, а не официальный тариф Anthropic, текущая цена, подтверждение inference или доказательство происхождения модели. Срок кэширования из этих полей не следует. Расчёт ниже предполагает отсутствие кэша.
При 4 000 входных и 800 выходных токенах без комиссий и внешних инструментов: 4 000 × 0,67 / 1 000 000 + 800 × 3,35 / 1 000 000 = $0,00536. При тех же объёмах 10 000 запросов дали бы расчётные $53,60. Это арифметика по заданным ставкам, а не сравнение качества моделей и не обещание фиксированного итогового списания. Методика расчёта разобрана в статье о стоимости API по токенам.
Подключение через документированный endpoint
Документация Zenith, прочитанная 28.10.2026, указывает Anthropic-совместимый base URL https://api.zenithmarket.dev без суффикса /v1 и маршрут Messages /v1/messages. Это документированные маршруты, а не подтверждение доступности SKU для каждого ключа. Отдельное наблюдение GET /v1/models от 28.10.2026 для одного ключа вернуло объект с массивом data; это не универсальная гарантия схемы для других ключей или будущих ответов. При несовпадении актуального ответа следует свериться с документацией Zenith, а не считать модель недоступной. Снимок наличия SKU и цен датирован 27.10.2026. Платного запроса редакция не выполняла. Код ниже использует Messages как документарное предположение примера; конкретную форму ответа и совместимость заголовков нужно подтвердить по актуальной документации Zenith перед запуском.
import getpass
import json
import urllib.request
import urllib.error
key = getpass.getpass("Zenith API key: ")
base = "https://api.zenithmarket.dev"
headers = {
"User-Agent": "Comrad404SourceReview/1.0",
"Authorization": "Bearer " + key,
"Content-Type": "application/json",
}
try:
request = urllib.request.Request(base + "/v1/models", headers=headers)
with urllib.request.urlopen(request, timeout=30) as response:
payload = json.load(response)
# Это проверка наблюдавшейся формы ответа одного ключа, не универсальная схема.
if not isinstance(payload, dict) or not isinstance(payload.get("data"), list):
raise SystemExit("Форма каталога отличается; сверьтесь с актуальной документацией Zenith")
rows = payload["data"]
if any(not isinstance(row, dict) for row in rows):
raise SystemExit("Неизвестная форма записи каталога; сверьтесь с документацией Zenith")
model = next((row for row in rows if row.get("id") == "claude-sonnet-5-5"), None)
endpoints = model.get("supported_endpoint_types") if model else None
if not isinstance(endpoints, list) or "messages" not in endpoints:
raise SystemExit("SKU или endpoint Messages не указаны в каталоге этого ключа")
task = """Исправь unique_sorted(items): items.sort(); return list(set(items)).
Контракт: целые числа, отсортированные уникальные значения, без изменения items.
Ответ только JSON с полями cause, patch, tests, risks; patch — полный текст функции."""
body = {
"model": model["id"],
"max_tokens": 800,
"messages": [{"role": "user", "content": task}],
}
request = urllib.request.Request(
base + "/v1/messages",
data=json.dumps(body).encode("utf-8"),
headers=headers,
method="POST",
)
with urllib.request.urlopen(request, timeout=60) as response:
result = json.load(response)
# Ожидаемая форма Messages для примера; её совместимость с Zenith не подтверждена.
if not isinstance(result, dict) or not isinstance(result.get("content"), list):
raise SystemExit("Ответ не соответствует предполагаемой форме Messages")
blocks = [item.get("text") for item in result["content"]
if isinstance(item, dict) and item.get("type") == "text"
and isinstance(item.get("text"), str)]
if not blocks:
raise SystemExit("В предполагаемой форме нет текстовых блоков")
answer = json.loads("\n".join(blocks))
required = {"cause", "patch", "tests", "risks"}
if not isinstance(answer, dict) or not required.issubset(answer):
raise SystemExit("Ответ не выполнил JSON-контракт")
if not isinstance(answer["patch"], str):
raise SystemExit("Поле patch должно содержать текст функции")
print(answer)
print("usage:", result.get("usage"))
print("Структура JSON проверена; корректность patch требует ручной проверки и тестов.")
except urllib.error.HTTPError as error:
print("HTTP", error.code)
raise SystemExit(1)
except urllib.error.URLError:
raise SystemExit("Ошибка сети; перед повтором проверьте состояние запроса")
except (ValueError, KeyError, TypeError):
raise SystemExit("Некорректный JSON или форма ответа; автоматического повтора нет")
Итоговый выбор
Для ограниченной задачи с ясным контрактом Sonnet 5.5 — кандидат для проверки, а не автоматический выбор: сравнительного прогона на этой функции нет. Anthropic позиционирует Sonnet 5.5 для повседневных задач с чёткими границами, а Opus 5.5 — для сложной работы, требующей тщательного суждения. По официальному прайсу Anthropic базовые ставки Opus 5.5 выше. Отдельно, в датированном снимке Zenith от 27.10.2026 для SKU claude-opus-5-5 были указаны ставки $1,35/$6,70 за миллион входных/выходных токенов; это предложение Zenith на дату снимка, не официальный тариф или текущая цена.
Цена и настройка — отдельные основания сравнения
В официальном прайсе Anthropic базовые ставки Sonnet 5 и Sonnet 5.5 одинаковы: $2 за миллион входных и $10 за миллион выходных токенов; Opus 5.5 — $4/$20. Для 4 000 входных и 800 выходных токенов это соответственно $0,016 и $0,032 по базовым ставкам Anthropic. Это расчёт короткого сценария без кэша; при длинном контексте могут действовать отдельные условия тарификации, поэтому суммы нельзя переносить на такие запросы. Их также нельзя смешивать с историческими ценами Zenith или использовать как оценку стоимости запроса через Zenith. По документации контекста официального Claude API, Sonnet 5 получает автоматически добавляемые budget tags, а Sonnet 5.5 — нет. Это не меняет указанное для Sonnet 5.5 контекстное окно и не подтверждает поведение маршрута Zenith.
Дата и границы обновления
Материал документарный: платного прогона функции и запроса к Zenith редакция не проводила. Характеристики, позиционирование и бенчмарк приведены по материалам Anthropic; маршруты — по документации Zenith; SKU, поля каталога и цены — по датированным наблюдениям 27–28.10.2026 для одного ключа. API ID Anthropic claude-sonnet-5-5 и одноимённый SKU Zenith — разные сведения: совпадение строк не доказывает маршрутизацию к официальной модели или соответствие backend. GET-каталог подтверждает метаданные ключа, но не inference. Цены не являются текущим предложением, а пример ответа и форма Messages не выдаются за результат запуска.
Поле patch должно содержать полный текст функции, а не unified diff. Проверка JSON подтверждает только структуру ответа, не корректность кода: перенесите функцию в solution.py, выполните независимые тесты и проверьте границы изменений в два этапа, описанные выше.
Ручной эталон исправления, не ответ модели
def unique_sorted(items):
return sorted(set(items))
source = [3, 1, 3, 2]
assert unique_sorted(source) == [1, 2, 3]
assert source == [3, 1, 3, 2]
assert unique_sorted([]) == []








