DEV Community

Cover image for goal-anchor v0.1.0: integridad de objetivo para agentes multi-paso
Fenix
Fenix

Posted on

goal-anchor v0.1.0: integridad de objetivo para agentes multi-paso

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
Enter fullscreen mode Exit fullscreen mode

Resultados de la auditoría

  • 18 tests en goal-anchor, todos verdes; ruff limpio.
  • Auditado en clone fresco (rama main, commit 7b10ce2).

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
Enter fullscreen mode Exit fullscreen mode

Links


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

Top comments (0)