Cisco AI presenta FAPO: optimización rápida de canalización con atribución de fallas a nivel de paso y orquestación de código Claude

Obtener las indicaciones correctas sigue siendo la parte más difícil de enviar aplicaciones LLM confiables. Pequeños cambios en la redacción pueden hacer variar la precisión en un 20 por ciento. Lo que funciona en unos pocos ejemplos a menudo falla a gran escala. Cuando un proceso de varios pasos devuelve una respuesta incorrecta, encontrar el paso fallido significa inspeccionar manualmente los resultados intermedios.

Cisco AI presentó FAPO para abordar ese cuello de botella. FAPO significa Optimización rápida totalmente automatizada. Es un sistema basado en Claude Code que optimiza los procesos de LLM desde las indicaciones básicas hasta la precisión objetivo. Usted proporciona un conjunto de datos y un mensaje inicial. Luego, FAPO evalúa, clasifica las fallas, propone variantes, las valida y las itera. Todo el circuito está orquestado por agentes de Claude Code. El proyecto incluye código abierto bajo Apache 2.0 y también es compatible con Codex como agente de optimización.

En la evaluación informada por Cisco, FAPO venció a GEPA, un optimizador rápido de última generación, en 15 de 18 comparaciones de modelos. En los dos puntos de referencia en los que FAPO escaló hacia cambios en los oleoductos, la ganancia media sobre GEPA alcanzó +33,8 puntos porcentuales.

TL;DR

FAPO es un sistema basado en Claude Code que optimiza de forma autónoma los procesos de LLM de varios pasos desde las indicaciones de referencia hasta la precisión del objetivo, de código abierto bajo Apache 2.0. Se escala a través de tres niveles (indicador, parámetro y luego estructura de cadena) utilizando la atribución de fallas a nivel de paso para decidir qué cambiar a continuación. En la evaluación de Cisco, FAPO venció a GEPA en 15 de 18 comparaciones entre modelos y puntos de referencia, con una ganancia media de +14,1 puntos porcentuales. En HoVer e IFBench, donde la situación llegó a cambios en los procesos, FAPO ganó los seis pares con una ganancia media de +33,8 puntos porcentuales; AIME fue la única victoria de GEPA, dentro del ruido de muestreo. Las barreras contra el sobreajuste incluyen inspección de solo división de capacitación, archivos de variantes inmutables y un revisor independiente para cada propuesta.

¿Qué es la FAPO?

FAPO es un marco de optimización y evaluación de múltiples inquilinos. Un inquilino es un proyecto de optimización autónomo. Cada directorio de inquilinos contiene indicaciones, conjuntos de datos, definición de cadena, puntaje y configuración de una tarea. Los inquilinos permanecen aislados, por lo que las tareas no relacionadas se optimizan una al lado de la otra sin interferencias.

El motor central se llama hephaestus y es independiente del dominio. Maneja la evaluación, la ejecución en cadena y la puntuación. Las cadenas son gráficos de estado de LangGraph que procesan cada caso de prueba. Desde el principio, FAPO admite tres proveedores: OpenAI, Baseten y SageMaker.

La única entrada que debe traer es un conjunto de datos. Son los insumos emparejados y los resultados esperados los que definen el éxito. FAPO lo divide en un conjunto de validación y un conjunto de prueba retenido. El conjunto de validación impulsa la iteración; el conjunto de prueba se utiliza sólo para una evaluación final única. A partir de la descripción de una tarea, Claude puede desarrollar el resto: la indicación inicial, la cadena y el anotador.

Cómo funciona el bucle de optimización

Una vez que existen las piezas, FAPO ejecuta un circuito cerrado hasta que se alcanza la precisión objetivo. Cada ciclo consta de seis etapas:

Evaluar: ejecute la cadena en el conjunto de datos, recopile puntuaciones por caso y resultados a nivel de paso. Atributo: clasifique las fallas por causa raíz utilizando heurísticas basadas en reglas más análisis LLM. Proponer: generar una variante dirigida al grupo de fallas dominante. Revisión: un agente independiente valida la propuesta para determinar el cumplimiento del alcance y la fuga de datos. Comparar: aceptar la variante solo si mejora la mejor versión anterior; de lo contrario, rechazarla. Iterar: continuar hasta alcanzar la precisión objetivo o hasta agotar el presupuesto de optimización.

El sistema funciona en tres niveles progresivos. Las ediciones rápidas tienen el menor costo y se prueban primero. Los cambios de parámetros ajustan los valores de configuración como retrieval_k o temperatura. Los cambios estructurales alteran la topología de la cadena, como agregar un nodo de autorreflexión o cambiar a un patrón ReAct. La FAPO agota un nivel antes de pasar al siguiente.

La atribución de pasos clasifica los fracasos en cuatro clases. Los errores de recuperación devuelven contenido vacío o irrelevante. Las fallas en cascada comienzan cuando un paso temprano produce una salida vacía. Los errores de formato ocultan la respuesta correcta dentro del texto que el anotador no puede analizar. Los fallos de razonamiento ocurren cuando los buenos datos aún producen una conclusión errónea. Los problemas de formato y razonamiento se pueden solucionar rápidamente. Los problemas de recuperación y cascada son abordables estructuralmente.

Las barandillas evitan que el optimizador se sobreajuste. Solo inspecciona casos divididos en entrenamiento, mientras que la validación y la prueba exponen solo puntajes agregados. Cada variante es un archivo nuevo e inmutable, nunca editado en su lugar. Un revisor independiente verifica cada propuesta antes de publicarla.

El caso de referencia: FAPO versus GEPA

El equipo de Cisco evaluó FAPO frente a GEPA (Arquitectura de aviso evolutivo generalizado), un método de optimización de avisos de última generación. GEPA utiliza la búsqueda evolutiva con operadores genéticos para optimizar las indicaciones para canalizaciones de varios pasos. Ambos sistemas partieron de líneas de base e indicaciones idénticas. La FAPO podría escalar hacia cambios estructurales cuando la atribución encontrara obstáculos. GEPA se limitó a la optimización a nivel de aviso.

La comparación abarcó seis puntos de referencia y tres modelos de tareas: GPT-4.1-mini, GPT-5.4-mini y Gemma 3-12B. Claude Opus 4.6 sirvió como orquestador de la FAPO y reflector de la GEPA. Las puntuaciones siguientes se promedian en los tres modelos de tareas.

Punto de referenciaLínea baseGEPAFAPOGanancia vs. GEPAHoVer35.948.583.8+35.3ppIFBench35.748.580.7+32.2ppLiveBench-Math51.052.662.0 +9.4ppHotpotQA50.961.868.3+6.5ppPapillon73.690.794.9+4.2ppAIME16.716.012.9-3.1pp

FAPO ganó 15 de 18 comparaciones entre modelos y referencias, con una ganancia media de +14,1 puntos porcentuales sobre GEPA. En HoVer e IFBench, donde FAPO escaló hacia cambios en los procesos, ganó los seis pares de modelos y puntos de referencia. La ganancia media allí fue de +33,8 puntos porcentuales. En los cuatro puntos de referencia sin cambios estructurales, FAPO aún ganó 9 de 12 solo gracias a una rápida optimización. AIME fue el único punto de referencia donde GEPA lideró, por 3,1 puntos porcentuales. La brecha es menor que la desviación estándar entre las pruebas estocásticas.

Una comparación de capacidades muestra la diferencia de diseño informada por Cisco. Cada fila a continuación refleja la descripción fuente de los dos sistemas.

CapacidadGEPAFAPONiveles de optimizaciónSolo texto de solicitudPregunta → parámetro → estructuralPuede cambiar la estructura de la cadenaNoSí, cuando la atribución encuentra cuellos de botellaCómo se impulsaBúsqueda evolutiva con operadores genéticosClaude Code o bucle de agente CodexResultado en 18 pares de modelos y puntos de referenciaReferenciaGana 15 de 18; +14,1pp media

Dónde encaja: casos de uso

FAPO se dirige a procesos de LLM de varios pasos, no a indicaciones únicas. Algunos ejemplos concretos:

Respuesta a preguntas de múltiples saltos: una cadena recupera documentos, extrae hechos, razona sobre evidencia y formatea una respuesta. En el tutorial documentado de Cisco, una cadena de control de calidad de múltiples saltos aumentó del 39,3 % al 70,3 % de coincidencia exacta de validación en dos iteraciones. Luego, Attribution marcó las fallas restantes como de recuperación limitada, lo que indica una solución estructural. Por otra parte, en el punto de referencia HotpotQA, FAPO alcanzó una precisión de prueba del 68,3% frente al 61,8% de GEPA. Instrucción siguiente: En IFBench, las fallas en las restricciones de formato obligaron a FAPO a escalar más allá de las indicaciones, alcanzando una precisión de prueba del 80,7 %. Clasificación: Claude Code puede estructurar una tarea de software de nombre a categoría y luego optimizarla para que coincida exactamente con los objetivos. Agentes ReAct: una extensión de flujo de trabajo de MCP optimiza una herramienta que llama al agente ReAct mediante puntuación de trayectoria y puntuación LLM-as-Judge.

Empezando

La ruta más rápida es dejar que Claude Code cree los archivos del inquilino. Desde el repositorio, describe tu tarea en inglés sencillo y luego agrega un conjunto de datos JSONL. Cada línea es un caso de prueba con case_id, task_type, contexto, esperado y metadatos:

{“case_id”: “1”, “task_type”: “qa”, “context”: {“question”: “¿Cuál es la capital de Francia?”}, “expected”: {“answer”: “Paris”}, “metadata”: {}} {“case_id”: “2”, “task_type”: “qa”, “context”: {“question”: “¿Qué es 2 + 2?”}, “expected”: {“answer”: “4”}, “metadatos”: {}}

Un evaluador compara el resultado de la cadena con la respuesta esperada. Implementa validar_case para detectar datos incorrectos con antelación y score_case para devolver una puntuación compuesta:

de hephaestus.scoring.scorer importar Scorer como BaseScorer clase Scorer(BaseScorer): def validar_case(self, case, scoring_profile): afirmar “respuesta” en case.expected, “Falta ‘respuesta’ en esperado” def score_case(self, case, output_text, scoring_profile): esperado = case.expected[“answer”].strip().lower() predicho = salida_texto.strip().lower() em = 100.0 si se predice == se espera de lo contrario 0.0 return {“composite_score”: em, “score_breakdown”: {“exact_match”: em}}

Verifique la configuración con una evaluación inicial:

exportar OPENAI_API_KEY=”sk-…” python -m hephaestus.cli eval –config inquilinos/my_project/configs/eval.json

Luego invoque al agente de optimización con un inquilino, una configuración y criterios de éxito como composite_score >= 90. Claude Code produce un contrato de alcance y luego lo itera de forma autónoma. Cada variante de solicitud, configuración y análisis por variante se escribe en el disco, por lo que cada ejecución sigue siendo auditable. Una interfaz de usuario local de solo lectura llamada FAPO Explorer examina los artefactos posteriormente.

Fortalezas y debilidades

Fortalezas

La puntuación basada en canalizaciones atribuye los fallos al paso que los provocó, no sólo al resultado final. La escalada de tres niveles maneja fallas que las indicaciones por sí solas no pueden solucionar. Barreras de seguridad contra el sobreajuste: inspección solo dividida en capacitación, variantes inmutables y un revisor independiente. Código abierto bajo Apache 2.0, compatible con Claude Code y Codex.

Debilidades

La calidad de la optimización está limitada por la calidad y la cobertura del conjunto de datos, que usted debe proporcionar. El proyecto es reciente, por lo que la trayectoria de producción independiente aún es limitada. El bucle predeterminado depende de herramientas de codificación agentes (Claude Code o Codex) en lugar de un optimizador independiente.

Explicador interactivo