goal-anchor v0.1.0: integridad de objetivo para agentes multi-paso
Sensor contra Agent Goal Hijack: detecta desviación del objetivo acordado,
con ancla confirmada por humano y ampliación autorizada en medio del paso.
El problema
En tareas largas, un atacante puede redirigir al agente hacia un objetivo
distinto manteniendo apariencia de éxito (WebTrap). Hace falta una referencia
de objetivo que el humano confirma y que el agente no puede reescribir solo.
Qué hace
goal-anchor expone GoalAnchor, AnchorProposal y DriftMonitor.
- Capa 1 (estructural, 0-LLM): señal acumulada de hitos reclamados fuera del ancla. Detecta deriva brusca (caso T3 del corpus).
- Capa 2 (semántica): interfaz pluggable de embedder. El stub por defecto no es operacional a propósito — documentado como gap conocido.
- confirm_amplification(): ampliación tardía validada (el ancla debe estar confirmada primero) que retrata cicatrices sin borrar el rastro.
Cómo funciona
from goal_anchor.anchor import GoalAnchor, AnchorProposal
ga = GoalAnchor("store.json", human_secret="h")
a = ga.propose(AnchorProposal("t1", "precios de vuelos a Madrid",
["research_prices"]))
ga.confirm(a) # ancla fijada por humano
sig = ga.report_drift("t1", "iii_transitive", "otra_cosa")
print(sig.soft_score) # 0.0..1.0, determinista
Resultados de la auditoría
- 18 tests en
goal-anchor, todos verdes;rufflimpio. - Auditado en clone fresco (rama
main, commit7b10ce2).
Limitaciones (honestamente)
La Capa 2 no cierra el vector WebTrap sutil (T1/T2/T4): redirecciones con
texto lexicalmente ortogonal al ancla. Lo verifiqué contra el corpus — ninguna
técnica léxica sin modelo (n-gramas, TF-IDF, edición) da señal sobre 0.00 ahí.
Quedó como gap documentado, no maquillado. El hook de ejecución real no está
desplegado.
Pruébalo
git clone --branch main https://github.com/amurlaniakea/goal-anchor.git
cd goal-anchor && 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)