cursos:sdd:05-patrones-agenticos
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| cursos:sdd:05-patrones-agenticos [2026/09/15 08:50] – Ejemplo textual en cada patron: el texto que se le da al agente, como skill claude | cursos:sdd:05-patrones-agenticos [2026/10/26 16:09] (actual) – Enlaces internos: los anclajes no llevan el número de sección claude | ||
|---|---|---|---|
| Línea 8: | Línea 8: | ||
| ^ Patrón ^ Cuándo se usa ^ | ^ Patrón ^ Cuándo se usa ^ | ||
| - | | [[#1_pipeline_prompt_chain|Pipeline]] | La tarea se parte en pasos fijos, conocidos de antemano | | + | | [[#pipeline_prompt_chain|Pipeline]] | La tarea se parte en pasos fijos, conocidos de antemano | |
| - | | [[#2_enrutador|Enrutador]] | Entradas de tipos distintos que se atienden mejor por separado | | + | | [[#enrutador|Enrutador]] | Entradas de tipos distintos que se atienden mejor por separado | |
| - | | [[#3_planificador-ejecutor|Planificador-Ejecutor]] | Conviene revisar el plan antes de que se toque nada | | + | | [[#planificador-ejecutor|Planificador-Ejecutor]] | Conviene revisar el plan antes de que se toque nada | |
| - | | [[#4_orquestador|Orquestador]] | Las subtareas no se conocen hasta ver el problema | | + | | [[#orquestador|Orquestador]] | Las subtareas no se conocen hasta ver el problema | |
| - | | [[#5_ejecutor-revisor|Ejecutor-Revisor]] | Hay criterios claros y la crítica mejora el resultado | | + | | [[#ejecutor-revisor|Ejecutor-Revisor]] | Hay criterios claros y la crítica mejora el resultado | |
| - | | [[#6_adversarios|Adversarios]] | Interesa encontrar el fallo, no pulir el acabado | | + | | [[#adversarios|Adversarios]] | Interesa encontrar el fallo, no pulir el acabado | |
| - | | [[#7_best-of-n|Best-of-N]] | Los intentos salen muy distintos y verificar es barato | | + | | [[#razonador-refutador|Razonador-Refutador]] | La causa de un fallo no está clara y conviene acertar antes de arreglar | |
| - | | [[#8_human-in-the-loop_hitl|Human-in-the-loop]] | Hay acciones irreversibles o responsabilidad de por medio | | + | | [[#best-of-n|Best-of-N]] | Los intentos salen muy distintos y verificar es barato | |
| - | | [[#9_memoria_persistente|Memoria persistente]] | El trabajo dura más que una sesión | | + | | [[#human-in-the-loop_hitl|Human-in-the-loop]] | Hay acciones irreversibles o responsabilidad de por medio | |
| + | | [[#memoria_persistente|Memoria persistente]] | El trabajo dura más que una sesión | | ||
| ---- | ---- | ||
| Línea 171: | Línea 172: | ||
| * **Lo difícil está en la fusión**: juntar resultados parciales que se contradicen es más trabajo del que parece al dibujarlo. | * **Lo difícil está en la fusión**: juntar resultados parciales que se contradicen es más trabajo del que parece al dibujarlo. | ||
| - | **Ejemplo.** Diseño, implementación y calidad, cada uno en su agente: | + | **Ejemplo.** Diseño, implementación y calidad, cada uno en su agente. Un subagente **empieza de cero y no sabe nada de esta conversación**, |
| < | < | ||
| Eres el orquestador: | Eres el orquestador: | ||
| - | resultado. | + | resultado. |
| + | el propio encargo quién es, qué le das, qué tiene que devolver y qué no | ||
| + | puede tocar. | ||
| + | |||
| + | 1. Lanza un subagente con este encargo: | ||
| + | |||
| + | " | ||
| + | escribes ni modificas nada. Dado este enunciado < | ||
| + | devuelve el enfoque, la lista de ficheros que hay que tocar y los | ||
| + | contratos entre las partes. No implementes." | ||
| + | |||
| + | 2. Parte el diseño en trozos independientes y lanza un subagente por | ||
| + | cada trozo: | ||
| + | |||
| + | " | ||
| + | toca: < | ||
| + | < | ||
| + | lista: < | ||
| - | 1. Lanza un subagente DISEÑO con el enunciado. Que devuelva el enfoque, | ||
| - | los ficheros afectados y los contratos. Solo lectura del repositorio. | ||
| - | 2. Con ese diseño, lanza un subagente IMPLEMENTACIÓN por cada parte | ||
| - | | ||
| 3. Junta los resultados. Si dos se contradicen, | 3. Junta los resultados. Si dos se contradicen, | ||
| - | 4. Lanza un subagente CALIDAD sobre el resultado ya unido: tests, casos | ||
| - | | ||
| - | ese código. | ||
| - | 5. Si calidad devuelve bloqueantes, | ||
| - | parte afectada. | ||
| - | A cada subagente | + | 4. Sobre el resultado ya unido, lanza un subagente que no haya escrito |
| - | conversación entera. | + | nada de esto: |
| + | |||
| + | " | ||
| + | tienes el diff completo < | ||
| + | requisitos sin cumplir, casos límite sin tratar y errores que se | ||
| + | tragan. Devuelve cada hallazgo como BLOQUEANTE o MENOR." | ||
| + | |||
| + | 5. Si vuelve algún BLOQUEANTE, repite el punto 2 solo con la parte | ||
| + | afectada, añadiendo el hallazgo al encargo. | ||
| + | |||
| + | A cada subagente pásale el texto que necesita, nunca la conversación | ||
| + | entera: repartir el contexto es justamente para lo que sirve esto. | ||
| </ | </ | ||
| Línea 216: | Línea 236: | ||
| <note warning> | <note warning> | ||
| - | **Ejemplo.** Uno programa y otro revisa: | + | **Ejemplo.** Uno programa y otro revisa. El revisor **se lanza en ese momento** y recibe en el encargo su papel y el material, porque no ha visto nada de lo anterior: |
| < | < | ||
| - | Trabajáis dos por turnos sobre la misma tarea. | + | Implementa |
| + | fuera a propósito. | ||
| - | EJECUTOR: implementa la tarea. Al terminar, di qué has hecho y qué has | + | Después, sin revisarlo tú, lanza un subagente con este encargo: |
| - | dejado fuera a propósito. | + | |
| - | REVISOR (otro agente, que no ha escrito | + | "Eres el revisor de este cambio, que no has escrito. Aquí tienes |
| - | contra estos criterios | + | diff < |
| - | 1. ¿Hace lo que pedía | + | < |
| - | 2. ¿Casos límite sin tratar: nulos, lista vacía, concurrencia? | + | |
| - | 3. ¿Errores que se tragan sin registrar? | + | |
| - | 4. ¿Los tests comprueban el comportamiento o la implementación? | + | |
| - | Marca cada hallazgo como BLOQUEANTE o MENOR. | + | |
| - | de eso ya se encarga el formateador. | + | |
| + | eso se encarga el formateador. | ||
| + | | ||
| - | El ejecutor arregla | + | Arregla |
| - | Tres vueltas como máximo; a la tercera, para y resume lo que queda | + | corregido. Tres vueltas como máximo; a la tercera, para y resume lo que |
| - | abierto. | + | queda abierto. |
| </ | </ | ||
| Línea 257: | Línea 279: | ||
| El valor está en que el criterio de éxito de los dos agentes es **opuesto**, | El valor está en que el criterio de éxito de los dos agentes es **opuesto**, | ||
| - | **Ejemplo.** Dos agentes defienden decisiones de arquitectura distintas: | + | **Ejemplo.** Dos agentes defienden decisiones de arquitectura distintas. Cada uno recibe su papel al lanzarlo, y el papel es precisamente lo que los hace adversarios: |
| < | < | ||
| Hay que decidir si el envío de correos va dentro de la petición o a una | Hay que decidir si el envío de correos va dentro de la petición o a una | ||
| - | cola. | + | cola. No lo decidas tú: monta el debate. |
| - | AGENTE A: defiende la primera opción. Cómo se implementa, qué cuesta, y | + | Lanza un subagente: |
| - | qué se rompe el día que el sistema tenga diez veces más tráfico. | + | |
| - | AGENTE B: lo mismo, defendiendo la segunda. | + | |
| - | Después, una ronda cada uno atacando | + | " |
| - | opinar: hay que dar el escenario concreto | + | implementa, qué cuesta y qué se rompe el día que haya diez veces más |
| - | falla, con números si los hay. | + | |
| + | | ||
| + | versión de esta." | ||
| - | Al final, un tercer agente decide | + | Lanza otro con el mismo encargo, cambiando la opción por la cola. |
| - | motivo y la opción descartada con su razón. Si las dos aguantan igual, | + | |
| - | que lo diga: entonces se elige la más fácil de deshacer. | + | Con las dos propuestas encima de la mesa, lanza un subagente por cada |
| + | una: | ||
| + | |||
| + | "Aquí tienes una propuesta de arquitectura < | ||
| + | | ||
| + | fallo parcial, reintentos, despliegue, operación. No vale opinar ni | ||
| + | pedir mejoras: hace falta el caso, con números si los hay." | ||
| + | |||
| + | Y con todo eso, un último subagente que no haya participado: | ||
| + | |||
| + | "Aquí tienes dos propuestas de arquitectura y los ataques que ha | ||
| + | | ||
| + | decisión, el motivo y la opción descartada con su razón. Si las dos | ||
| + | aguantan igual, | ||
| </ | </ | ||
| ---- | ---- | ||
| - | ===== 7. Best-of-N ===== | + | ===== 7. Razonador-Refutador ===== |
| + | |||
| + | Antes de arreglar nada, un agente **escribe su razonamiento paso a paso** —qué ha visto, qué deduce de ello y qué piensa hacer— y otro distinto **busca el paso que no se sostiene**. Solo cuando el razonamiento aguanta se toca el código. | ||
| + | |||
| + | < | ||
| + | start | ||
| + | repeat | ||
| + | :razonador: explicacion con hechos, deducciones y plan; | ||
| + | :refutador: buscar el paso que no se sostiene; | ||
| + | backward:la prueba en contra pasa a ser un hecho; | ||
| + | repeat while (razonamiento solido) is (no) not (si) | ||
| + | : | ||
| + | stop | ||
| + | </ | ||
| + | |||
| + | Se parece a los dos anteriores, pero mira otra cosa y en otro momento: | ||
| + | |||
| + | ^ ^ Revisor ^ Adversario ^ Refutador ^ | ||
| + | | Pregunta | ¿Cumple los criterios? | ¿Por dónde falla? | ¿Se deduce esto de lo que hemos visto? | | ||
| + | | Mira | El resultado terminado | Una propuesta o una implementación | La explicación del problema | | ||
| + | | Cuándo | Después de hacerlo | Antes o después | Antes de tocar nada | | ||
| + | |||
| + | El fallo que evita es muy común: **una solución impecable para un problema que no era el problema**. El modelo ve un síntoma, se convence de una causa y la arregla con todo detalle. El Refutador hace las preguntas incómodas: ¿eso lo has comprobado o lo supones?, ¿de verdad se sigue de lo anterior?, ¿hay otra explicación para lo mismo? | ||
| + | |||
| + | **Por qué gana el Refutador aunque tenga menos pruebas.** Para que una explicación sea cierta tiene que cumplirse **todo** lo que exige; para que sea falsa basta con que falle **una sola cosa**. Por eso mil pistas a favor no pesan nada frente a un hecho que la hace imposible. | ||
| + | |||
| + | Por ejemplo, fallan 30 tests con '' | ||
| + | |||
| + | **Qué pasa cuando gana.** El trabajo no termina ahí: vuelve al Razonador, y **lo que ha tumbado la explicación pasa a ser un hecho comprobado**. Con esa pista nueva, el Razonador propone otra explicación —«el cliente nunca es nulo, así que el nulo sale de otro campo que usa '' | ||
| + | |||
| + | * **Cuándo**: | ||
| + | * **En contra**: más tiempo y más coste. Si la causa era obvia desde el principio, sobra. | ||
| + | * **Regla del Refutador**: | ||
| + | |||
| + | **Ejemplo.** Encontrar la causa de un fallo antes de arreglarlo. El auditor **se lanza en ese momento** y no sabe nada del problema, así que el encargo lleva el contexto y el razonamiento: | ||
| + | |||
| + | < | ||
| + | Hay un fallo y no está claro de dónde viene. No toques código todavía. | ||
| + | |||
| + | FASE 1, RAZONAMIENTO. Escribe tres listas: | ||
| + | - HECHOS: lo que has visto de verdad: errores, trazas, qué tests | ||
| + | fallan y cuáles no. Solo lo comprobado. | ||
| + | - DEDUCCIONES: | ||
| + | sale cada uno. | ||
| + | - PLAN: qué cambiarías y qué esperas que pase después. | ||
| + | |||
| + | FASE 2, REFUTACIÓN. Sin revisarlo tú, lanza un subagente con este encargo: | ||
| + | |||
| + | "Eres un auditor de lógica. Aquí tienes el contexto del problema | ||
| + | < | ||
| + | | ||
| + | 1. ¿Se da algo por cierto sin haberlo comprobado? | ||
| + | 2. ¿Hay algún paso que no se deduce del anterior? | ||
| + | 3. ¿Hay otra causa que explique los mismos hechos y se ha pasado | ||
| + | por alto? | ||
| + | | ||
| + | | ||
| + | con la prueba que lo tumba, o ' | ||
| + | |||
| + | FASE 3. Si vuelve algún fallo, añade sus pruebas a HECHOS, formula otra | ||
| + | explicación que las respete y lanza un auditor nuevo. Tres vueltas como | ||
| + | máximo; a la tercera, para y resume lo descartado y lo que queda abierto. | ||
| + | Con ' | ||
| + | </ | ||
| + | |||
| + | Más informnación: | ||
| + | * [[https:// | ||
| + | |||
| + | ===== 8. Best-of-N ===== | ||
| Se lanza **el mismo encargo N veces en paralelo** —con temperatura alta o con modelos distintos— y se elige el mejor resultado. Sirve porque los intentos salen genuinamente distintos entre sí. | Se lanza **el mismo encargo N veces en paralelo** —con temperatura alta o con modelos distintos— y se elige el mejor resultado. Sirve porque los intentos salen genuinamente distintos entre sí. | ||
| Línea 314: | Línea 417: | ||
| ---- | ---- | ||
| - | ===== 8. Human-in-the-loop (HITL) ===== | + | ===== 9. Human-in-the-loop (HITL) ===== |
| No es «que alguien lo mire»: es **decidir en qué puntos concretos se para y se espera a una persona**. | No es «que alguien lo mire»: es **decidir en qué puntos concretos se para y se espera a una persona**. | ||
| Línea 347: | Línea 450: | ||
| ---- | ---- | ||
| - | ===== 9. Memoria persistente ===== | + | ===== 10. Memoria persistente ===== |
| Un agente empieza de cero cada sesión. La memoria persistente es lo que le permite retomar el trabajo y acumular lo aprendido. Tres tipos, con papeles distintos: | Un agente empieza de cero cada sesión. La memoria persistente es lo que le permite retomar el trabajo y acumular lo aprendido. Tres tipos, con papeles distintos: | ||
| Línea 382: | Línea 485: | ||
| ---- | ---- | ||
| - | ===== 10. Cómo elegir ===== | + | ===== 11. Cómo elegir ===== |
| ^ Patrón ^ Fuerte en ^ Su límite ^ Coste ^ | ^ Patrón ^ Fuerte en ^ Su límite ^ Coste ^ | ||
| Línea 391: | Línea 494: | ||
| | Ejecutor-Revisor | Calidad con criterios claros | Sin criterios, no converge | Medio-alto | | | Ejecutor-Revisor | Calidad con criterios claros | Sin criterios, no converge | Medio-alto | | ||
| | Adversarios | Encontrar lo que falla | No mejora el acabado | Medio | | | Adversarios | Encontrar lo que falla | No mejora el acabado | Medio | | ||
| + | | Razonador-Refutador | Acertar con la causa antes de arreglar | Sobra si la causa era obvia | Medio | | ||
| | Best-of-N | Calidad cuando verificar es barato | Se paga N veces | Alto | | | Best-of-N | Calidad cuando verificar es barato | Se paga N veces | Alto | | ||
| | HITL | Responsabilidad y lo irreversible | El humano es el cuello de botella | Bajo, pero lento | | | HITL | Responsabilidad y lo irreversible | El humano es el cuello de botella | Bajo, pero lento | | ||
cursos/sdd/05-patrones-agenticos.1789455026.txt.gz · Última modificación: por claude
