Sobre el proyecto
Agent Interlock es un marco de trabajo de Python 3.11 (Apache-2.0) que aplica la idea de ingeniería de seguridad de un interlock a la interacción entre agentes. Los actores se declaran en manifiestos ActorSpec, la superficie de cada actor se envuelve con un SDK o proxy, y la comunicación entre ellos es observada, adjudicada y bloqueada para que solo se conecten los enlaces declarados.
El proyecto se centra en una puerta de enlace de herramientas MCP. Las amenazas M1 a M9 —envenenamiento de herramientas, rug pull, shadowing de herramientas, publicación de herramientas envenenadas, confused deputy o paso de tokens, compromiso del host desde el servidor MCP, descubrimiento o modificación de la configuración del agente, recolección de credenciales y exfiltración de datos— se gestionan a nivel de flujo de datos, cada una con veredictos predeterminados como QUARANTINE, BLOCK, HOLD, CHALLENGE o SANITIZE. La aplicación se promueve en etapas desde OBSERVE pasando por SHADOW hasta ENFORCE, y la promoción a ENFORCE requiere dos aprobaciones firmadas. Una única tabla de Check de 29 comprobaciones se encuentra detrás de tres puntos de aplicación, cada uno seleccionando su propio perfil: la puerta de enlace MCP con 21 comprobaciones, el SDK con 19 y el broker A2A con 17. El README establece claramente que el mecanismo es compartido pero la cobertura no lo es, y que el broker no tiene control de egreso, volumen o taint.
Los componentes incluyen el SDK (define_actor, connect, wrap), un runtime que intercepta la comunicación entre actores, un orquestador que ejecuta DAG de tareas verificados sobre transportes A2A, MCP y humanos, un broker A2A que gestiona tarjetas de agentes y tareas con pre-aplicación, un libro mayor (ledger) append-only que registra eventos de solicitud, veredicto, acción y resultado por separado, vistas de grafo para diseño, runtime y rutas de ataque, una interfaz web de Studio basada en cajas para la edición de arquitectura y exportación de manifiestos, un adaptador de Anthropic Tool Runner y un comando interlock verify que ejecuta nueve escenarios L1 contra las herramientas protegidas del propio proyecto en lugar de los fixtures del marco de trabajo.
Otras áreas evidenciadas incluyen la aplicación de MCP JSON-RPC tools/list, tools/call y list-changed vinculada a resúmenes de arquitectura; un cliente Streamable HTTP JSON/SSE con vinculación de sesión; descubrimiento de MCP OAuth, PKCE S256, introspección RFC 7662, verificación opcional de JWKS/JWT y consentimiento de loopback; un cliente stdio JSONL con anclaje de artefactos, atestación de sandbox firmada y planes de lanzamiento de Bubblewrap; admisión de procedencia firmada para publicadores; guardias de egreso por destino compiladas a partir de manifiestos de arquitectura; particionamiento de PostgreSQL, FORCE RLS basado en session_user y un adaptador de libro mayor append-only con APIs HTTP de eventos y trazas; ingesta OTLP/HTTP JSON; sumideros de auditoría firmados; reconciliación de deriva entre diseño y runtime para bordes multi-agente; límites de confianza internos/externos direccionales; y una suite de escenarios de extremo a extremo con datos falsos utilizando fixtures deterministas con direcciones .invalid.
El núcleo de referencia no tiene dependencias de runtime externas, con las integraciones de PostgreSQL y Anthropic como extras opcionales. El README es sincero sobre lo que no se incluye: ningún adaptador de LangGraph o Claude Agent SDK, ningún proxy sidecar, la interceptación del conector MCP del lado del servidor quedó fuera del alcance porque esas herramientas se ejecutan del lado del proveedor, un evaluador de aceptación que es solo estructural y un analizador de manifiestos que aún omite algunos campos y acciones de efecto secundario. También registra que el SDK no puede acceder a la API de aprobación de la puerta de enlace, por lo que una escritura externa desde una herramienta envuelta falla en modo cerrado en lugar de ser aprobable desde el SDK. El trabajo de integración externa genuino, como Sigstore, KMS/HSM, proveedores de identidad, sidecars de egreso reales, TLS y limitación de tasa distribuida, figura como pendiente.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.