scope-lib v0.1.0: evaluación de alcance para agentes de IA en 3 criterios
El problema
Un agente autónomo recibe una tarea y ejecuta tool-calls. Sin una frontera de alcance, cualquier dato no confiable (un email, una web) puede desviarlo hacia acciones fuera de lo acordado. Hace falta un punto de decisión explícito y revisable, no enterrado en el prompt.
Qué hace scope-lib
scope-lib expone PolicyStore y load_policy_store, y evalúa cada acción contra tres criterios (ScopeVerdict.criterion):
i_subobjective- la acción sirve a un sub-objetivo del ancla.ii_resource- usa recursos declarados (no laterales).iii_transitive- el apoyo entre sub-objetivos es transitivo y acotado.
El fallo por defecto es deny: si no hay ancla confirmada, nunca se permite. Eso es el fail-safe "sin ancla = nunca allow".
Cómo funciona
from scope_lib import load_policy_store, ScopeVerdict
store = load_policy_store("policy.json")
v = ScopeVerdict(store, task_id="t1")
verdict = v.check(criterion="i_subobjective", claimed="research_prices")
print(verdict.allowed) # True/False, determinista
El store se versiona y persiste; goal-anchor y adi-shield lo reutilizan.
Resultados de la auditoría
- 10 tests en
scope-lib, todos verdes; ruff limpio. - Auditado de forma independiente en clone fresco público (rama
main, commit 83b626f).
Limitaciones (honestamente)
scope-lib es la capa de decisión, no el runtime que la invoca. Nadie ha enganchado todavía este paquete como middleware delante de un agente real; las pruebas son contra fixtures sintéticos, no tráfico de producción.
Pruébalo
git clone --branch main https://github.com/amurlaniakea/scope-lib.git
cd scope-lib && python -m venv .venv && . .venv/bin/activate
pip install -e .
pytest tests/ -v
Links
- Repo: https://github.com/amurlaniakea/scope-lib
- Licencia: AGPL-3.0-or-later.
- Autor: Pedro Sordo Martínez.
Comments
No comments yet. Start the discussion.