Featured image of post Как Fable 5 воскресил мою заброшенную научную работу

Как Fable 5 воскресил мою заброшенную научную работу

Опыт работы с Fable 5 от Anthropic: первая задача на 4 с плюсом, схема делегирования между Opus и Cursor и воскрешение проекта распознавания звёздного неба, заброшенного много лет назад.

Хочу поделиться своим опытом использования модели Fable 5 от Anthropic. Сейчас это горячая тема, так как модель доступна ограниченное время по подписке. До этого момента я воздерживался от подписки Claude Code - хватало возможностей Cursor для кодинга и Codex для проектирования и сложных задач. Но активная маркетинговая кампания и buzz в чатах простимулировали всё-таки попробовать.

Первый заход: 4 с плюсом

С первой задачей Fable 5 справился… ну не знаю, скорее на 4 с плюсом. Дал ему доработать сложный проект с STT, написанный на Rust + Tauri. Нужно было внедрить мультиязычность в desktop-приложение и сделать onboarding для новых пользователей. Результат в целом получился, но где-то местами поехала вёрстка, где-то онбординг оказался сложен для “нулевого пользователя” (в плане скачивания моделей). То есть дорабатывать ещё много, но прогресс хороший - всю базовую работу модель сделала самостоятельно.

Из очевидных проблем: я запустил сессию полностью на Fable 5, без субагентов на другие модели. В итоге за полчаса он съел всё 5-часовое окно, и параллельные задачи на Opus были прерваны. Понятно, что этого следовало ожидать, но это был первый опыт запуска.

Незакрытый гештальт

Второй заход для Fable 5 был связан с моей бывшей научной работой, которую я давно забросил. В студенческие времена я занимался алгоритмами астрономической ориентации по звёздам: писал курсовые, дипломную работу и даже начинал кандидатскую диссертацию на эту тему. Но в какой-то момент мне это перестало быть интересным, и я ушёл в веб-программирование.

И вот спустя много лет, когда появились кодинговые агенты, я подумал - а почему бы не попробовать? Честно говоря, сама тематика мне интересна не столько с инженерной точки зрения, сколько с пользовательской. У меня был определённый незакрытый гештальт. Когда я выступал на конференциях, я даже пробовал сделать живой тестовый стенд: помню, как на юге включал свой нетбук, крепил к нему CCTV-камеру и показывал, как приложение распознаёт звёзды со снимков. Но на тот момент оно работало посредственно - по сути была только внутренняя начинка без красивого визуала. После того как интерес угас, работа завалилась куда-то в архив.

Месяца три назад я решил попробовать её воскресить. Набросал с агентом план, заложил требования и… снова забил :-) Проблемой было то, что нужно было заниматься оркестрацией, следить за деталями работы агентов, и я попросту переключился на более интересные мне технические темы (агентская память, приложения для стриминга, персональная база знаний).

И вот… выходит Fable 5! А почему бы не дать ему такую задачу? Пусть сам всё прооркестрирует и напишет полноценное приложение - он же такая мощная модель (как заявлено разработчиком)!

Рабочая схема делегирования

Дальше я учёл опыт первой задачи (не стоит прям всё сваливать на Fable), а также узнал опыт других разработчиков из чатов. Рекомендация логичная: пусть Fable делает самую сложную работу, а более простую - делегируйте моделям попроще.

У меня как раз начала складываться рабочая схема. Сложные задачи и deep research я делегирую субагенту на Opus, а более линейные задачи средней и низкой сложности - через Cursor модели Composer 2.5. Честно говоря, мне эта модель очень нравится: Cursor получилось хорошо её прокачать, и при этом она относится к бюджетному классу.

Буквально недавно столкнулся с интересным опытом. Делегировал хорошо проработанную задачу на Sonnet 4.6. Я привык работать в связке “умная модель” (GPT-5.5 / Opus 4.8) для детального проектирования и “рабочая модель” для реализации. Каково же было моё удивление, когда Sonnet очень сильно “налажал”: там, где Composer 2.5 с лёгкостью справляется, следует инструкциям из скиллов и смотрит соседний код, Sonnet совершил критические ошибки. Интереса ради я потом запустил эту же задачу полностью на Opus 4.8 и полностью на Composer 2.5. Opus справился на 5: всё архитектурно чисто, соблюдены слои абстракций, правильно сделано взаимодействие с внешним сервисом (тут важно было “подсмотреть”, как сделано соседнее решение, - Sonnet этого не сделал и в итоге даже нарушил контракт из проектирования). На Composer 2.5 тоже получилось хорошее решение без критических замечаний, но не такое архитектурно чистое (местами не соблюдены слои абстракций, хотя и не критично). Может быть, опишу этот опыт подробнее в одном из следующих постов.

Как оказалось, интегрировать Claude Code и Cursor не так уж и сложно - есть плагин cursor-plugin-cc (по сути аналог codex-plugin-cc для интеграции Codex). Я как раз успел набить с этим взаимодействием несколько шишек и написать скилл для более качественного делегирования задач.

Запуск

Теперь переходим к сути. Вот буквально тот промт, который я дал Fable на вход:

Хочу довести этот проект до рабочего состояния.

Цель проекта - получить GUI приложение для распознавания снимков звездного неба. Изучи концепцию проекта.

Конечная цель работы - в GUI (Desktop) приложении должна быть возможность загрузить снимок, запустить процедуру распознавания и на оверлее (поверх снимка) нарисовать созвездия. Так же отметить наиболее яркие светила. Из задачи со звездочкой - отмечать планеты.

В директории data/input приложил реальные снимки звездного неба. Хочу чтобы именно на них вся система заработала. По сути можно считать это acceptance criteria.

По технической части - приложение на Rust + Tauri. Дизайн продумай сам. Он должен быть удобным и красивым (импортируй нужные скиллы из хаба скиллов - см. ~/work/agentmem, ~/work/skills). По алгоритмический части - нужно найти золотую середину. Начать можно с неоптимальных алгоритмов, но к конечному результату лучше добиться хорошей эффективности, но не слишком сильно уходить в микрооптимизации.

Перед запуском в работу имеет смысл сделать Deep Research на тематику с помощью субагента Opus и сверить стратегическое направление.

Так же перед разработкой проверь окружение - установлен ли rust, скачаны ли базы данных (лучше hyg_v42)? Если самостоятельно это не получится сделать, то сразу сигнализируй.

Сам процесс разработки распланируй и бери в работу поэтапно. Сложные части делегируй субагентам Opus, более линейные и определенные задачи через Cursor (см. скилл task-delegation).

И он ушёл работать. Надолго. Пришлось даже его перезапускать - не уложился в одно 5-часовое окно на тарифе Max. В общей сложности работал около 4-5 часов.

Результат

Вот результат, который ждал меня в пулл-реквесте - оно работает! Приложение успешно распознаёт звёзды на моих снимках 15-летней давности, сделанных на CCTV-камеру:

StarGlyph: распознавание Кассиопеи на снимке g128_40ms_1s.bmp

После этого я ещё попросил сделать презентацию для уровня студентов. Получилось тоже очень прилично - как будто можно взять и выходить завтра на защиту :-) Саму презентацию можно посмотреть прямо в блоге: StarGlyph - слепое распознавание звёздного неба .

Получившийся исходный код выложил в открытый доступ: github.com/starglyph/engine .

Итог

Fable действительно оказался хорош и смог справиться с такой объёмной задачей без единого уточняющего вопроса. Жаль, что по подписке он доступен совсем недолго… Цена на API сильно кусается. Хотя, думаю, скоро нас всех ждут корректировки на любые виды ИИ-подписок :-)

Создано при помощи Hugo
Тема Stack, дизайн Jimmy