DEV Community

Cover image for wallet-guard v0.1.0: guardrails de bucle y presupuesto para agentes
Fenix
Fenix

Posted on

wallet-guard v0.1.0: guardrails de bucle y presupuesto para agentes

wallet-guard v0.1.0: guardrails de bucle y presupuesto para agentes

Sensor que corta bucles de reintento sin progreso y fuerza límites de
gasto, sin bloquear permanentemente por una confirmación legítima.

El problema

Un agente puede quedarse en un bucle de reintentos que nunca avanza, o gastar
más de lo autorizado. El riesgo opuesto es el bloqueo permanente: si una simple
petición de confirmación del usuario se trata como error, el agente se para
para siempre.

Qué hace

wallet-guard expone LoopGuard y un presupuesto. Dos comportamientos
verificados por tests:

  • Corte de bucle: si N reintentos no producen progreso medible, detiene.
  • Presupuesto: respeta un límite de gasto/configuración.
  • No bloqueo por confirmación: una petición de confirmación del usuario no cuenta como fallo irreversible (bug encontrado y corregido en auditoría).

Cómo funciona

from wallet_guard.guard import LoopGuard
guard = LoopGuard(max_retries=3, progress_fn=lambda s: s.done)
guard.observe(state)          # registra intento
if guard.should_stop():
    print("bucle sin progreso: cortado")
Enter fullscreen mode Exit fullscreen mode

Resultados de la auditoría

  • 8 tests en wallet-guard, todos verdes; ruff limpio.
  • Auditado en clone fresco (rama main, commit 372b2a9).

Limitaciones (honestamente)

El progreso se mide con un predicado que el integrador debe definir; el paquete
no infiere "progreso" por sí solo. No está enganchado aún como middleware de un
agente en producción.

Pruébalo

git clone --branch main https://github.com/amurlaniakea/wallet-guard.git
cd wallet-guard && python -m venv .venv && . .venv/bin/activate
pip install -e .
pytest tests/ -v
Enter fullscreen mode Exit fullscreen mode

Links


Licencia: AGPL-3.0-or-later. Autor: Pedro Sordo Martínez.

Top comments (0)