Skip to main content

Plan de implementación — agentes SOTA (2026)

Nota interna de arquitectura (sesión 2026-07-09, parte 2). Convierte el diagnóstico de agents-100x.md en un plan de ejecución, calibrado contra el estado del arte verificado por research web (fuentes al final de cada punto). El objetivo: que los agentes de Driftless operen al nivel de los mejores harnesses de 2026 sin romper las invariantes del producto (gobernanza, determinismo explicable, proposer ≠ approver, no-scripting del broker).

0. Los diez principios SOTA que gobiernan este plan

  1. El loop canónico es gather → act → VERIFY → repeat. La pierna de verificación es la que nuestro loop no tiene. Pipelines de refutación adversarial matan ~79–91% de hallazgos falsos antes de llegar al humano (Refute-or-Promote, arXiv:2604.19049; SAST-Genius −91% FPs).
  2. El presupuesto es de tokens-en-contexto, no de pasos. “Context rot” es la restricción real; limpiar tool-results viejos dio +29% solo, +39% con memoria de archivo, −84% de tokens en tareas de 100 turnos (Anthropic context-management).
  3. Fan-out solo para lectura paralelizable; síntesis y decisión single-context. Multi-agente de research superó al single-agent 90.2% — a ~15× el costo; Cognition: nunca paralelizar decisiones (anthropic.com/engineering/multi-agent-research-system; cognition.com/blog/dont-build-multi-agents). Workers devuelven resúmenes estructurados de 1–2k tokens.
  4. Delta updates, nunca rewrites totales. El “context collapse” de ACE: un rewrite iterativo erosionó 18,282 tokens → 122 en un paso y dejó accuracy DEBAJO del baseline sin adaptación (arXiv:2510.04618, ICLR 2026). Vale para el vault y para cualquier skill que se auto-edite.
  5. La memoria gana confianza con contadores de uso. ACE: unidades atómicas con contadores helpful/harmful alimentados por feedback de ejecución. Mem0: la escritura es un clasificador ADD/UPDATE/DELETE/NOOP contra la memoria existente. Zep: invalidación temporal, no borrado.
  6. Cache-first prompt architecture. Reads de cache a 0.1× (Anthropic) / ~2% (DeepSeek). El Knowledge inyectado debe ser un bloque estable versionado que solo se re-renderiza cuando el topic cambia de versión — re-escribir memoria por run es un impuesto de cache además de un riesgo de gobernanza.
  7. Drift de claims en dos etapas. Detector barato → verificador caro → gate humano (DocPrism LCEF, arXiv:2511.00215: filtrar categorías de inconsistencia relevantes antes de reportar; el juicio one-shot de un LLM sobre drift no lo shippea nadie).
  8. Autonomía graduada con promoción ganada y demotion automática. Tres niveles (auto-apply reversible / notify-and-proceed / HITL); reversibilidad es el factor #1 de routing; promoción = evidencia empírica en esa clase de acción + autorización humana registrada; demotion automática al degradarse (arXiv:2606.22484; patrón Mintlify PR-gated→opt-in-push; Rovo admin-gated).
  9. pass^k, no pass@1, para decidir autonomía. Un agente 90% pass@1 es ~57% consistente a k=8 (τ-bench). Un skill no gradúa ni shippea sin pass^k sobre corpus sembrado.
  10. Supresión > generación. Presupuesto de FP <10% (el “cry-wolf effect” es la razón #1 de abandono de bots de review); suprimir 35% de sugerencias subió la aceptación +15.8pp (arXiv:2511.18849). Invertir en cuándo callar tanto como en la calidad del draft.
Validación externa de las apuestas existentes: notas atómicas ≈ bullets de ACE; el gate Note→Knowledge es exactamente la defensa que la literatura de seguridad converge a recomendar contra memory poisoning (OWASP ASI06; MINJA >95% de éxito de inyección sin gate); el drift temporal ≈ invalidación de Zep; retrieve por tiers ≈ just-in-time retrieval de Anthropic. La arquitectura de Driftless está bien apostada — lo que falta es ejecución del loop completo.

Workstreams

WS1 — Fiabilidad (pre-requisito; sin esto nada de lo demás es creíble)

Aceptación: cero dobles-runs en multi-réplica; un workspace gateway-only despacha por push/PR; un run zombie no sigue gastando.

WS2 — Loop económico: tokens, cache, profundidad

Aceptación: cache hit-rate ≥80% en runs warm (ya medido ~81% en el mejor caso — sostenerlo); tokens/run del Auditor −30% con igual o mejor recall en el eval de loop.

WS3 — Verificación adversarial (la pierna que falta)

Aceptación: en el corpus sembrado, el refuter mata ≥70% de proposals falsas plantadas sin matar >5% de verdaderas; approval rate humano sube de 86% → ≥92%.

WS4 — Cross-surface + Steward (drift multi-superficie)

Aceptación: un cambio en una página Notion indexada que contradice Knowledge produce una propuesta de update en <1h (staleness gap SLA); drift local llega al Auditor sin clicks.

WS5 — Autonomía graduada (earn-autonomy)

Aceptación: ninguna acción auto-aplicada irreversible; demotion dispara sola en el eval de regresión; el humano ve el nivel vigente y el porqué (métrica) en Settings.

WS6 — El vault que aprende (ACE aplicado a Driftless)

WS7 — Runtime y orquestación

WS9 — Observabilidad viva + Agent Activity como sala de control

El observador interno ya existe — observeToolExecutor (Agent Tool Platform T3, cognitive/tool-observability.ts): un ToolExecutionEvent sanitizado por llamada (duración, error class, preview redactado). Estado real: Chat lo envuelve pero descarta los eventos (chat.service.ts:592), y los agentes autónomos lo omiten. Es la señal que WS2 (presupuestos por tool), WS5 (autonomía medida) y WS8 (trajectory evals) necesitan — cablearlo va primero. 9.1–9.3 quedaron implementados como spike verificado (tests + typecheck) en esta branch — revisable/revertible como commit independiente.

WS8 — Evals como gate de release


Secuencia (6 sprints)

KPIs del programa

  • MTTR de drift (detección → Knowledge reparado), por superficie (git / docs / records).
  • pass^k (k=4) por skill en el corpus sembrado — gate de release y de autonomía.
  • Approval rate por clase de acción (hoy 86% global) — objetivo ≥92% con refuter.
  • FP rate de hallazgos <10% (presupuesto cry-wolf).
  • Tokens/run y cache hit-rate (objetivo: −30% tokens, ≥80% cache warm).
  • Staleness gap de fuentes conectadas (SLA <1h con webhook, <24h batch).

Trampas a evitar (todas documentadas en la literatura)

  • Context collapse: jamás un rewrite total del vault o de un skill por un LLM — solo deltas.
  • Memory poisoning: el gate humano Note→Knowledge es la defensa SOTA (OWASP ASI06) — la autonomía graduada nunca se aplica a la verdad (contenido), solo a higiene reversible.
  • Verificador correlacionado: el refuter usa otro modelo/contexto — mismo modelo = mismos sesgos.
  • Multi-agente para decisiones: fan-out solo lectura; síntesis y writes single-context.
  • Leaderboard-itis: los números de memoria (LoCoMo etc.) están inflados por retrieval-k; medir con nuestros evals, no con benchmarks ajenos.