На работе друг задал мне совершенно незначительный вопрос, и я поручил агенту поискать ответ в моих недавних чатах и документах. Он нашел правильный ответ, но это обошлось мне в $38!!!. Это было крайне невыгодно с точки зрения окупаемости. Да, мое время ценно, но я бы все равно не стал тратить на это столько времени, а задача явно не требовала дорогих возможностей глубокого планирования.
Мы можем сделать лучше.
Платформа Gemini Enterprise Agent Platform от Google Cloud предлагает Model Garden — удобный API-доступ ко многим топовым моделям, включая разработки от Google, Anthropic и даже xAI. Фактически, любую модель с Huggingface можно развернуть самостоятельно, но в этой статье мы сосредоточимся на новой модели Claude Fable 5.1 от Anthropic и новой Gemini 3.8 Flash от Google. Теперь у разработчиков есть две принципиально разные передовые модели, доступные через один и тот же корпоративный API.
Fable 5.1 обеспечивает автономное планирование уровня Mythos, контекстное окно в 1 миллион токенов и глубокую многошаговую проработку задач. Gemini 3.8 Flash предлагает рассуждения почти на уровне передовых моделей и невероятную скорость обработки токенов по ценам Flash ($0,75 за миллион входных токенов, $3,75 за миллион выходных токенов) с настраиваемыми параметрами «размышлений».
Может показаться, что проще выбрать одну модель и маршрутизировать через нее все запросы. Это ошибка.
Если вы прогоняете рутинные задачи разработчика через сложного планировщика, вы платите цены за передовые токены просто за парсинг git diff. Если же вы заставляете быструю модель выполнять необратимую миграцию базы данных без формального плана, она будет действовать вслепую и сломает состояние системы раньше, чем вы допьете свой кофе.
Мы можем значительно улучшить «токеномику» очень простым способом: используя две модели и маршрутизируя задачи между ними.

Автор: Алан Блант (@zeroasterisk
Вот полное руководство, которое поможет вам этого достичь:
- Настройте обе модели за единым уровнем управления (governance plane).
- Проведите бенчмаркинг рутинных задач перед выбором модели по умолчанию.
- Используйте быструю модель как координатора первой линии, а глубокого планировщика подключайте только тогда, когда вам нужна дополнительная мощность или когда быстрая модель требует эскалации.
- Сформируйте ментальную модель ROI задач и ценности (а не только стоимости) ваших токенов.
1. Настройка обеих моделей за единым уровнем управления
Выбор платформы для инференса LLM требует учета множества проектных решений: стоимость, мощности, безопасность, выбор модели, возможности обслуживания, трение при разработке и дополнительные аспекты безопасности (API-ключи сопряжены с рисками). Платформа Gemini Enterprise Agent Platform (ранее известная как Vertex AI) — это комплексное решение с уникальными возможностями. Поскольку она предоставляет модели Gemini и Anthropic как управляемые API, одна безопасная система аутентификации покрывает оба типа рабочих нагрузок.
Но будем честны: некоторые процессы сопряжены с большим трением, чем хотелось бы. Я люблю шутить: «Невозможное легко, а легкое сложно». Именно поэтому я пишу этот пост.
Прежде чем работать с моделями, войдите в gcloud и прочитайте документацию для различных вариантов настройки.
1gcloud auth application-default login
Чтобы получить доступ к Claude Fable 5.1, нужно включить API, затем активировать Claude Fable 5.1 и заполнить очень короткую форму о вашем случае использования. Но на этом вы еще не закончили.
Теперь Fable попадает под действие Дополнительного соглашения об использовании передового ИИ (Advanced AI Safety Addendum) от Google Cloud. Прежде чем отправить хотя бы один запрос к aiplatform.googleapis.com, вы должны явно настроить обмен данными запросов и ответов и принять условия издателя на уровне проекта.
Вот точные рабочие инструкции для глобальной конечной точки; прочитайте документацию для других вариантов.
Сначала настроим несколько переменных, которые нам помогут. Обратите внимание, что имя модели в пути URL — claude-fable-5-1 (через дефисы, а не точки). Убедитесь, что вы ввели свой ID проекта и локацию, а также, возможно, измените конечную точку в зависимости от вашего региона:
1export PROJECT_ID="YOUR_PROJECT_ID"2export LOCATION="global"3export MODEL="claude-fable-5-1"45# Глобальная конечная точка: aiplatform.googleapis.com (рекомендуется)6# Мультирегиональные конечные точки: aiplatform.eu.rep.googleapis.com7# Региональные конечные точки: us-central1-aiplatform.googleapis.com8export ENDPOINT="https://aiplatform.googleapis.com"
Затем вызовите API setPublisherModelConfig, установив значение dataSharingEnabledProvider в ANTHROPIC — обратите внимание, что это написано заглавными буквами:
1curl -X POST \2 -H "Authorization: Bearer $(gcloud auth print-access-token)" \3 -H "Content-Type: application/json; charset=utf-8" \4 -d '{ "publisherModelConfig": { "dataSharingEnabledProvider": "ANTHROPIC" } }' \5"${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/anthropic/models/${MODEL}:setPublisherModelConfig"
Первоначальный вызов возвращает объект завершенной операции, подтверждающий, что обмен данными активен:
1{2 "name": "projects/YOUR_PROJECT_NUMBER/locations/global/operations/1234567",3 "metadata": {4 "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.SetPublisherModelConfigOperationMetadata",5 "genericMetadata": {6 "createTime": "...",7 "updateTime": "..."8 }9 },10 "done": true,11 "response": {12 "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.PublisherModelConfig",13 "loggingConfig": {},14 "dataSharingEnabledProvider": "ANTHROPIC"15 }16}
Если вы уже выполнили эту настройку, вы получите ошибку HTTP 409 о том, что такая конфигурация уже существует:
1409 ALREADY_EXISTS: The same PublisherModelConfig already exists.
Эта ошибка 409 вообще не является проблемой.
Протестируйте доступ к модели, и вы должны получить ответ:
1curl -X POST \2 -H "Authorization: Bearer $(gcloud auth print-access-token)" \3 -H "Content-Type: application/json; charset=utf-8" \4 -d '{"anthropic_version": "vertex-2023-10-16","messages": [{"role": "user", "content": "Hello world."}], "max_tokens": 1024, "stream": true}' \5"${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/anthropic/models/${MODEL}:streamRawPredict"
Если вы сделали это неправильно, вы получите ошибку HTTP 403 следующего вида:
1403 PERMISSION_DENIED: Access to this model requires data sharing to be enabled for publisher 'anthropic'. Please set `PublisherModelConfig.data_sharing_enabled_provider`2to 'anthropic' via the setPublisherModelConfig API to use this model.
Для доступа к Gemini 3.8 Flash убедитесь, что модель отображается как включенная в карточке модели, после чего все должно заработать сразу:
1curl -X POST \2 -H "Authorization: Bearer $(gcloud auth print-access-token)" \3 -H "Content-Type: application/json; charset=utf-8" \4 -d '{"contents": [{"role": "user", "parts": [{"text": "Hello world"}]}],"generationConfig": {"thinkingConfig": {"thinkingLevel": "LOW"}}}' \5"${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/gemini-3.8-flash:streamGenerateContent"
… фух. Мы справились 🎉!
Нужна большая квота? Вы можете управлять квотами для любой модели и оплачивать гарантированную пропускную способность для некоторых моделей.
2. Не доверяйте бенчмаркам, проводите свои тесты
Если спросить пять инженеров, какую модель использовать для агентов, вы получите больше пяти противоречивых мнений, основанных на настроениях в Twitter и синтетических рейтингах.
Публичные бенчмарки — отличный ресурс, но они тестируют изолированные промпты или задачи в вакууме. Реальные производственные кейсы или ваши локальные агентные инструменты для SDLC никогда идеально не совпадают с публичными бенчмарками. Ваша работа сегодня отличается от любого бенчмарка.
Вы могли бы создать собственные бенчмарки (Agent Ops and Evals FTW!) и автоматизировать этот процесс в масштабе, но можно просто выполнить свои простые задачи параллельно. Пока вы не меняете файлы в своей задаче, все должно быть в порядке, и почти без усилий вы получите представление о производительности.
Вот пример использования promptfoo для запуска opencode с одинаковыми двумя задачами на каждой модели. Вам нужно будет изменить описание задачи и настроить окружение, чтобы это работало, но это не должно быть слишком сложно.

GIF
1# opencode.json2{3 "$schema": "https://opencode.ai/config.json",4 "provider": {5 "google-vertex": {6 "options": { "project": "alanblount-demo", "location": "global" },7 "models": {8 "gemini-3.8-flash": { "id": "gemini-3.8-flash", "name": "Gemini 3.8 Flash" }9 }10 },11 "google-vertex-anthropic": {12 "options": { "project": "alanblount-demo", "location": "global" },13 "models": {14 "claude-fable-5-1": { "id": "claude-fable-5-1", "name": "Claude Fable 5.1" }15 }16 }17 },18...
Настройте Promptfoo для сравнения выполнения агентных задач через opencode, а не просто одиночных промптов и моделей.
1# promptfooconfig.yaml2description: "Бенчмаркинг агентной среды OpenCode: Gemini 3.8 Flash vs. Claude Fable 5.1"34prompts:5 - "Резюмируй статус ветки git одним предложением."6 - "Разработай стратегию миграции базы данных без простоев с Postgres на Spanner."78providers:9 - id: "exec:opencode run --auto -m google-vertex/gemini-3.8-flash"10 label: "Gemini 3.8 Flash (OpenCode Agent)"11 - id: "exec:opencode run --auto -m google-vertex-anthropic/claude-fable-5-1"12 label: "Claude Fable 5.1 (OpenCode Agent)"1314defaultTest:15 options:16 timeoutMs: 60000
Запустите собственное параллельное сравнение с помощью Promptfoo:
promptfoo eval -c promptfooconfig.yaml --no-cache
Вот мои результаты запуска этой оценки в чистом контейнере разработки:

При проверке ветки PR Claude Fable 5.1 провел несколько циклов мета-рефлексии, повторно проверяя хеши дерева, которые не изменились. Это заняло почти 6 секунд и стоило в 23 раза дороже. Gemini 3.8 Flash мгновенно распознала намерение, вызвала инструменты git и дала ответ за 1,1 секунды менее чем за десятую часть цента.
На сложной задаче миграции базы данных картина изменилась. Gemini 3.8 Flash выдала надежную, чистую линейную последовательность за 3 секунды. Но Fable 5.1 потратила 12 секунд на генерацию полного, формализованного направленного ациклического графа (DAG). Она выявила риски рассинхронизации часов при двойной записи, сгенерировала требования к ключам идемпотентности и определила обратимый шлюз отката.
Это всего лишь один иллюстративный пример; вам следует провести сравнение на своих собственных задачах.
3. Практическое использование в повседневной работе и продакшене
Используете ли вы готовые инструменты для программирования или создаете собственные сервисы агентов, выигрышный паттерн — это асимметричная координация: дешевая скорость для исполнения первой линии в сочетании с продуманной глубиной для архитектурных контрольных точек. Тратьте дорогие токены на сложные проблемы или работу по планированию, но используйте более дешевые токены по умолчанию для простых задач.
Агентные среды для программирования (OpenCode, Aider и т.д.)
Не заставляйте одну модель быть универсальным вариантом по умолчанию. Настройте специализированных субагентов, привязанных к разным моделям. Использование одного унифицированного провайдера дает преимущества в безопасности и стоимости. Использование разных семейств моделей позволяет им проверять работу друг друга.
Используйте агента глубокого мышления, чтобы определить первопричину и спланировать решение этой проблемы, а затем используйте рабочего агента для выполнения каждой задачи и отчетности о статусе. Планировщик глубокого анализа проверяет их работу и либо подтверждает успех, либо переназначает задачу.
1# opencode.json2{3 "$schema": "https://opencode.ai/config.json",4 "model": "google-vertex/gemini-flash-latest",5 "agent": {6 "plan": {7 "model": "google-vertex/gemini-flash-latest"8 },9 "build": {10 "model": "google-vertex/gemini-flash-latest"11 },12 "worker": {13 "model": "google-vertex/gemini-3.8-flash",14 "mode": "primary",15 "description": "General worker agent using gemini-3.8-flash"16 },17 "deep-thinker": {18 "model": "google-vertex-anthropic/claude-fable-5-1@default",19 "mode": "primary",20 "description": "Deep thinking agent using Claude Fable 5.1"21 }22 },23...
Кастомные агенты «как сервис» (Google ADK, LangGraph, собственный код и т.д.)
При создании собственных агентных сред и сервисов у вас есть полная архитектурная свобода.
- Адаптируйте среду под модель: Дайте Gemini 3.8 Flash 3–5 сфокусированных инструментов (
read_file,write_file,run_tests) со строгими JSON-схемами. Быстрые модели отлично справляются с целевым исполнением, но каталог из 50 инструментов вызывает путаницу в параметрах и расходует контекст впустую. Дайте Claude Fable 5.1 архитектурную документацию, схемы и руководства, но ограничьте прямые права на запись файлов. - Опирайтесь на Eval: Не гадайте, какая модель подходит для какого узла. Запускайте автоматизированные наборы оценочных тестов с детерминированными проверками утверждений на задачах вашего репозитория, чтобы найти случаи, где меньшая модель обеспечивает 95% качества при 10% стоимости. Легко сказать, но трудно сделать: сложно понять, какие сценарии вы хотите оценить. Ознакомьтесь с нашими 5-дневными курсами на Kaggle (агенты, вайб-кодинг) для получения дополнительной информации.
- Используйте паттерн эскалации «Запрос помощи»: Начинайте каждый входящий запрос с быстрой рабочей модели. Дайте рабочему агенту явный инструмент:
ask_for_help(reason, failed_attempts, context). Рабочий агент обрабатывает 85–90% запросов напрямую. Эскалация происходит только при неоднозначности, необратимых действиях или двух последовательных сбоях инструмента.
Реальность автоматизированных «умных» маршрутизаторов моделей
Умные маршрутизаторы имеют долгую историю в предиктивном машинном обучении (рекламные технологии, обнаружение мошенничества). Многокоридорные бандиты (multi-armed bandits) и маршрутизаторы «стоимость-качество» зрелые, потому что признаки табличные, входные данные ограничены, а обратная связь (клики, возвраты средств) поступает немедленно и может измеряться на длинном горизонте.
В генеративном ИИ многоходовые агенты — это другая история. Динамические маршрутизаторы могут сталкиваться с тремя проблемами в продакшене:
- Контекст одного хода может не содержать достаточного сигнала о задаче для выбора модели.
- Метрики успеха четко не экстраполируются на признаки, поэтому маршрутизатор не может быстро «обучиться».
- Неверные решения перезапускаются на другом пути, съедая потенциальную экономию и добавляя задержку.
Вердикт: Держите это просто. Композируйте своих агентов явно и маршрутизируйте по границам задач. Определите четкие роли и позвольте конкретным программным проверкам или человеческому намерению управлять передачей задач.
4. Уравнение ROI токенов: за что вы на самом деле платите?
Сырые прайс-листы ($/1M токенов) — плохая карта производственной ценности. Расчет затрат — лишь часть уравнения. Невозможно дать расчет, который всегда будет работать во всех сферах: программировании, продуктах, производстве и любой другой решаемой задаче.
Отправной точкой может стать размышление о бизнес-ценности, которую вы получаете.
- Стоимость сэкономленного человеческого времени, выполнение сотрудниками большего объема работы и сокращение времени на рутину и автоматизированные задачи.
- Ценность более быстрого вывода функций в продакшен при одновременном повышении удовлетворенности клиентов и их удержания благодаря этим функциям.
- Предотвращенные ошибки и избежанные простои в продакшене благодаря улучшенным механизмам защиты и инженерным практикам.
Вычтите стоимость токенов и затраты на повышение квалификации вашей команды для создания и управления их агентами, и вы получите приблизительный расчет ROI.

Вы можете влиять на эти расчеты, используя меньше и более дешевых токенов, но, вероятно, наибольшее влияние окажет выполнение большего объема работы быстрее. Выбирайте задачи с высоким рычагом воздействия. Выбирайте задачи, которые приводят к экономии накладных расходов или увеличению выручки, которые можно проверить и которые стоит автоматизировать. И при декомпозиции этих задач, возможно, вы захотите глубоко задуматься и спланировать, будучи готовыми платить больше и ждать, или же вы захотите выполнить задачу быстро и надежно. Вам понадобится и то, и другое.
«Токеномика» сейчас горячая тема, и существует множество способов снизить затраты и максимизировать ценность. Главный смысл этой статьи в том, что очень просто настроить несколько разных агентов на двух моделях с разными профилями и самостоятельно маршрутизировать задачи. Это самая простая точка входа.
Если вам полезен этот разбор, ознакомьтесь с нашей предыдущей статьей о 5 вещах, которые каждый AI-инженер должен знать о песочницах агентов. Подписывайтесь на @GoogleCloudTech и @zeroasterisk, чтобы читать больше подробных разборов из окопов разработчиков.





