Skip to content

Freeak88/OPDSL

Repository files navigation

OPDSL (Operante Policy Domain Specific Language)

Qué es

El lenguaje con el que los dueños escriben reglas de negocio en su propio vocabulario, los Operantes ejecutan decisiones determinísticas sin variabilidad ni costo de tokens, y los auditores verifican accountability criptográfica. :contentReference[oaicite:0]{index=0}

Operante: porque opera. No asiste. No recomienda. Ejecuta reglas firmadas, deja trazabilidad, y sabe cuándo frenar. :contentReference[oaicite:1]{index=1}

Determinístico: misma entrada, misma regla, misma decisión, siempre. El dueño firma la política, el Operante ejecuta la regla, la evidence queda registrada. Sin interpretación, sin variabilidad, sin sorpresas. :contentReference[oaicite:2]{index=2}


Pipeline

grammar → parser → compiler → evaluator → guardrail → signer → versioning

Componente Función Sin esto, qué falla
grammar Define qué es válido: 3_dias, $15000, exists(factura: ...) El parser no sabe qué aceptar
parser Lee .pol y construye AST Texto no se convierte en árbol ejecutable
compiler Optimiza AST: ordena prioridades, pre-calcula paths Evaluación lenta, redundante
evaluator Recorre árbol compilado contra datos reales No hay decisión
guardrail Valida datos antes de evaluar, decisión antes de ejecutar Garbage in, garbage out firmado
signer Firma cada decisión con Ed25519 No hay accountability criptográfica
versioning Versiona políticas y claves, permite rollback No sabés qué regla aplicó ni cuándo

Firmas: Tres Responsabilidades, Una Cadena

Quién Qué Firma Por Qué
Dueño La política .pol "Esta regla es mía, la vi, la aprobé"
Operante Cada decisión individual "Ejecuté exactamente esta regla contra estos datos"
Supervisor Cada excepción aprobada "Autoricé esta salida de la norma"

Si una firma falla, todo frena.
Tamper-evident: modificás un byte, la verificación falla.


Integración Real con LLM (No Reemplazo, Complemento)

Input real (WhatsApp/mail/CSV) ↓ Operante limpia y estructura ↓ LLM propone acción ("marco como pagado") ↓ OPDSL evalúa: ¿está permitido? ¿quién aprueba? ↓ Guardrail valida datos ↓ Executor actúa: ERP, notificación, ticket ↓ Audit trail firmado

El LLM propone con inteligencia. OPDSL valida con reglas duras.
Juntos: inteligencia controlada.


Demo End-to-End: Conciliación Bancaria

ANTES:
Factura fac_4821, Rizobacter, $15.000, estado: pending

Input:
Transferencia trf_20260502_001, $15.000, referencia "Pago factura 4821"

Proceso:

  • Operante limpia CSV del banco
  • Guardrail valida: monto numérico ✓, fecha ISO ✓, facturas no vacías ✓
  • Evaluator: exists(factura: factura.monto == 15000.0) → match exacto
  • Decision: ALLOW, rule_id: match-exacto
  • Executor: marca factura como paid, crea registro de pago
  • Signer: firma decisión con Ed25519

DESPUÉS:
Factura fac_4821, estado: paid, pago_id: pay_xxx, audit_id: xxx, firma: ✓

Tiempo total:
0.018 ms evaluación + 5 ms escritura = 5.018 ms


Fault Injection: Protección Real

Input Corrupto Guardrail Detecta Acción
monto: "QUINCE MIL" Tipo: no numérico INVALID, frena
fecha: "02/05/2026" Fecha: no ISO INVALID, frena
monto: -500 Rango: negativo INVALID, frena
facturas: [] Lista: vacía INVALID, frena

Garbage never reaches the engine.


Benchmark

Modo Latencia Throughput
Evaluación pura 14.9–30.7 µs 34,000–67,000/seg
+ SHA-256 audit 39.2–58.2 µs 17,000–25,000/seg
+ Ed25519 + JSONL 235–351 µs 2,800–4,200/seg

Mapa de Decisiones

Hora Decisión Alternativa Rechazada Razón
18:35 Track A, Policy Engine Computer Use, Memoria bi-temporal Más focalizado, más defendible
18:45 DSL genérico de negocio Solo agro Motor reusable
19:00 Grammar PEG propio policy.yaml Validación en parse time
19:15 Evaluador offline LLM evalúa reglas Determinístico, rápido, barato
20:04 Input Guardrail Sin validación Garbage never reaches engine
20:15 Executor con mock ERP Solo decisión Ejecuta, no asiste
20:30 Ed25519 firmas SHA-256 Auditoría fuerte
20:45 Scope: 5 políticas PolicyForge Foco en 8h

Honestidad: Qué Falta para Producto Real

Falta Por qué no está Cuándo se agrega
ERP real (Subio, Tango, AFIP) Frágil, debug costoso Integración futura
LLM en loop Fuera de gobernanza Módulo adicional
Dashboard visual No necesario en demo v2
10+ verticales Scope limitado Escalado
Fault injection avanzado Scope acotado Hardening

La Frase para SV

"No construimos el Operante completo. Construimos la pieza de gobernanza que lo hace confiable.
Resolvimos el cerebro que dice: 'podés', 'no podés', 'pedí permiso'.
Sin esto, ejecuta a ciegas. Con esto, ejecuta con contrato."


Resultado

Métrica Valor
Tests 34/34
Evaluación 14.9–30.7 µs
Throughput 34k–67k/s
Firmas Ed25519
Demo 3 casos + 4 fallas
Código Python, liviano

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors