LIDR Academy Estimator

Agentes

Un agente es un bucle: un modelo que decide, unas tools que ejecutan, una condición de parada. Aquí revisas cada agente y creas perfiles nombrados y personalizados (modelo, esfuerzo, iteraciones, recuperación y una persona). Desde la S13 conviven tres estilos: el agente hecho a mano (S12), la orquestación Actor-Critic-Boss (S4/S5) y el nuevo flujo multi-agente por grafo (S13).

Agente hecho a mano (S12)

Bucle manual sobre la Responses API: reason → act → observe. Tools: search_budgets, derive_task_hours, validate_estimate. Para cuando deja de pedir tools o al alcanzar max_iterations. Conduce las dos fases del wizard (/v1/estimate/agent/structure y /hours).

Nuevo perfil
Nombre Modelo Effort Iter. Persona Acciones
E
Estándar default
gpt-5 medium Sé claro y conservador; explica cada supuesto en una frase. Editar · Probar
gpt-5 high 15 Ante ambigüedad, sobreestima y justifícalo; busca análogo... Editar · Probar
gpt-5-mini low 6 Ve al grano; una búsqueda por componente y consolida. Editar · Probar

Agentes del grafo (S13)

El pipeline de estimación reexpresado como un grafo LangGraph: agentes especializados encadenados con dos handovers (Command(goto)) y dos gates humanos (interrupt()). Solo lectura — sus modelos se fijan por .env en el servicio IA.

Ver el flujo →
  • 🕶 Morpheus agente
    Classifier · «Te mostraré hasta dónde llega la madriguera»
    gpt-4o-mini
    GRAPH_CLASSIFIER_MODEL

    Clasifica la complejidad y reformula el brief.

    Lee la transcripción cruda y produce una ComplexityClassification: una etiqueta de complejidad (low / medium / high) y un brief reformulado y limpio. La complejidad decide luego el reasoning effort del agente de estructura. Es el nodo de entrada y hace el primer handover (Command(goto) → structure), sin arista estática.

  • 🥋 Neo agente
    Structure · «Yo sé kung-fu — veo la estructura»
    gpt-5
    AGENT_MODEL

    Descompone el brief en módulos → tareas (sin horas).

    Reutiliza el agente hecho a mano de la S12 (bucle Responses API) para convertir el brief en un árbol de módulos y tareas, todavía sin horas. El esfuerzo de razonamiento se elige según la complejidad del classifier (GRAPH_STRUCTURE_EFFORT_BY_COMPLEXITY).

  • 🧑 El Operador gate humano
    🧑 Gate 1 · revisión de estructura · «Tú tomas la decisión»
    sin modelo

    Pausa para revisión humana de los módulos y tareas.

    Human-in-the-loop: interrupt() detiene el grafo y expone la estructura para que una persona la edite o apruebe. Al reanudar (Command(resume=…)) devuelve los módulos aprobados. Disciplina interrupt-first: no escribe en el estado antes de pausar, porque el resume re-ejecuta el nodo entero.

  • 🎛 Tank fan-out
    Hours ×N · «Cargo los programas que hagan falta, en paralelo»
    sin modelo
    TASK_HOURS_TOP_K / TASK_HOURS_DISTANCE_THRESHOLD

    Horas por tarea vía búsqueda vectorial determinista.

    No usa LLM: es un fan-out con la Send API (una rama en paralelo por cada tarea aprobada). Cada rama busca las tareas históricas más cercanas y deriva las horas por consenso ponderado por distancia (reutiliza la lógica de la S10). Sin análogo por debajo del umbral → tarea marcada en rojo.

  • 🏍 Trinity join
    Recover & handover · «Rescato lo que se dio por perdido»
    gpt-5
    AGENT_MODEL

    Junta las ramas, recupera tareas dudosas y construye la estimación.

    Nodo de join del fan-out. Detecta tareas dudosas (sin match, rango contradictorio o fiabilidad baja) y, si las hay, lanza un bucle agéntico de recuperación (S12). Fusiona las horas y construye el Estimate consolidado. Termina con el segundo handover (Command(goto) → analysis).

  • 🔮 El Oráculo agente
    Analysis · «Te diré la verdad, aunque no guste»
    gpt-4o
    GRAPH_ANALYSIS_MODEL

    Redacta el informe de fiabilidad (no toca los números).

    Lee la estimación y escribe un ReliabilityReport: confianza global, ratio de tareas fundamentadas (calculado de forma determinista, sobrescribe el del LLM), puntos débiles y un resumen. No modifica ninguna cifra; solo evalúa.

  • 🧑 El Operador gate humano
    🧑 Gate 2 · validación final · «Tú tomas la decisión»
    sin modelo

    Pausa para la validación humana del informe y la estimación.

    Segundo human-in-the-loop: interrupt() expone la estimación y el informe de fiabilidad. Al reanudar, aplica los overrides, fija el status (validated / needs_review) y registra si se pidió una propuesta comercial (want_proposal).

  • 📐 El Arquitecto agente
    Proposal · «Compongo el constructo final»
    gpt-4o
    GRAPH_PROPOSAL_MODEL

    Bonus: redacta la propuesta comercial.

    Nodo condicional: solo se ejecuta si GRAPH_PROPOSAL_ENABLED está activo Y el humano pidió propuesta en el gate 2. Redacta una CommercialProposal en markdown, anclada estrictamente a la estimación validada. En caso contrario, el grafo termina en END.

Actor-Critic-Boss (S4/S5)

Orquestación, no tool-calling — solo lectura aquí.

Una máquina de estados: el actor propone, el critic audita, el boss decide accept / iterate / synthesize hasta BOSS_MAX_ITERATIONS. El LLM no elige tools: el control de flujo es determinista.

Su configuración vive en Ajustes (modelos actor/crítico) y se prueba desde el chat en modo ACB.