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")
Resultados de la auditoría
- 8 tests en
wallet-guard, todos verdes;rufflimpio. - Auditado en clone fresco (rama
main, commit372b2a9).
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
Links
Licencia: AGPL-3.0-or-later. Autor: Pedro Sordo Martínez.
Top comments (0)