Метод 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, описание в заголовке которого подсказывает агенту, когда следует загрузить основной текст. Модель, в честь которой назван репозиторий, описана в разделе сколько стоит 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-инсталлятор версии v1.4.0 копирует только три, поэтому отдельный пользователь не получит fable-domain, если не скопирует его вручную:
cp -r ~/fable-method/skills/fable-domain ~/.claude/skills/Зафиксируйте тег и запишите его рядом с полученными результатами. В журнале изменений указано пять версий в период с 2026-07-06 по 2026-07-15, от 1.0.0 до 1.4.0, но теги были присвоены только четырем (v1.0.0, v1.1.0, v1.2.0 и v1.4.0), а в качестве релизов на GitHub вышли только v1.2.0 и v1.4.0. Тега v1.3.0 не существует; в примечаниях к релизу v1.4.0 указано, что он включает в себя все изменения из невыпущенной версии v1.3.0. В версии v1.4.0 был изменен сам метод за счет добавления нового шлюза маршрутизации. По состоянию на октябрь 2026 года v1.4.0 остается самым новым тегом, но main ушел дальше: коммит от 2026-10-03 добавил цель установки Codex и заставил install.sh копировать все четыре навыка, однако ни один тег пока не содержит этого изменения. Если в контрольном запуске считывается одна версия правил, а в тестовом — другая, результаты измерений будут невалидны.
Что именно предписывает модели каждый из четырех навыков
Основным файлом является skills/fable-method/SKILL.md. Он содержит два шлюза и семь пронумерованных шагов, а его правила достаточно конкретны, чтобы их можно было обсуждать.
Первым идет шлюз тривиальности: действуйте напрямую, без лишних формальностей, если изменение затрагивает один файл, занимает около 10 строк, не добавляет нового поведения, и вы уже точно знаете, что нужно изменить. На одном только этом инстинкте построен отдельный навык — Ponytail, который подталкивает агента к внесению минимально необходимых изменений, и его основное правило достаточно короткое, чтобы скопировать его в собственные инструкции без установки чего-либо. Далее следует шлюз соответствия, который направляет запрос в зависимости от того, где находится ответ: в источниках, которые можно открыть, в технике, которую нужно сначала изучить, или в ваших собственных выводах, которые должны быть помечены как «низкая степень уверенности», а не представлены как факт. Эта средняя ветка работает только в том случае, если агент действительно имеет доступ к сети, что на защищенном VPS означает предоставление ему собственного поискового бэкенда, например, самостоятельно развернутого экземпляра SearXNG, представленного как инструмент поиска JSON.
Затем цикл: классификация запроса, определение критериев завершения, сбор доказательств, принятие решения, действие, проверка, отчет. Шаг 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 после того, как агент заявит о завершении работы». Если вы предпочитаете встраивать эту проверку в процесс работы, а не запускать её после, навык Old Coder позволяет агенту создать SPEC, который вы одобряете, и отчет EVIDENCE, который вы можете перепроверить самостоятельно, используя мутационное тестирование вместо покрытия как доказательство того, что тест действительно обнаружит регрессию.
fable-domain генерирует пакеты адаптеров доменов с фикстурами-ловушками и smoke-тестами. Поставляется восемь адаптеров: маркетинг, исследования, анализ данных, бизнес и операции, финансы, юридические вопросы и соответствие требованиям, дизайн и UX, а также devops. Медицинская и клиническая сферы намеренно оставлены без адаптера.
Какие части переносятся на другую модель, а какие нет
Репозиторий отвечает на это напрямую с помощью AGENTS.md, который начинается так: «Портативная версия для любого агента кодинга или обвязки (Codex, Cursor, aider, необработанный системный промпт). Метод идентичен SKILL.md; вставьте этот файл в инструкции вашего агента или поместите его в корень репозитория как AGENTS.md». Он содержит около 2600 слов и включает те же шлюзы, этапы и режимы. Если вы уже используете файлы инструкций в корне репозитория, соглашение AGENTS.md и HUMAN.md описывает, где должен находиться этот файл и кто его читает.
Две части переносятся без проблем. Текст метода — это упорядоченный промпт без специфического для модели кода, поэтому любая модель, следующая инструкциям, может его выполнить, а тезис репозитория заключается в том, что эффективность (lift) обратно пропорциональна уровню модели. Оценщик (judge) также переносится, если у агента есть оболочка (shell) и репозиторий, поскольку все его действия — это git diff плюс повторный запуск команд, которые может выполнить и читатель.
Одна часть переносится не полностью. fable-loop предполагает, что обвязка может порождать параллельных субагентов и направлять их к разным моделям. Агент без субагентов выполняет эти этапы последовательно на одной модели, что устраняет параллелизм и экономию средств, которые оправдывали дизайн. В итоге остается fable-method с дополнительным словарем.
Две небольшие детали зависят от обвязки, и их легко упустить. Триггер /fable-method — это слэш-команда Claude Code, поэтому в другой обвязке вы вызываете метод, описывая его. А описание в метаданных 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 написан раунд за раундом с сохранением всех неудач. Однако при детальном изучении отдельных ячеек за итоговыми строками объем данных оказывается меньше, чем предполагает заголовок.
Данные, на которых построен график
[
{
"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-судьи (слепое сравнение при наличии нескольких выводов, но на базе той же frontier-модели, которая выступает в качестве базовой линии), синтетические фикстуры, актуальность эталонных данных ограничена датой запуска». И еще более прямо: «Этот лог существует для тестирования изменений метода, а не для того, чтобы кто-то принял его за бенчмарк».
Отдадим должное автору. Автор, который публикует собственное значение n и называет проблему того, что судья построен на той же модели, что и базовая линия, ведет себя честнее, чем принято в этой категории. Воспринимайте эти цифры как доказательство того, что автор действительно проводил запуски и фиксировал ошибки. Только ваш собственный A/B-тест даст информацию о вашей кодовой базе.
README также предельно ясен в отношении того, где метод не дает эффекта, и это самый полезный абзац. Он не фиксирует прироста производительности для обычных небольших задач на мощных моделях. В нем указано, что «метод не может сделать факты в модели более свежими; в исследованиях, требующих глубоких знаний, побеждает базовая frontier-модель». Автор определяет ценность метода в «ловушках (конфликты полномочий, ложные утверждения о завершении, слабые исполнители, автономные запуски), а не повсеместно». Если ваша работа с агентами заключается в небольших правках на мощной модели под вашим присмотром, не стоит ожидать каких-либо измеримых результатов. Если же используется более дешевая модель, работающая автономно, именно здесь должен проявиться разрыв, что также делает выбор между Opus, Sonnet и Haiku частью того же решения.
Где упаковка является карго-культом
Стоит выделить четыре критических замечания, и ни одно из них не является поводом отказываться от репозитория.
Формулировка опережает доказательства. Утверждение «Как работал Claude Fable 5» касается внутренних механизмов модели, которые никто за пределами Anthropic не может проверить, и основное предложение самого репозитория подрывает его: «Качество заключается в структуре, доказательствах и честности, а не в модели». Если качество заключается в структуре, то история происхождения — это лишь декорация. Процедура самодостаточна и не нуждается в мифе о своем возникновении.
Четыре навыка — это более поверхностное решение, чем требует содержание. fable-loop повторяет значительную часть fable-method, дополняя её оркестрацией, а в связке без субагентов она сводится к fable-method. Прочитайте эти два файла параллельно, прежде чем устанавливать оба.
Восемь адаптеров доменов — это широта, которую не покрывает оценка. Только два из восьми появляются в логах: маркетинг в раунде 9, devops в раунде 12. Адаптеры для финансов, юриспруденции, дизайна и данных поставляются без каких-либо подтверждающих раундов. Адаптер для вашей области всё ещё может быть хорошим. Однако это черновик автора, а не решение, прошедшее проверку в реальных условиях.
Кроме того, установщик в теге v1.4.0 расходится с репозиторием в том, что именно он поставляет, копируя три из четырех навыков в ~/.claude/skills. Коммит в main от 2026-10-03 исправил это почти три месяца спустя, и ни один помеченный релиз пока не включает это исправление. Это небольшая ошибка. Но это также тот тип разрыва, который показывает, что упаковка развивалась быстрее, чем её успевали проверять, и об этом стоит помнить, когда вы решаете, какой объём этого решения внедрять сразу.
Что нужно соблюдать в первую очередь
Если отбросить брендинг, останутся четыре правила, которые работают независимо от используемого агента.
- Цитата для авторизации. Любое необратимое или внешнее действие требует использования собственных слов пользователя, записанных в виде строки
AUTH:. Агент, который не может найти цитату, не выполняет действие. - Двойная проверка. После исправления дефекта выполните поиск аналогичной ошибочной конструкции во всем проекте и укажите количество найденных вхождений, даже если их число равно 0.
- Верификация через наблюдение. Зеленый статус целевой проверки при сломанной сборке означает провал верификации, а не успех.
- Отчетность с приоритетом результата, где все пропущенные или не прошедшие проверку элементы указываются как предостережения, а не просто игнорируются.
Внедрение этих четырех правил ничего не стоит, а их соблюдение можно проверить через 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.0.0, v1.1.0 и v1.2.0, причем v1.2.0 — единственный более ранний релиз на GitHub), версия v1.3.0, которая так и не была выпущена, была включена в него, а v1.4.0 изменила сами правила маршрутизации. main также продолжает меняться, включая изменение установщика в октябре, которое еще не отражено ни в одном теге. Отслеживание main во время измерений означает, что ваш контрольный и тестовый прогоны могут считывать разные инструкции, что делает сравнение бесполезным. Записывайте тег вместе с результатами.
Является ли eval в репозитории бенчмарком, которому можно доверять?
Относитесь к нему как к журналу изменений метода, как его называет сам автор: «Этот журнал существует для того, чтобы изменения метода тестировались, а не для того, чтобы кто-то принял его за бенчмарк». Ограничения указаны в начале файла: от 1 до 4 прогонов на ячейку, синтетические фикстуры и LLM-судьи, построенные на той же пограничной модели, которая также служит базовой линией. Раунды реальны, а неудачные эксперименты сохранены, что больше, чем публикует большинство репозиториев. Это все еще не измерение того, что произойдет с вашей кодовой базой, поэтому проведите сравнение двух вариантов самостоятельно.