trajectory-sentinel v0.1.0: correlación de señales de defensa de agentes
Problem
Cada sensor ve una parte. Un atacante puede pasar por uno que dice "allow" si otro ve deriva. Hace falta una capa que correlacione las señales y decida por la trayectoria completa, no por cada tool-call aislado.
What it does
trajectory-sentinel expone TrajectorySentinel y correlate(). Reglas deterministas (0-LLM):
block/killde cualquier sensor corta.goal-anchorve deriva mientras los demás dicenallow→ confirma riesgo.goal-anchoremitedrift_retract(ampliación humana tardía) → revisa el veredicto aallow, sin congelarse ni ocultar la alerta previa.- ≥2 sensores en
confirm→confirmagregado.
How it works
from trajectory_sentinel.monitor import TrajectorySentinel
from adi_shield.bus import LocalSignalBus
bus = LocalSignalBus()
sentinel = TrajectorySentinel(bus)
bus.publish(signal) # Signal de cualquier sensor
rec = sentinel.report(task_id="t1")
print(rec.to_dict()["correlated"]["verdict"])
El bus real (LocalSignalBus) se usa en los tests E2E; la integración con goal-anchor está verificada de punta a punta.
Audit results
- 13 tests en
trajectory-sentinel, todos verdes;rufflimpio. - Auditado en clone fresco (rama
main, commit35c02e2).
Limitations (honestamente)
La retractación es por tarea completa, no por sub-objetivo: si dos sub-objetivos derivan y solo uno se retracta, la tarea baja a allow entera. Está documentado en el README.
El sistema no está desplegado como middleware de un agente real.
Getting started
git clone --branch main https://github.com/amurlaniakea/trajectory-sentinel.git
cd trajectory-sentinel && python -m venv .venv && . .venv/bin/activate
pip install -e . && pip install -e ../adi-shield && pip install -e ../goal-anchor
pytest tests/ -v
Links
- Repo: https://github.com/amurlaniakea/trajectory-sentinel
- Licencia: AGPL-3.0-or-later.
- Autor: Pedro Sordo Martínez.
Comments
No comments yet. Start the discussion.