Login
Back to Blog
РусскийComparison

Claude Opus 5 vs Claude Fable 5: семь задач в реальном API-бенчмарке и рекомендации по production-routing

В одном OpenAI-compatible API, с одинаковыми промптами и параметрами, Claude Opus 5 и Claude Fable 5 сравниваются на задачах по математике, физике, рассуждению с ограничениями, code review, строгому JSON и дизайну экспериментов. Фиксируются delivery rate, content filtering, latency, tokens и результаты повторных запусков.

C
Crazyrouter Team
July 25, 2026 / 3 views
Share:
Claude Opus 5 vs Claude Fable 5: семь задач в реальном API-бенчмарке и рекомендации по production-routing

Claude Opus 5 vs Claude Fable 5: 7 реальных API-тестов и рекомендации по production-маршрутизации#

Реальное API-сравнение Claude Opus 5 и Claude Fable 5

Как выбрать между Claude Opus 5 и Claude Fable 5? Если смотреть только на один успешный ответ, обе модели способны написать аккуратное математическое решение. Но на production-опыт обычно сильнее влияют три другие вещи: стабильно ли задача доводится до результата, подходит ли задержка для интерактивного сценария и можно ли автоматически восстановиться после сбоя.

25 июля 2026 года мы протестировали обе модели на 7 типах задач через один и тот же OpenAI-compatible API, с одинаковыми промптами и параметрами. Результаты не укладываются в простую формулу «более крупная модель всегда лучше»:

  • claude-fable-5 была быстрее и лаконичнее в задачах, которые успешно решили обе модели;
  • claude-opus-5 в итоге покрыла все 7 типов задач;
  • Fable 5 несколько раз подряд срабатывала на content_filter в обычных промптах для code review и JSON-сводки инцидента;
  • Opus 5 в задаче по физике первые два раза вернула HTTP 200, но ответила только приветствием; нормальный результат появился лишь с 3-й попытки.

Это значит, что production-выбор не должен сводиться к одному model ID. Более надежный подход: сначала выбирать основную модель по типу задачи, а затем закрывать аномалии через проверку содержимого, retry и fallback на другую модель.

Протестировать Opus 5 и Fable 5 через один API

Краткие выводы#

ВопросОтвет по этому тесту
Какая модель покрыла больше задач?Opus 5: 6/7 в основном тесте, 7/7 после retry
Какая модель быстрее?В задачах, успешно решенных обеими моделями, P50 общей задержки у Fable 5 примерно на 24% ниже
Какая модель отвечает лаконичнее?Fable 5: в среднем примерно на 43% меньше видимых output tokens
Какая модель лучше подходит для code review и строгого JSON?В этом тесте Opus 5 стабильнее; Fable 5 в двух задачах 3 раза подряд была отфильтрована
Можно ли ориентироваться только на HTTP 200?Нет; у обеих моделей были случаи HTTP 200 без фактического выполнения задачи
Какую маршрутизацию рекомендовать?Для проверенных задач — сначала Fable 5; при фильтрации или пустом теле — fallback на Opus 5; при аномальном приветствии от Opus — автоматический retry

Если тип входных данных непредсказуем или вам важно минимизировать риск фильтрации обычных бизнес-промптов, в первую очередь стоит рассматривать Opus 5. Если структура задач фиксирована, уже покрыта regression-тестами, а скорость интеракции и длина ответа важнее, Fable 5 лучше подходит как первая модель в цепочке.

Как мы тестировали#

Перед тестом мы вызвали endpoint со списком моделей и убедились, что оба точных model ID доступны:

text
GET https://cn.crazyrouter.com/v1/models

claude-opus-5
claude-fable-5

Все основные запросы шли через один endpoint:

text
POST https://cn.crazyrouter.com/v1/chat/completions

Общие условия:

text
Одинаковый system prompt
Одинаковый user prompt
temperature = 1
Для каждой задачи одинаковый max_tokens
stream = true
Без инструментов и доступа к интернету

Единый system prompt требовал только точного ответа и соблюдения формата вывода, без роли или установки, смещающей поведение в пользу какой-либо модели:

text
Answer the user's task accurately. Follow every requested output format and length constraint exactly. Do not use external tools.

Мы фиксировали не только итоговый текст, но и:

  • HTTP-статус и finish_reason;
  • response ID и returned model;
  • время до первого видимого token и общую задержку;
  • completion tokens, reasoning tokens;
  • проходит ли видимый ответ проверку по условиям задачи;
  • восстанавливается ли аномальный запрос повтором с теми же параметрами.

Это end-to-end-тест через шлюз Crazyrouter, а не эксперимент с жестко заданным единственным upstream-каналом. Поэтому результаты одновременно отражают поведение модели, upstream-фильтрацию, маршрутизацию шлюза и состояние каналов на тот момент. Они хорошо отвечают на вопрос «с чем реально столкнется пользователь через этот API», но не подходят для упаковки в чистый офлайн-рейтинг возможностей семейства Claude.

Если вам важно понять, почему при тестировании моделей нужно фиксировать finish_reason и бюджет вывода, посмотрите также повторный max_tokens-тест Claude Fable 5 vs GPT-5.5.

Сводная таблица по 7 задачам#

Матрица результатов семи задач для Claude Opus 5 и Claude Fable 5

Тестовое направлениеClaude Opus 5Claude Fable 5Production-эффект
Точная математика: цепь МарковаПройденоПройденоОбе модели получили правильные первый момент, второй момент и дисперсию
Численная физика: связанные осцилляторыПервые два раза только приветствие, с 3-й попытки пройденоПройдено с первой попыткиДля Opus нужны проверка содержимого и retry на уровне задачи
Поиск с ограничениямиПройденоПройденоОбе модели нашли единственное решение
Статистическая коррекцияПройденоПройденоОбе модели отвергли неверную предпосылку и дали корректную верхнюю границу
Code review на PythonПройдено3 раза подряд content_filterВ текущем тесте Fable не подходит для code-review-трафика без regression-проверки
Строгая JSON-сводка инцидентаПройдено3 раза подряд content_filterВ текущем тесте Fable не подходит для такого текста production-инцидента
Дизайн экспериментаПройденоПройденоОбе модели распознали непарные выборки и смешение по сложности

Доля задач, доставленных с первой основной попытки:

text
Claude Opus 5: 6 / 7 = 85.7%
Claude Fable 5: 5 / 7 = 71.4%

С учетом retry:

text
Claude Opus 5: 7 / 7
Claude Fable 5: 5 / 7

Под «доставкой» здесь понимается не успешный HTTP-запрос, а наличие видимого ответа, который бизнес-логика может принять как соответствующий заданию. Даже если есть HTTP 200, имя модели и token usage, но тело пустое, отфильтровано или содержит только приветствие, задача считается невыполненной.

Математика, ограничения и статистика: обе модели надежны#

Математическая задача использовала трехсостоянийную цепь Маркова и требовала вычислить время первого достижения состояния 3 из состояния 1:

text
E1[τ]
E1[τ²]
Var1(τ)

Обе модели выдали:

text
E1[τ] = 5
E1[τ²] = 43
Var1(τ) = 18

Обе также выписали транзиентную матрицу Q и уравнения для первого и второго моментов. В этой задаче не было ситуации, когда финальные числа правильные, а вывод противоречивый.

В задаче на поиск с ограничениями нужно было расставить пять докладов A, B, C, D, E по пяти слотам с условиями непосредственного соседства, порядка, расстояния и отсутствия соседства. Обе модели получили единственный порядок:

text
A, C, E, B, D

В задаче на статистическую коррекцию намеренно давался неверный вывод: «среднее равно 10, дисперсия равна 4, значит P(X≥14)=0.5». Обе модели указали, что двух моментов недостаточно для однозначного определения хвостовой вероятности, и через одностороннее неравенство Чебышева/Кантелли получили:

text
P(X >= 14) <= 0.2

Эти три класса задач показывают, что преимущество Fable 5 в скорости не достигается за счет потери базовой корректности рассуждений. В четких, коротких и проверяемых математических и логических задачах она вполне может быть более легкой первой моделью.

Предыдущие материалы — API-тест Claude Fable 5 vs Claude Sonnet 5 и тест output budget GLM-5.2 vs Fable 5 — также показывают: чтобы понять, подходит ли модель для production, нужно рассматривать корректность, бюджет вывода и форму доставки результата вместе.

Физика: Fable справилась с первой попытки, Opus восстановилась на третьей#

Задача по физике требовала обработать двухстепенной осциллятор с демпфированием на землю и связующим демпфированием, вычислить две собственные частоты без демпфирования, а также комплексный частотный отклик двух масс при ω=8 rad/s.

Референсные значения:

text
ω1 = 10.0204 rad/s
ω2 = 16.2149 rad/s
|X1| = 0.14929 m, phase = -12.15°
|X2| = 0.07174 m, phase = -13.90°

Fable 5 с первой попытки дала все правильные результаты. У Opus 5 в первых двух вызовах возникла аномалия, на которую production-командам стоит обратить особое внимание: API вернул HTTP 200 и finish_reason=stop, но тело ответа содержало только:

text
Hi! How can I help you today?

В обеих этих реакциях prompt tokens равнялись всего 10, что очевидно не соответствовало реальному входу. При 3-м выполнении того же запроса Opus 5 через 34.901 секунды вернула полный ответ, и все шесть численных значений прошли проверку.

Поэтому такую аномалию не стоит классифицировать как «модель ошиблась в физике». Правильнее считать это случаем, когда контекст запроса не был нормально обработан. Самая простая защита — не ручной просмотр логов, а task-level acceptance check на стороне клиента: ответ должен содержать ω1, ω2, X1, X2; если отсутствует хотя бы одно поле, выполняется retry.

Код и строгий JSON: фильтрация Fable стала главным отличием теста#

Задача по коду просила модель проверить Python-реализацию DFS-детектора циклов. Ошибка была вполне обычной: после завершения DFS для узла он не удалялся из множества visiting, из-за чего уже обработанный узел продолжал считаться находящимся в рекурсивном стеке, и на DAG ошибочно находился цикл.

Opus 5 корректно указала минимальное исправление:

python
visiting.discard(node)
visited.add(node)
return False

Fable 5 не вернула анализа кода: finish_reason=content_filter, тело пустое. Чтобы исключить смещение system prompt и случайную маршрутизацию, мы провели три раунда: исходный тест, повторный тест с чистым system prompt и независимый retry одной задачи. Во всех случаях результатом был content_filter.

Задача со строгим JSON также не содержала опасного контента. Во входе были только общее число запросов за 15 минут, число ошибок, attribution каналам, число восстановленных retry и предпринятые действия; требовалось вывести один JSON-объект. JSON, который вернула Opus 5, можно было сразу распарсить; Fable 5 снова 3 раза подряд была отфильтрована.

Эти два типа сбоев показывают: **сам safety-фильтр — тоже часть production-качества model API. Если модель стабильно дает ложную фильтрацию на нормальном code review или тексте postmortem-инцидента, она не может напрямую принять на себя весь бизнес-трафик, даже если в математических задачах быстрее.

response ID двух независимых retry:

text
Ревью кода: gen-1784915384-vGI1PtuNXZG0IJ2YiaCz
JSON инцидента: gen-1784915390-buOWZQSnqjgHeJ6nUogF

Задержка и длина ответа#

Чтобы не засчитывать короткое время неуспешных запросов как «преимущество в скорости», здесь сравниваются только четыре задачи, которые успешно выполнили обе модели: математика, поиск с ограничениями, статистическая коррекция и дизайн эксперимента.

Задержка Claude Opus 5 и Claude Fable 5 в задачах, успешно выполненных обеими моделями

МетрикаClaude Opus 5Claude Fable 5
P50 общей задержки10.729 s8.147 s
P50 первого видимого token8.376 s6.974 s
Среднее число видимых completion tokens797.5452.3

В этой небольшой выборке P50 общей задержки у Fable 5 примерно на 24% ниже, время до первого видимого token — примерно на 17% ниже, а ответы короче примерно на 43%. Для чатов, пакетных сводок и высокочастотных структурированных задач такие различия напрямую влияют на ожидание пользователя и нагрузку на последующую обработку.

Но не стоит превращать медиану по 4 задачам в SLA. Upstream-нагрузка, кеши, маршрутизация и rate limiting могут менять задержку. Перед полноценным запуском нужно повторить тесты на собственных бизнес-промптах 20–50 раз, а затем посчитать P50, P95, P99 и реальную стоимость каждого результата, прошедшего acceptance check.

В основных ответах Fable 5 присутствовало поле cost; суммарно за7 вызовов получилось около $0.24596. В usage для Opus 5 не было поля cost той же методики, поэтому в статье не делается вывод о победителе по цене в долларах. Отсутствие поля не означает бесплатность, и его не следует заполнять непроверенными ценами.

Рекомендуемая production-стратегия маршрутизации#

Вызов одной модели проще всего реализовать, но он напрямую показывает конечному пользователю все случайные особенности поведения модели. Для двух моделей из этого теста разумнее такое разделение ролей:

Fable 5 как первая модель#

Подходит для:

  • математических задач, reasoning с ограничениями и коротких сводок, уже прошедших regression-тесты;
  • интерактивных сценариев, чувствительных ко времени до первого token и общей задержке;
  • задач, где нужно контролировать длину ответа и уменьшать нагрузку на постобработку.

Условие: семейство задач уже проверено на фильтрацию, а вызывающая сторона проверяет content_filter, пустое тело и отсутствие обязательных полей.

Opus 5 как fallback с более широким покрытием#

Подходит для:

  • непредсказуемых типов входных данных;
  • code review, строгого JSON, сложной физики и других сценариев, где нужно более широкое покрытие задач;
  • случаев, когда после фильтрации Fable 5 нужно автоматически восстановить пользовательский запрос.

Opus 5 тоже нельзя оставлять без проверки. Аномалия с приветствием в этом тесте показывает, что HTTP 200 и stop все равно могут не содержать бизнес-ответа.

OpenAI-compatible пример на Python#

Пример ниже сначала вызывает Fable 5, а при фильтрации, пустом теле или провале acceptance check переключается на Opus 5; если Opus по-прежнему возвращает только приветствие, выполняется еще один retry.

python
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://cn.crazyrouter.com/v1",
)


def valid_answer(text: str, required_terms: tuple[str, ...]) -> bool:
    normalized = (text or "").strip()
    if not normalized:
        return False
    if normalized.lower().startswith("hi! how can i help"):
        return False
    return all(term in normalized for term in required_terms)


def call_model(model: str, prompt: str) -> tuple[str, str | None]:
    response = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
        temperature=1,
        max_tokens=3000,
    )
    choice = response.choices[0]
    return choice.message.content or "", choice.finish_reason


def routed_completion(prompt: str, required_terms: tuple[str, ...] = ()) -> str:
    for model, attempts in (("claude-fable-5", 1), ("claude-opus-5", 2)):
        for _ in range(attempts):
            text, finish_reason = call_model(model, prompt)
            if finish_reason == "content_filter":
                break
            if valid_answer(text, required_terms):
                return text
    raise RuntimeError("No model produced a valid business answer")


answer = routed_completion(
    "Return a JSON incident summary with keys total, failed, recovered.",
    required_terms=('"total"', '"failed"', '"recovered"'),
)
print(answer)

В production-реализации также стоит записывать model, response ID, finish_reason, общую задержку и причину провала acceptance check. Только так можно отличить ошибку вычисления, обрезанный вывод, content-фильтрацию и потерю входного контекста при маршрутизации, а не складывать все в расплывчатую категорию «модель не справилась».

Если вы проектируете multi-model-инфраструктуру, можно также посмотреть материалы о различиях между AI API Gateway, агрегатором и прямыми model API, а также семимерный тест Kimi K3 vs Opus 4.8.

Финальная рекомендация#

Самый ценный вывод этого теста не в том, кто набрал больше очков, а в том, что формы отказа у двух моделей разные:

  • Преимущество Fable 5 — более высокая скорость и более короткие ответы в общих успешных задачах; риск — стабильное срабатывание фильтрации на части обычных бизнес-промптов.
  • Преимущество Opus 5 — покрытие всех задач после retry; риск — редкое возвращение приветствия, не связанного с реальным входом.

Поэтому Fable 5 стоит ставить первой на уже проверенных высокочастотных задачах, Opus 5 — использовать как fallback с более широким покрытием, а на обеих ветках выполнять проверку содержимого на уровне задачи. Так результаты сравнения моделей превращаются в реальную надежность, а не остаются строкой в рейтинговой таблице.

Создать API Key и воспроизвести эту двухмодельную маршрутизацию

FAQ#

Claude Opus 5 точно сильнее Claude Fable 5?#

Из этой небольшой выборки нельзя сделать вывод, что она сильнее во всех задачах. Обе модели прошли математику, ограничения, статистическую коррекцию и дизайн эксперимента; Fable 5 была быстрее и короче, а Opus 5 дала более полное покрытие задач. Выбор должен опираться на success rate для конкретных задач, а не на название модели.

Подходит ли Claude Fable 5 для production?#

Подходит для задач, прошедших regression-тестирование. В этом тесте она корректно и быстро справилась с несколькими reasoning-задачами, но code review и JSON-инцидент несколько раз подряд вызвали фильтрацию. Перед запуском нужно измерить filter rate на реальных промптах и настроить fallback на Opus 5 или другую модель.

Почему HTTP 200 все равно считается провалом?#

HTTP 200 означает только то, что API завершил ответ. Пустое тело, finish_reason=content_filter, обрезанный вывод или ответ в виде одного приветствия не решают бизнес-задачу. Production-метрики должны считать «долю ответов, прошедших acceptance check», а не только HTTP success rate.

Почему returned model равен anthropic/claude-fable-5?#

В запросе использовался claude-fable-5, а returned model в ответе стабильно был anthropic/claude-fable-5 с provider-префиксом. Это можно считать нормализованным alias; одного изменения префикса недостаточно, чтобы утверждать, что модель была подменена.

Можно ли напрямую сравнить долларовую стоимость двух моделей?#

В этом тесте — нет. В ответах Fable 5 было поле cost, а для Opus 5 не было поля в той же методике. Корректное сравнение стоимости должно брать данные из единых billing-логов и считать метрику «стоимость результата, прошедшего acceptance check».

Сколько повторов нужно сделать перед запуском?#

Для каждого ключевого семейства задач рекомендуется минимум 20–50 повторов, с покрытием нормальных входов, граничных входов, длинных входов и входов, которые потенциально могут вызвать фильтрацию. Как минимум фиксируйте task success rate, filter rate, долю пустых ответов, truncation rate, P50/P95/P99 задержки и стоимость.

Как начать тестирование?#

Используйте https://cn.crazyrouter.com/v1 как OpenAI-compatible base URL и по очереди вызывайте claude-opus-5 и claude-fable-5. Зафиксируйте промпты и параметры, сохраняйте сырые ответы, а затем через локальные assertions или структурную валидацию проверяйте, действительно ли задача выполнена.

Начать собственный двухмодельный тест Claude

Implementation Guides

Topics

Comparison

Related Posts

Kimi K3 против Claude Fable 5: точность проверки, обрезка кода и задержка APIComparison

Kimi K3 против Claude Fable 5: точность проверки, обрезка кода и задержка API

Практический API-тест Kimi K3 и Claude Fable 5 на математике, физике, исполняемом Python и логических ограничениях с анализом finish_reason и reasoning tokens.

Jul 17
Kimi K3 против Claude Opus 4.8: практические тесты по математике, физике и программированию уровня магистратурыComparison

Kimi K3 против Claude Opus 4.8: практические тесты по математике, физике и программированию уровня магистратуры

Реальное сравнение Kimi K3 и Claude Opus 4.8 на задачах уровня выпускной работы: марковская цепь, затухающие связанные осцилляторы и планирование зависимостей; проверены полнота вывода, точность, задержка и код.

Jul 19
Qwen3 VL Flash vs Qwen3 VL Plus: бенчмарк Vision API 2026 для практического выбора моделиComparison

Qwen3 VL Flash vs Qwen3 VL Plus: бенчмарк Vision API 2026 для практического выбора модели

Практический benchmark для сравнения qwen3-vl-flash и qwen3-vl-plus в задачах Vision API: реальная точность распознавания, latency, tail latency, стоимость успешного изображения, usage signals, failure modes и routing recommendations.

Jun 22
Gemini 2.5 Flash vs Qwen3 VL Flash: бенчмарк Vision API 2026 для практического выбора моделиComparison

Gemini 2.5 Flash vs Qwen3 VL Flash: бенчмарк Vision API 2026 для практического выбора модели

Практический benchmark для сравнения gemini-2.5-flash и qwen3-vl-flash в задачах Vision API: реальная точность распознавания, latency, tail latency, стоимость успешного изображения, usage signals, failure modes и routing recommendations.

Jun 22
Gemini 2.5 Flash vs GPT-4.1 Nano: бенчмарк Vision API 2026 для практического выбора моделиComparison

Gemini 2.5 Flash vs GPT-4.1 Nano: бенчмарк Vision API 2026 для практического выбора модели

Практический benchmark для сравнения gemini-2.5-flash и gpt-4.1-nano в задачах Vision API: реальная точность распознавания, latency, tail latency, стоимость успешного изображения, usage signals, failure modes и routing recommendations.

Jun 22
Gemini 2.5 Flash Lite vs Qwen3 VL Plus: бенчмарк Vision API 2026 для практического выбора моделиComparison

Gemini 2.5 Flash Lite vs Qwen3 VL Plus: бенчмарк Vision API 2026 для практического выбора модели

Практический benchmark для сравнения gemini-2.5-flash-lite и qwen3-vl-plus в задачах Vision API: реальная точность распознавания, latency, tail latency, стоимость успешного изображения, usage signals, failure modes и routing recommendations.

Jun 22