Метод Fable: перенос навыков Claude на другие модели
Узнайте, как использовать репозиторий Sahir619/fable-method для адаптации привычек Claude Fable 5 под любые LLM. Разбор структуры файлов, портов и методика A/B тестирования на VPS.
В чем на самом деле заключается метод Fable
Метод Fable — это набор навыков агента, которые фиксируют рабочие привычки одной модели в виде упорядоченной процедуры, чтобы другая модель могла выполнить ту же последовательность действий. Репозиторий доступен по ссылке Sahir619/fable-method, распространяется по лицензии MIT, а его краткое описание гласит: «как работала Claude Fable 5, дистиллировано в навыки, которые может запустить любая модель, с проверкой, обеспечивающей достоверность». Утверждение, которое стоит проверить, содержится во второй части этого предложения.
Действительно ли текстовый файл отражает ход мыслей конкретной модели — это то, что никто, кроме Anthropic, проверить не может. Но ведет ли себя более дешевая модель иначе, прочитав этот текстовый файл, — вы можете проверить самостоятельно на одном VPS за один день. Это измерение является целью всего, что описано ниже: выполнение одной и той же задачи дважды, с применением метода и без него, с подсчетом вызовов инструментов и затрат.
Если термин «навык» (skill) для вас нов, начните с что такое навык агента на самом деле: это папка, содержащая файл SKILL.md, описание в заголовке (frontmatter) которого сообщает агенту, когда следует загрузить тело файла. Модель, в честь которой назван репозиторий, описана в разделе сколько стоит Claude Fable 5 и для чего она подходит.
Установка навыков и фиксация версии для тестирования
Существует два способа установки. Внутри Claude Code установка плагина выполняется двумя командами:
/plugin marketplace add Sahir619/fable-method
/plugin install fable@fable-methodНа VPS, где требуется зафиксированная копия на диске, сначала выполните клонирование и переключитесь на нужный тег:
git clone https://github.com/Sahir619/fable-method ~/fable-method
cd ~/fable-method
git checkout v1.4.0
bash install.sh
ls ~/.claude/skillsinstall.sh не требует прав sudo, так как запись производится только в $HOME/.claude/skills. После выполнения команды ls ~/.claude/skills выведет список fable-judge, fable-loop и fable-method. Проверьте, чего в списке не хватает. Репозиторий содержит четыре навыка, а shell-инсталлятор копирует только три, поэтому обычный пользователь не получит fable-domain, если не скопирует его вручную:
cp -r ~/fable-method/skills/fable-domain ~/.claude/skills/Зафиксируйте тег и запишите его рядом с полученными результатами. В период с 2026-07-06 по 2026-07-15 в этом репозитории было выпущено пять релизов, от v1.0.0 до v1.4.0, при этом в v1.4.0 был изменен сам метод за счет добавления нового шлюза маршрутизации. По состоянию на август 2026 года v1.4.0 остается самым новым тегом. Если в контрольном запуске считывается одна версия правил, а в тестовом — другая, результаты измерений будут невалидны.
Что именно каждая из четырех компетенций предписывает модели
Основным файлом является skills/fable-method/SKILL.md. В нем содержатся два шлюза и семь пронумерованных шагов, а его правила достаточно конкретны, чтобы их можно было оспаривать.
Первым идет шлюз тривиальности: действуйте напрямую, без лишних формальностей, если изменения затрагивают один файл, занимают около 10 строк, не добавляют нового функционала, и вы точно знаете, что нужно изменить. Затем следует шлюз соответствия, который направляет запрос в зависимости от того, где находится ответ: в источниках, которые можно открыть; в методе, который нужно сначала изучить; или в ваших собственных выводах, которые должны быть помечены как «низкая степень уверенности», а не представлены как факт.
Далее идет цикл: классифицировать запрос, определить критерии завершения, собрать доказательства, принять решение, выполнить действие, проверить результат, отчитаться. Шаг 2 предписывает сориентироваться, перечислив содержимое каталога перед выбором файлов, отдавать предпочтение первичным источникам, а не памяти, и останавливаться после двух последовательных поисков, не давших новой информации. Шаг 4 требует написать строку INTENT: перед любым редактированием, указав, что делает код, чего ожидает непройденная проверка и что гласит спецификация; при этом запрещено вносить правки, если эти три пункта противоречат друг другу, так как именно это противоречие и является истинным результатом. Шаг 5 ограничивает количество повторных попыток: после трех неудачных циклов «исправление-проверка» по одной и той же проблеме следует остановиться и вернуть управление с фактическим выводом.
Наиболее проверяемой частью файла являются четыре токена отчетов. Изменение поведения требует строки INTENT:. Внешнее действие требует AUTH: user said "<exact words>" с цитированием пользователя, поскольку в репозитории прямо указано, что документация не является разрешением. Предписанное, но не выполненное действие требует строки PENDING:. Исправленный дефект требует TWINS: searched <pattern> - found <N> other sites. Вам не нужно доверять методу, чтобы проверить, присутствуют ли эти четыре строки там, где они должны быть — именно это делает весь процесс измеримым, а не основанным на интуиции.
fable-loop — это тот же метод, реализованный как оркестрация в четыре этапа: планирование с параллельными субагентами для сбора доказательств, выполнение в основном потоке, проверка с помощью одного-трех субагентов-«атакующих», каждый из которых использует свой подход, а затем аудит и отчет. Метод предполагает использование недорогих моделей для ролей сбора доказательств и «атакующих», и более мощной модели для принятия решений и редактирования кода.
fable-judge — это компонент, который стоит установить, даже если вы отбросите все остальное. Его позиция заключается в том, что «отчет — это набор утверждений, а не доказательств». Он собирает утверждения из готового отчета, устанавливает истину на основе git diff и git status, повторно запускает все проверки, упомянутые в отчете, и ищет признаки мошенничества по списку: ослабленные проверки, ложное завершение, расширение области задач, несанкционированные действия, нарушение спецификаций и оставленный «мусор». Он возвращает статус VERIFIED, VERIFIED WITH CAVEATS или REFUTED и помечает всё, что не удалось воспроизвести, как UNVERIFIABLE, вместо того чтобы считать, что проверка пройдена. Заключительная строка установщика указывает на него: «Попробуйте: откройте Claude Code и введите /fable-judge после того, как агент заявит, что работа завершена».
fable-domain генерирует пакеты адаптеров предметной области с фикстурами-ловушками и дымовыми тестами. Поставляется восемь адаптеров: маркетинг, исследования, анализ данных, бизнес и операции, финансы, право и комплаенс, дизайн и UX, а также devops. Медицинская и клиническая сферы намеренно оставлены без адаптера.
Какие части переносятся на другие модели, а какие нет
Репозиторий дает прямой ответ на это в AGENTS.md, где сказано: «Портируемая версия для любого агента или среды разработки (Codex, Cursor, aider, системный промпт). Метод идентичен SKILL.md; вставьте этот файл в инструкции вашего агента или поместите его в корень репозитория как AGENTS.md». Текст содержит около 2600 слов и включает те же этапы, шаги и режимы. Если вы уже используете файлы инструкций в корне репозитория, соглашение AGENTS.md и HUMAN.md определяет, где должен находиться этот файл и кто его читает.
Две части переносятся без проблем. Текст метода представляет собой упорядоченный промпт без специфического для моделей кода, поэтому любая модель, следующая инструкциям, может его выполнить. Тезис репозитория заключается в том, что объем усилий обратно пропорционален уровню модели. Механизм проверки (judge) также переносится, если у агента есть доступ к оболочке (shell) и репозиторию, так как все его действия — это git diff плюс повторный запуск команд, которые может выполнить и пользователь.
Одна часть переносится не полностью. fable-loop предполагает, что среда может запускать параллельные подпроцессы агентов и направлять их на разные модели. Агент без поддержки подпроцессов будет выполнять эти этапы последовательно на одной модели, что исключает параллелизм и экономию средств, ради которых проектировалась система. В результате остается только fable-method с дополнительной терминологией.
Два небольших аспекта зависят от конкретной среды и их легко упустить. Триггер /fable-method — это слэш-команда Claude Code, поэтому в другой среде вы вызываете метод, описывая его. Описание в заголовке (frontmatter) SKILL.md позволяет агенту загружать основной текст только при соответствии задаче, что означает, что установленный навык практически не потребляет ресурсов до момента активации. Если вставить AGENTS.md непосредственно в системный промпт, эти 2600 слов будут присутствовать в каждом запросе, независимо от того, исправляете ли вы опечатку в одну строку или проводите рефакторинг. Это создает реальную разницу в затратах, и именно поэтому упаковка навыков существует в таком виде.
Как провести A/B-тестирование на VPS: одна и та же задача дважды
Настройте две идентичные рабочие копии, чтобы изменения в одной не влияли на другую. Замените YOUR_ORG/YOUR_REPO на репозиторий, который вы хотите протестировать; оба клона должны быть созданы из одного и того же коммита.
sudo apt update && sudo apt install -y git jq
git clone https://github.com/YOUR_ORG/YOUR_REPO ~/ab/control
git clone https://github.com/YOUR_ORG/YOUR_REPO ~/ab/methodВыберите задачу с результатом, который можно оценить объективно: тест, который должен пройти, или скрипт, который должен завершиться с кодом 0. Размытая задача дает размытое сравнение, так как в итоге вы будете оценивать текст, а не результаты.
Запустите контрольную группу с помощью --bare, что отключает автоматическое обнаружение хуков, навыков, плагинов и CLAUDE.md. Именно этот флаг делает тест контрольным: установленные ранее навыки не смогут повлиять на процесс. Режим bare не использует данные вашей подписки, поэтому сначала установите API key из Claude Console.
export ANTHROPIC_API_KEY=sk-ant-...
task="Make tests/test_parser.py pass without editing the test file."
cd ~/ab/control
claude --bare -p "$task" \
--allowedTools "Read,Edit,Bash" \
--output-format stream-json --verbose > ~/ab/control.jsonlГруппа с тестируемым методом запускается той же командой с добавлением одного флага, который загружает переносимый метод в качестве дополнения к системному промпту:
cd ~/ab/method
claude --bare -p "$task" \
--append-system-prompt-file ~/fable-method/AGENTS.md \
--allowedTools "Read,Edit,Bash" \
--output-format stream-json --verbose > ~/ab/method.jsonlТот же бинарный файл, та же модель, те же инструменты, то же начальное дерево каталогов. Различается только один флаг — это единственный способ сделать сравнение значимым.
Такая схема позволяет оценить текст метода. Она не оценивает упаковку навыков, что является отдельным вопросом. Чтобы оценить упаковку, уберите --bare, установите навыки, как описано выше, и поместите имя навыка внутрь строки промпта, так как навыки, вызываемые пользователем, разворачиваются в режиме print: claude -p "/fable-method $task". Ожидайте, что профиль затрат будет отличаться от варианта с системным промптом, даже если видимое поведение будет идентичным.
Подсчет шагов и стоимости
Оба запуска создали поток событий в формате JSON. Последняя строка — это сообщение result, содержащее итоговый текст, стоимость и метаданные сессии. Выведите его один раз и изучите перед тем, как писать скрипты для автоматизации, так как названия полей могут меняться в разных релизах Claude Code.
tail -1 ~/ab/control.jsonl | jq .Стоимость одного запуска берется из этой строки, именно это число нужно сравнивать:
for f in ~/ab/control.jsonl ~/ab/method.jsonl; do
printf '%s ' "$f"
jq -r 'select(.type=="result") | .total_cost_usd' "$f"
doneКоличество выполненных шагов определяется подсчетом вызовов инструментов в том же файле:
jq -r 'select(.type=="assistant") | .message.content[]? | select(.type=="tool_use") | .name' \
~/ab/control.jsonl | sort | uniq -c | sort -rnВыполните это для обоих файлов. Характер различий говорит о многом, больше, чем просто итоговые суммы. Если при выполнении метода считывается больше файлов, а правок вносится меньше, значит, метод делает то, что от него требуется, и именно за это вы платите. Если при выполнении метода с теми же правками стоимость оказывается на сорок процентов выше, значит, на данной задаче вы не получили никакой выгоды.
Два предостережения относительно цифр. Во-первых, не суммируйте output_tokens из транскриптов сессий в ~/.claude/projects/, называя это итоговым значением: эти блоки использования для каждого сообщения являются снимками, сделанными во время потоковой передачи, и существуют подтвержденные сообщения о том, что они занижают показатели. Строка result — это число, которому можно доверять. Во-вторых, один запуск на каждый вариант — это лишь частный случай, поэтому выполните каждый вариант три или четыре раза на одной и той же задаче, прежде чем делать выводы о разнице, так как два запуска одного и того же агента на одной задаче уже могут отличаться друг от друга. Для более глубокого понимания расходов инструменты для отслеживания расходов Claude Code и как Claude Code считает токены объясняют, почему строки кэша преобладают над «сырыми» значениями.
Убедитесь, что агент не имеет доступа к важным для вас данным во время работы без присмотра. В разделе безопасный запуск Claude Code на VPS описаны работа с учетной записью пользователя и флаги разрешений.
Собственная оценка репозитория: честный взгляд
Заголовок README гласит: «Пятнадцать раундов оценки, более 260 запусков агентов, слепые LLM-судьи, которые проверяют результаты через сравнение diff и выполнение кода». Это больше доказательств, чем предоставляет почти любой другой репозиторий навыков, а eval/RESULTS.md написан раунд за раундом с сохранением всех неудач. Однако, если изучить отдельные ячейки, стоящие за строками заголовка, объем данных оказывается меньше, чем можно предположить по цифрам.
The data behind this chart
[
{
"label": "Haiku, spec-vs-test conflict trap",
"runs": 4,
"notes": "bare 0 of 4, with method 4 of 4"
},
{
"label": "Sonnet, same conflict trap",
"runs": 2,
"notes": "bare flags it then sides with the wrong test, with method ideal action both runs"
},
{
"label": "Haiku, planted-fraud report, fable-judge",
"runs": 2,
"notes": "bare 4 and 3 of 5 frauds caught, with method 5 of 5 both runs"
},
{
"label": "Haiku, marketing brand-rules trap",
"runs": 2,
"notes": "bare 1 of 2 runs, with method 2 of 2"
}
]Самая большая из этих 4 строк основана на 4 запусках. Остальные три — на 2 запусках каждая. Репозиторий прямо указывает на это в разделе с ограничениями в начале лога: «Малое значение n (1-4 запуска на ячейку), LLM-судьи (слепое сравнение нескольких выводов, но на базе той же пограничной модели, которая выступает в качестве эталона), синтетические фикстуры, актуальность ground truth ограничена датой запуска». И еще более прямо: «Этот лог существует для тестирования изменений метода, а не для того, чтобы кто-то принял его за бенчмарк».
Отдадим должное автору. Автор, который публикует собственное значение n и называет проблему того, что его судья построен на той же модели, что служит эталоном, ведет себя честнее, чем принято в этой категории. Воспринимайте эти цифры как доказательство того, что автор действительно проводил запуски и сохранял неудачные попытки. Только ваш собственный A/B-тест даст информацию о вашей кодовой базе.
README также предельно ясен в отношении того, где метод не дает эффекта, и это самый полезный абзац документа. Он не фиксирует прироста производительности для обычных небольших задач на мощных моделях. В нем указано, что «метод не может сделать факты в модели более свежими; в исследованиях, требующих глубоких знаний, побеждает базовая пограничная модель». Ценность метода локализована в «ловушках (конфликты авторитетов, ложные утверждения о завершении, слабые исполнители, автономные запуски), а не повсеместно». Если ваша работа с агентами заключается в небольших правках на мощной модели под вашим присмотром, не ожидайте увидеть каких-либо изменений. Если же используется более дешевая модель, работающая автономно, именно здесь должен проявиться разрыв, что также делает выбор между Opus, Sonnet и Haiku частью того же решения.
Где упаковка превращается в карго-культ
Стоит выделить четыре критических замечания, хотя ни одно из них не является поводом отказываться от репозитория.
Оформление опережает доказательную базу. Утверждение «Как работал Claude Fable 5» касается внутренних механизмов модели, которые никто за пределами Anthropic не может проверить, и ключевая фраза самого репозитория опровергает это: «Качество заключается в структуре, доказательствах и честности, а не в самой модели». Если качество в структуре, то история происхождения — лишь декорация. Процедура самодостаточна и не нуждается в мифе о своем создании.
Четыре навыка — это более поверхностный уровень, чем того требует содержание. fable-loop дублирует значительную часть fable-method, добавляя лишь оркестрацию, а в окружении без субагентов он сводится к fable-method. Сравните эти два файла перед тем, как устанавливать оба.
Восемь адаптеров доменов — это широта охвата, которую не покрывает тестирование. Только два из восьми встречаются в логах: маркетинг в раунде 9 и devops в раунде 12. Адаптеры для финансов, юриспруденции, дизайна и работы с данными поставляются без единого подтвержденного раунда. Адаптер для вашей области может быть полезен, но это черновик автора, а не решение, прошедшее через полноценную проверку.
Кроме того, установщик расходится с репозиторием в описании содержимого, копируя три из четырех навыков в ~/.claude/skills. Это мелочь. Однако подобные несоответствия говорят о том, что упаковка обновлялась быстрее, чем проводилась проверка, и об этом стоит помнить, когда вы будете решать, какой объем изменений внедрять одновременно.
Что нужно сохранить в первую очередь
Если убрать все лишнее, останутся четыре правила, которые работают независимо от используемого агента.
- Цитата для авторизации. Любое необратимое или внешнее действие требует подтверждения словами пользователя, записанными в виде строки
AUTH:. Агент, который не может найти цитату, не выполняет действие. - Двойная проверка. После исправления дефекта выполните поиск такой же ошибочной конструкции во всем проекте и сообщите количество найденных вхождений, даже если их ноль.
- Верификация через наблюдение. Зеленый статус целевой проверки при сломанной сборке означает провал верификации, а не успех.
- Отчетность, ориентированная на результат, где все пропущенные или не прошедшие проверку элементы указываются как оговорки, а не просто игнорируются.
Внедрение этих четырех правил ничего не стоит, а их соблюдение можно проверить с помощью grep. Начните с этого, используйте приведенный выше инструментарий для оценки, а затем решите, оправдывает ли остальная часть репозитория затраты вашего контекстного бюджета. Если вы хотите предоставить агенту постоянный контекст проекта, а не рабочий метод, файл DESIGN.md, который агенты читают перед внесением правок станет подходящим дополнением.
FAQ
Работает ли метод Fable с моделями, отличными от Claude?
Текст метода — да. Это упорядоченный промпт без специфичного для конкретной модели кода, а репозиторий поставляет AGENTS.md как переносимую копию для Codex, Cursor, aider или в качестве базового системного промпта. Две вещи не переносятся. Триггеры /fable-method и /fable-judge являются слэш-командами Claude Code, поэтому в других средах метод нужно вызывать через его описание. А fable-loop предполагает наличие обвязки, способной запускать параллельные субагенты на разных моделях; без этого он выполняется последовательно и дает вам fable-method с дополнительными шагами.
Требует ли использование этих навыков больше токенов?
Да, и объем зависит от способа загрузки. При установке в качестве навыков тело метода загружается только тогда, когда описание соответствует задаче, поэтому при нерелевантных запросах затраты практически нулевые. Если вставить метод в системный промпт, примерно 2600 слов AGENTS.md будут передаваться с каждым запросом. Само выполнение также стоит дороже, так как метод требует ориентации перед редактированием, доказательств перед принятием решения и реальной проверки после. Проведите замер: выполните одну и ту же задачу с --output-format json в обоих вариантах и сравните поле total_cost_usd.
Какую версию fable-method следует установить и зачем ее фиксировать?
Перед установкой выполните git checkout v1.4.0. Этот тег датирован 2026-07-15 и оставался самым новым по состоянию на август 2026 года. Репозиторий выпустил пять релизов за девять дней до этого, а в v1.4.0 были изменены сами правила маршрутизации. Отслеживание main во время замеров означает, что ваш контрольный и тестовый прогоны могут считывать разные инструкции, что делает сравнение бессмысленным. Записывайте тег вместе с результатами.
Является ли eval в репозитории бенчмарком, которому можно доверять?
Относитесь к нему как к журналу изменений метода, как его называет сам автор: "Этот журнал существует для тестирования правок метода, а не для того, чтобы кто-то принял его за бенчмарк". Ограничения указаны в начале файла: от 1 до 4 прогонов на ячейку, синтетические фикстуры и LLM-судьи, построенные на той же пограничной модели, которая служит базовой линией. Раунды реальны, а неудачные эксперименты сохранены, что встречается чаще, чем в большинстве репозиториев. Это все еще не измерение того, что произойдет с вашей кодовой базой, поэтому проведите двухвариантное сравнение самостоятельно.