Categoría: SoA con escritura a SoR pequeño propio (rule stores de M1 y de I1) Estado: Propio sano — el componente nuevo más diferencial de V3. Síntesis de: Claude T3 + Codex T3
T3 convierte decisiones repetidas, aprobadas y estables en reglas ejecutables sin LLM. Su propósito es reducir coste, latencia y variabilidad sin sacrificar control contable.
T3 es el corazón del valor a largo plazo del producto IA-first. Sin T3, el sistema es un proxy LLM sobre Holded; con T3, el sistema se vuelve cada vez más eficiente y predecible con el uso.
(motor_input_signature) → Internal Plan
Cuando los LLMs de M1 toman la misma decisión repetidamente para inputs similares, T3 propone una regla que sustituye la llamada al LLM.
Ejemplo: "Para proveedor Glovo (NIF B12345678) + concepto con comida, el LLM Account devuelve 62980000 las últimas 8 ejecuciones, todas aprobadas. → Propuesta de regla account_rule_R-2341 en M1.RuleStore."
(intent_signature, erp_context_signature) → ExecutionPlan
Cuando el Plan Generator de I1 genera el mismo ExecutionPlan para inputs equivalentes, T3 propone una regla que sustituye la llamada al agente.
Ejemplo: "Para Internal Plan con vat_application_mechanism: REVERSE_CHARGE + holded_subdomain: tipo_pyme, el agente genera el mismo ExecutionPlan las últimas 12 ejecuciones, todas validadas. → Propuesta de regla i1_plan_rule_R-981 en I1.PlanStore."
Una regla nunca cruza niveles. Si se descubre que una decisión "semántica" depende del estado del ERP, eso es señal de mezcla: la decisión debería estar en I1, no en M1. T3 rechaza propuestas mezcladas.
Cinco estados explícitos:
candidate → shadow → active → quarantined → retired
| Estado | Descripción |
|---|---|
| candidate | Patrón observado por T3, aún no fiable. No se aplica nunca. Acumula evidencia. |
| shadow | Aprobada por Intelia ops. Se aplica en sombra: cada doc nuevo del patrón se procesa POR AMBOS paths (agente + regla), comparator estructural valida match. |
| active | Pasó shadow. Aplica en producción. Cada aplicación incrementa contadores. |
| quarantined | Dejó de ser fiable (correction_rate alto, T4 detecta drift). No aplica. Pendiente de revisión. |
| retired | Inválida o sustituida. NO se borra — queda en historial para auditoría. |
| Tipo | Cómo se captura | Peso |
|---|---|---|
| EXPLICIT_APPROVAL | Contable aprueba en dashboard Intelia | 1.0 |
| HOLDED_INACTION | Auto-contabilizado, contable no editó en 14 días | 0.7 |
| HOLDED_POSITIVE_COMMENT | Contable comentó "OK" / similar (LLM-extracted) | 0.5 |
| REVALIDATION_PASS | T4 detecta que tras edición, contable volvió al criterio Intelia | 1.2 |
| BULK_APPROVE_IN_DASHBOARD | Aprobó dentro de bulk action | 0.5 (peso reducido) |
| Tipo | Peso negativo |
|---|---|
| HUMAN_EDITED_PLAN_IN_DASHBOARD | Contable cambió el plan antes de aprobar |
| HOLDED_EDITED_BY_HUMAN | T4 detecta cambio post-ejecución |
| HOLDED_NEGATIVE_COMMENT | Comment del contable indica desacuerdo (LLM-extracted) |
| FINAL_VALIDATION_FAILED | Plan ejecutado pero readback no coincide |
Score por (rule_signature, evidence_window):
score = Σ(positive * peso) − Σ(negative * peso)
Ventana temporal: últimas 60 evidencias o 90 días, lo primero que llegue.
T3 tiene tres planos:
Cuando M1 o I1 va a tomar una decisión, consulta T3 por reglas activas. Si hay match, devuelve la regla; sino, sigue al LLM.
Esto es síncrono y rápido. No bloquea pipeline.
Workflow Temporal continuous que escucha eventos del bus de signals (TX):
Acumula evidencia por rule_signature.
Diferenciación competitiva del producto.
bootstrap_index: ¿hay clientes con sector + tamaño similar?bootstrap_origin: {client_id, sector, archetype}.confidence: 0.7 (vs 0.95 nativas).T3 mantiene archetypes (cluster de clientes similares por features del CompiledGuide + sector + tamaño). Las reglas se almacenan en el archetype, no en el cliente. Bootstrap cruzado = "este cliente nuevo entra al archetype hostelería-mediano-iva-general → recibe sus reglas".
| Trigger | Acción |
|---|---|
T4: GUIDE_VERSION_CHANGED |
Reglas con dependent_guide_versions afectadas pasan a re-shadow |
T4: CRITERION_CHANGED desde contable |
Reglas usadas para ese cliente pasan a dashboard ops review |
Edición del contable >3 veces en 30 días |
Regla pasa a quarantined. Notificación a ops |
Manual invalidation desde dashboard ops |
Inmediata. Audit obligatorio |
Cambio sistémico (chart_of_accounts, periodos) |
Invalidación masiva en bloque |
Las reglas quarantined no se borran. Quedan con histórico para auditoría y posible reactivación.
T3 puede evitar una llamada LLM si existe una regla semántica activa. M1 expone:
T3 gestiona lifecycle de reglas de traducción. I1 posee el contenido y las features de matching.
T4 alimenta T3 con la mayoría de evidencias post-ejecución. Sin T4 vivo, T3 pausa (las evidencias "no editó" son mentirosas).
S1 es el gate humano de T3: dashboard donde Intelia ops aprueba/rechaza propuestas. Y donde el contable da evidence explícita (EXPLICIT_APPROVAL).
| Riesgo | Mitigación |
|---|---|
| Calcificación prematura (auto-promote sin garantías) | Gate humano obligatorio + shadow mode |
| Calcificación de errores sistemáticos del agente | Shadow + comparator estructural detecta divergencia |
| Sesgo del contable (aprueba sin verificar) infla evidencia positiva | Peso de EXPLICIT_APPROVAL se ajusta por correction_rate_historico del contable |
| Reglas demasiado específicas (cubren 1 doc) | intent_signature con bucket explícito de magnitudes. Signatures con cobertura 1 no se proponen |
| Reglas demasiado amplias (cubren >40% de docs) | Métricas obligatorias: coverage_per_rule. Alarma si >40%. Revisión humana de signature |
| Bootstrap cruzado introduce sesgo masivo | Reglas bootstrapped tienen período shadow obligatorio (primeros 10 docs por patrón pasan por dashboard) |
| Loop de feedback se atasca (contable no revisa) | Si 30 días sin evidencia, regla candidate se archiva — no se promueve por silencio |
| Reglas obsoletas tras cambio fiscal o de chart | Invalidación cross sistema. Detector cruzado con calendario fiscal |
| Intelia ops dashboard se convierte en cuello de botella | Auto-aprobación condicional para propuestas de muy alta confianza (N>10, score>15, cero negativas). Con audit posterior, no gate síncrono |
Patología 1: T3 como tabla de reglas con counter >= N. Calcifica errores. T3 debe ser sistema de governance de conocimiento operativo, no optimización técnica.
Patología 2: T3 paraliza con miedo. Políticas muy estrictas (N=20, cero negativa, shadow 30 días) → reglas nunca se promueven. Cliente mes 12 sigue llamando al agente al 80%. Vigilancia: proposals_promoted_per_month. Si <5/mes a los 6 meses, relajar.
Patología 3: T3 sesga hacia clientes "modelo". Archetypes construidos con datos de primeros clientes (early adopters, urbanos) → cliente nuevo "rural" recibe mal bootstrap. Vigilancia: bootstrap_success_rate por cliente. Si <60% en mes 1, revisar archetype.
Patología 4: reglas se desactualizan silenciosamente cuando cambia fiscalidad. Cambio de IVA → reglas con tax_keys viejos siguen activas. Mitigación: T3 cruzado con calendario fiscal. Cambios fiscales conocidos disparan re-shadow masivo del subset afectado.
Patología 5: calcificación correlación falsa. Un proveedor parece estable hasta que cambia el concepto. Mitigación: scopes estrechos, período shadow, invalidación por T4, explicación de matching y umbrales conservadores al principio.
| Métrica | Target |
|---|---|
t3_rules_proposed_per_month_per_archetype |
5-20 |
t3_proposal_to_promotion_rate |
60-80% |
t3_shadow_pass_rate |
>90% |
t3_invalidation_rate_per_month |
<10% del rule store |
t3_bootstrap_acceptance_rate |
>70% de reglas bootstrapped sobreviven primer mes |
t3_intelia_ops_review_latency |
<48h |
% docs servidos por regla vs LLM |
Crece monotónico por cliente |
intent_signature y erp_context_signature. Lo más sensible del sistema.Síntesis. Detalle granular en versiones originales.