Implementar el metodo Fable en modelos de lenguaje
Aprende a portar los habitos de Claude Fable 5 a otros modelos mediante el repositorio fable-method. Analizamos la estructura de archivos y como medir el coste en VPS.
Qué afirma realmente el método Fable
El método Fable es un conjunto pequeño de skills de agente que documenta los hábitos de trabajo de un modelo como un procedimiento ordenado, para que otro modelo pueda ejecutar el mismo procedimiento. El repositorio es Sahir619/fable-method, tiene licencia MIT y su propia descripción de una línea es «how Claude Fable 5 worked, distilled into skills any model can run, with the eval that keeps it honest». La parte que merece comprobarse es la segunda mitad de esa frase.
Nadie fuera de Anthropic puede comprobar si un archivo de texto refleja realmente cómo razonó un modelo concreto. En cambio, puedes comprobar por tu cuenta, en un solo VPS y durante una tarde, si un modelo más barato se comporta de otra forma cuando lee ese archivo. Esa medición es el objetivo de todo lo que sigue: ejecutar la misma tarea dos veces, con el método y sin él, y contar las llamadas a herramientas y el coste.
Si el término skill es nuevo para ti, empieza por qué es realmente un skill de agente: una carpeta que contiene un archivo SKILL.md cuya descripción del frontmatter indica al agente cuándo debe cargar el contenido. El modelo que da nombre al repositorio se explica en cuánto cuesta Claude Fable 5 y para qué sirve.
Instale las skills y fije la versión que pruebe
Hay dos formas de instalación. En Claude Code, la ruta del plugin requiere dos comandos:
/plugin marketplace add Sahir619/fable-method
/plugin install fable@fable-methodEn un VPS, si quiere una copia fijada en disco, clone el repositorio y cambie primero a una etiqueta:
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 no necesita sudo porque sólo escribe en $HOME/.claude/skills. Cuando termina, ls ~/.claude/skills muestra fable-judge, fable-loop y fable-method. Revise qué elemento no aparece. El repositorio incluye cuatro skills y el instalador de shell de v1.4.0 copia tres, por lo que un usuario independiente no obtiene fable-domain a menos que lo copie manualmente:
cp -r ~/fable-method/skills/fable-domain ~/.claude/skills/Fije la etiqueta y anótela junto a los resultados que obtenga. El registro de cambios enumera cinco versiones entre 2026-07-06 y 2026-07-15, de 1.0.0 a 1.4.0, pero sólo cuatro tenían etiqueta (v1.0.0, v1.1.0, v1.2.0 y v1.4.0), y sólo v1.2.0 y v1.4.0 se publicaron como releases de GitHub. No existe la etiqueta v1.3.0; las notas de la release v1.4.0 indican que incorpora todo lo incluido en la v1.3.0, que no llegó a publicarse. v1.4.0 cambió el método al añadir una nueva condición de enrutamiento. En octubre de 2026, v1.4.0 sigue siendo la etiqueta más reciente, pero main ya la ha superado: un commit del 2026-10-03 añadió un destino de instalación para Codex e hizo que install.sh copiara las cuatro skills, y todavía no hay ninguna etiqueta con ese cambio. Si la ejecución de control lee una versión de las reglas y la ejecución de prueba lee otra, no ha medido nada.
Qué indica cada una de las cuatro skills al modelo
El archivo principal es skills/fable-method/SKILL.md. Contiene dos puertas de control y siete pasos numerados. Sus reglas son lo bastante específicas como para poder contrastarlas.
La puerta de trivialidad es la primera: actúe directamente, sin formalidades, cuando el cambio afecte a un solo archivo, tenga unas 10 líneas como máximo, no añada comportamiento nuevo y ya sepa exactamente qué debe modificar. Hay una skill independiente basada únicamente en ese criterio, Ponytail, que orienta al agente hacia el cambio mínimo que funciona, y su regla principal es lo bastante breve como para copiarla en sus propias instrucciones sin instalar nada. A continuación, la puerta de adecuación clasifica la solicitud según dónde se encuentre la respuesta: fuentes que puede abrir, una técnica que debe investigar primero o una inferencia propia, que debe marcarse con baja confianza en lugar de presentarse como un hecho. Esta rama intermedia sólo funciona si el agente puede acceder realmente a la web. En un VPS restringido, eso significa proporcionarle su propio backend de búsqueda, como una instancia de SearXNG autoalojada y expuesta como herramienta de búsqueda JSON.
Después viene el ciclo: clasificar la solicitud, definir el criterio de finalización, recopilar evidencias, decidir, actuar, verificar e informar. El paso 2 indica que debe orientarse listando el directorio antes de elegir archivos, dar prioridad a las fuentes primarias frente al recuerdo y detenerse después de dos consultas consecutivas que no devuelvan nada nuevo. El paso 4 indica que debe escribir una línea INTENT: antes de cualquier modificación que cambie el comportamiento. Esa línea debe indicar qué hace el código, qué espera la comprobación fallida y qué establece la especificación. No debe modificar nada si esos tres elementos no coinciden, porque la discrepancia es el hallazgo real. El paso 5 limita los reintentos: después de tres ciclos fallidos de corrección y verificación sobre el mismo problema, debe detenerse y devolver el resultado con la salida real.
La parte más comprobable del archivo son sus cuatro tokens de informe. Un cambio de comportamiento requiere una línea INTENT:. Una acción externa requiere AUTH: user said "<exact words>", citando al usuario, porque el repositorio establece claramente que la documentación no constituye autorización. Una acción prescrita pero no ejecutada requiere una línea PENDING:. Un defecto corregido requiere TWINS: searched <pattern> - found <N> other sites. No es necesario confiar en ningún aspecto del método para comprobar si esas cuatro cadenas aparecen cuando corresponde. Por eso todo el sistema se puede medir y no depende de impresiones.
fable-loop aplica el mismo método como una orquestación en cuatro etapas: planificar con subagentes de evidencias en paralelo, ejecutar en el hilo principal, verificar con entre uno y tres subagentes atacantes que adopten enfoques distintos y, por último, auditar e informar. Presupone el uso de modelos económicos para las funciones de evidencia y ataque, y de un modelo más potente para las decisiones y las modificaciones.
fable-judge es la pieza que merece la pena instalar aunque descarte el resto. Su premisa es que "un informe es un conjunto de afirmaciones, no una evidencia". Recopila las afirmaciones de un informe terminado, establece la verdad de referencia a partir de git diff y git status, vuelve a ejecutar todas las verificaciones que el informe declara haber ejecutado y busca una lista de fraudes identificados: comprobaciones debilitadas, finalización falsa, ampliación del alcance, acciones no autorizadas, incumplimiento de la especificación y residuos sin eliminar. Devuelve VERIFIED, VERIFIED WITH CAVEATS o REFUTED, y marca como UNVERIFIABLE cualquier elemento que no pueda reproducir, en lugar de asumir que se ha superado. La propia línea final del instalador apunta a esta función: "Pruébelo: abra Claude Code y escriba /fable-judge después de que cualquier agente afirme que el trabajo ha terminado". Si prefiere integrar esta comprobación en el trabajo en lugar de ejecutarla después, la skill Old Coder hace que el agente produzca una SPEC que usted aprueba y un informe EVIDENCE que puede volver a ejecutar, con las pruebas de mutación en lugar de la cobertura como demostración de que una prueba detectaría realmente una regresión.
fable-domain genera paquetes de adaptación por dominio con fixtures de casos problemáticos y evaluaciones smoke. Se distribuyen ocho adaptadores: marketing, investigación, análisis de datos, negocio y operaciones, finanzas, aspectos legales y cumplimiento, diseño y UX, y devops. El trabajo médico y clínico se deja deliberadamente sin adaptador.
Qué partes se pueden portar a otro modelo y cuáles no
El repositorio responde a esto directamente con AGENTS.md, que abre así: "Versión portátil para cualquier agente de programación o entorno (Codex, Cursor, aider, un system prompt sin procesar). Método idéntico a SKILL.md; pegue este archivo en las instrucciones de su agente o colóquelo en la raíz de su repositorio como AGENTS.md". Tiene unas 2.600 palabras y mantiene las mismas puertas, pasos y modos. Si ya utiliza archivos de instrucciones en la raíz del repositorio, la convención AGENTS.md y HUMAN.md cubre dónde se coloca ese archivo y quién lo lee.
Dos partes se portan limpiamente. El texto del método es un prompt ordenado sin código específico para un modelo, por lo que cualquier modelo que siga instrucciones puede seguirlo, y la tesis declarada del repositorio es que el beneficio (lift) es inversamente proporcional al nivel del modelo. El juez también se porta, siempre que el agente tenga una shell y un repositorio, porque todo lo que hace es git diff además de volver a ejecutar comandos que el lector también puede ejecutar.
Una parte no se porta limpiamente. fable-loop asume que el entorno puede generar subagentes en paralelo y dirigirlos a diferentes modelos. Un agente sin subagentes ejecuta esas etapas de forma serial en un solo modelo, lo que elimina el paralelismo y el ahorro de costes que justificaban el diseño. Lo que queda es fable-method con vocabulario adicional.
Dos cosas menores son específicas del entorno y fáciles de pasar por alto. El disparador /fable-method es un comando de barra inclinada de Claude Code, por lo que en otro entorno se invoca el método describiéndolo. Y la descripción del frontmatter SKILL.md es lo que permite que un agente cargue el cuerpo solo cuando coincide con la tarea, lo que significa que una skill instalada no cuesta casi nada hasta que se activa. Pegue AGENTS.md en un system prompt y esas 2.600 palabras estarán en cada solicitud que envíe, ya sea que la tarea sea corregir un error tipográfico de una línea o una refactorización. Esa es una diferencia de coste real, y es la razón principal por la que existe el empaquetado de skills.
Cómo hacer una prueba A/B en un VPS: la misma tarea, dos veces
Configure dos copias de trabajo idénticas para que ninguna ejecución pueda ver las modificaciones de la otra. Sustituya YOUR_ORG/YOUR_REPO por el repositorio que quiera probar; los dos clones deben proceder del mismo commit.
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/methodElija una tarea cuyo resultado se pueda observar sin interpretaciones: una prueba que falla y debe pasar, o un script que debe terminar con código 0. Una tarea imprecisa produce una comparación imprecisa, porque terminará evaluando el texto en lugar de los resultados.
Ejecute el grupo de control con --bare, que omite el descubrimiento automático de hooks, skills, plugins y CLAUDE.md. Esa opción convierte la ejecución en un control: las skills instaladas anteriormente no pueden filtrarse. El modo bare no usa el inicio de sesión de su suscripción, así que configure primero una API key desde 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.jsonlEl grupo del método usa el mismo comando con una opción adicional, que carga el método portable como una adición al system prompt:
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.jsonlMismo binario, mismo modelo, mismas herramientas y mismo árbol inicial. Sólo cambia una opción, que es la única forma de que la comparación tenga sentido.
Este diseño mide el texto del método. No mide el empaquetado de la skill, que es una cuestión independiente. Para medir el empaquetado, elimine --bare, instale las skills como se indicó antes e incluya el nombre de la skill dentro de la cadena del prompt, porque las skills invocadas por el usuario se expanden en modo print: claude -p "/fable-method $task". Espere un perfil de costes diferente del grupo que usa el system prompt, aunque el comportamiento visible parezca el mismo.
Contar los pasos y el coste
Las dos ejecuciones escribieron un flujo de eventos JSON. La última línea es un mensaje result que contiene el texto final, el coste y los metadatos de la sesión. Imprímalo una vez y léalo antes de crear scripts que dependan de él, porque los nombres de los campos cambian entre versiones de Claude Code.
tail -1 ~/ab/control.jsonl | jq .El coste de cada ejecución se obtiene de esa línea. Ese es el valor que debe comparar:
for f in ~/ab/control.jsonl ~/ab/method.jsonl; do
printf '%s ' "$f"
jq -r 'select(.type=="result") | .total_cost_usd' "$f"
doneLos pasos realizados se obtienen contando las llamadas a herramientas en el mismo archivo:
jq -r 'select(.type=="assistant") | .message.content[]? | select(.type=="tool_use") | .name' \
~/ab/control.jsonl | sort | uniq -c | sort -rnHágalo para los dos archivos. La forma de la diferencia aporta más información que los totales. Una ejecución con un método que lee más archivos y hace menos cambios está siguiendo lo que exige el método, y esa es la compensación que está aceptando. Una ejecución con un método que hace los mismos cambios y cuesta un cuarenta por ciento más no aportó ningún beneficio en esa tarea.
Tenga en cuenta dos aspectos sobre estas cifras. Primero, no sume output_tokens de las transcripciones de sesión incluidas en ~/.claude/projects/ y lo considere el total: esos bloques de uso por mensaje son instantáneas tomadas durante la transmisión y existen informes que indican que pueden quedar por debajo del valor real. La línea result es la cifra que debe tomar como referencia. Segundo, una ejecución por cada variante es sólo una observación aislada. Ejecute cada variante tres o cuatro veces con la misma tarea antes de considerar fiable una diferencia, porque dos ejecuciones del mismo agente con la misma tarea ya pueden diferir entre sí. Para analizar el gasto a más largo plazo, las herramientas que registran el gasto de Claude Code y cómo cuenta Claude Code los tokens explican por qué las líneas de caché dominan los recuentos sin procesar.
Asegúrese de que el agente no pueda acceder a nada importante para usted mientras se ejecuta sin supervisión. ejecutar Claude Code de forma segura en un VPS explica la cuenta de usuario y los indicadores de permisos.
El eval propio del repositorio, leído con criterio
El titular del README dice: «Quince rondas de eval, más de 260 ejecuciones de agentes y jueces LLM ciegos que verifican mediante comparación de diferencias y ejecución». Es más evidencia que la que ofrece casi cualquier repositorio de skills, y eval/RESULTS.md está documentado ronda por ronda, con los fallos incluidos. Aun así, resulta menos sólido de lo que sugiere la cifra del titular cuando se examinan las celdas individuales que hay detrás de esas filas.
Los datos de este gráfico
[
{
"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"
}
]La mayor de esas 4 filas se basa en 4 ejecuciones. Cada una de las otras tres se basa en 2 ejecuciones. El propio repositorio lo indica, en las limitaciones permanentes que aparecen al principio del registro: «n pequeño en todo el conjunto (1-4 ejecuciones por celda), jueces LLM (ciegos cuando se comparan varias salidas, pero basados en el mismo modelo de frontera que aparece como referencia), fixtures sintéticos y una verdad de referencia de investigación tan actual como la fecha de su ejecución». Y lo dice de forma aún más directa: «Este registro existe para probar cambios en el método, no para que nadie lo confunda con un benchmark».
Hay que reconocerlo. Un autor que publica su propio n y señala que su juez se basa en el mismo modelo que sirve como referencia está siendo más honesto que la norma en esta categoría. Interprete las cifras como evidencia de que el autor ejecutó realmente las pruebas y conservó los fallos. Su propia comparación A/B es la que le indica qué ocurre en su base de código.
El README también deja claro dónde el método no aporta nada, y ese es su párrafo más útil. No registra ninguna mejora en tareas pequeñas normales con modelos capaces. Afirma que «el método no puede actualizar los hechos de un modelo; los modelos de frontera sin instrucciones adicionales ganan en investigación con mucha carga de conocimiento». Y sitúa el valor en «las situaciones problemáticas (conflictos de autoridad, afirmaciones falsas de finalización, ejecutores débiles y ejecuciones sin supervisión), no en todas partes». Si el trabajo de su agente consiste en cambios pequeños sobre un modelo potente y usted lo supervisa, no espere medir ninguna diferencia. Si utiliza un modelo más económico sin supervisión, ahí debería aparecer una diferencia. Esto también convierte la elección entre Opus, Sonnet y Haiku en parte de la misma decisión.
Donde el empaquetado es cargo cult
Conviene hacer cuatro críticas, y ninguna justifica omitir el repositorio.
El planteamiento va más allá de las pruebas disponibles. «Cómo funcionaba Claude Fable 5» es una afirmación sobre el funcionamiento interno de un modelo que nadie fuera de Anthropic puede verificar, y la propia frase central del repositorio la contradice: «La calidad está en la estructura, las pruebas y la honestidad, no en el modelo». Si la calidad está en la estructura, la historia de procedencia es decorativa. El procedimiento se sostiene por sí solo y no necesita un mito de origen.
Cuatro habilidades son más superficie de la que necesita el contenido. fable-loop repite gran parte de fable-method con una capa de orquestación, y en un arnés sin subagentes vuelve a reducirse a fable-method. Lea los dos archivos en paralelo antes de instalar ambos.
Ocho adaptadores de dominio aportan una amplitud que la evaluación no cubre. Sólo dos de los ocho aparecen en algún punto del registro: marketing en la ronda 9 y devops en la ronda 12. Los adaptadores de finanzas, legal, diseño y datos se incluyen sin ninguna ronda que los respalde. El adaptador para su campo puede seguir siendo bueno. Sin embargo, es un borrador del autor, no algo que haya superado un accesorio de prueba diseñado para detectar errores.
Además, el instalador de la etiqueta v1.4.0 no coincide con el repositorio sobre lo que incluye: copia tres de las cuatro habilidades en ~/.claude/skills. Un commit de main con fecha 2026-10-03 corrigió el problema, casi tres meses después, y ninguna versión etiquetada incluye todavía la corrección. Ese problema es pequeño. También es el tipo de diferencia que indica que el empaquetado avanzó más rápido de lo que nadie pudo revisarlo, algo que conviene recordar al decidir cuánto adoptar de una vez.
Qué conservar si no conserva nada más
Elimine la marca y quedarán cuatro reglas independientes, sin importar qué agente ejecute.
- La cita de autorización. Una acción irreversible o expuesta externamente necesita las palabras del usuario, escritas en una línea
AUTH:. Si un agente no encuentra una cita, no actúa. - La comprobación doble. Después de corregir un defecto, busque en todo el proyecto la misma construcción incorrecta e informe del recuento, incluso cuando sea cero.
- Verificación mediante observación. Una comprobación específica correcta sobre una compilación rota es una verificación fallida, no una aprobación.
- Informes centrados en el resultado, indicando como salvedad todo lo que se omitió o quedó sin verificar, en lugar de descartarlo silenciosamente.
Estas cuatro reglas no cuestan nada y puede comprobar su cumplimiento con grep. Empiece por ahí, mida con el arnés anterior y decida después si el resto del repositorio merece su parte del presupuesto de contexto. Si quiere proporcionar a un agente un contexto permanente del proyecto en lugar de un método de trabajo, un DESIGN.md que los agentes lean antes de editar es la medida complementaria.
FAQ
¿Funciona el método Fable con modelos distintos de Claude?
El texto del método sí. Es un prompt ordenado sin código específico para un modelo, y el repositorio incluye AGENTS.md como copia portable para Codex, Cursor, aider o un prompt de sistema sin más. Hay dos elementos que no se trasladan. /fable-method y /fable-judge son comandos slash de Claude Code, por lo que en otros entornos se invoca el método describiéndolo. Además, fable-loop presupone un arnés capaz de iniciar subagentes en paralelo con distintos modelos; sin él, se ejecuta de forma secuencial y ofrece fable-method con pasos adicionales.
¿Ejecutar estas habilidades consume más tokens?
Sí, y la cantidad depende de cómo se carguen. Si se instalan como habilidades, el cuerpo sólo se carga cuando la descripción coincide con la tarea, por lo que una solicitud no relacionada consume casi nada. Si se pegan en un prompt de sistema, las aproximadamente 2,600 palabras de AGENTS.md acompañan a cada solicitud. La ejecución también consume más, porque el método exige orientarse antes de editar, reunir pruebas antes de decidir y realizar una verificación real después. Mídalo: ejecute la misma tarea con --output-format json en ambos brazos y compare el campo total_cost_usd.
¿Qué versión de fable-method debo instalar y por qué debo fijarla?
Ejecute git checkout v1.4.0 antes de instalarla. Esa etiqueta tiene fecha de 2026-07-15 y sigue siendo la más reciente en octubre de 2026. Le precedieron tres etiquetas (v1.0.0, v1.1.0 y v1.2.0; v1.2.0 fue la única versión anterior publicada en GitHub), y una v1.3.0 que nunca se publicó se integró en ella. La v1.4.0 cambió las reglas de encaminamiento. main también ha seguido cambiando, incluida una modificación del instalador en octubre que todavía no aparece en ninguna etiqueta. Si realiza el seguimiento de main mientras mide, la ejecución de control y la de prueba pueden leer instrucciones distintas, lo que invalida la comparación. Registre la etiqueta junto con los resultados.
¿La evaluación del repositorio es un benchmark fiable?
Considérela un registro de cambios del método, que es como la denomina su autor: "Este registro existe para probar las modificaciones del método, no para que nadie lo confunda con un benchmark". Las limitaciones aparecen al principio del archivo: de 1 a 4 ejecuciones por celda, fixtures sintéticos y evaluadores LLM basados en el mismo modelo de frontera que también se utiliza como referencia. Las rondas son reales y los experimentos fallidos se conservan, algo que la mayoría de los repositorios no publica. Aun así, no mide lo que ocurrirá en su base de código, por lo que debe ejecutar usted mismo la comparación de dos brazos.