wallet-guard v0.1.0: guardrails de bucle y presupuesto para agentes
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
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; 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
Links
- Repo: https://github.com/amurlaniakea/wallet-guard
- Licencia: AGPL-3.0-or-later.
- Autor: Pedro Sordo Martínez.
Top comments (0)
Comments
No comments yet. Start the discussion.