trajectory-sentinel v0.1.0: correlación de señales de defensa de agentes
DEV Community

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 / kill de cualquier sensor corta.
  • goal-anchor ve deriva mientras los demás dicen allow → confirma riesgo.
  • goal-anchor emite drift_retract (ampliación humana tardía) → revisa el veredicto a allow, sin congelarse ni ocultar la alerta previa.
  • ≥2 sensores en confirmconfirm agregado.

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; ruff limpio.
  • Auditado en clone fresco (rama main, commit 35c02e2).

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

Comments

No comments yet. Start the discussion.