sistema: OPERATIVO
← volver a todos los hacks
DEFENSE LOW NEW

AgentFlow: el análisis estático que detecta riesgos prompt-a-herramienta en el código de agentes

Un artículo de julio de 2026 construye un grafo de dependencias para programas de agentes LLM en cinco frameworks, genera una lista de materiales del agente (Agent BOM) y marca 238 riesgos prompt-a-herramienta de tipo taint en código real.

2026-07-07 // 7 min affects: llm-agents, agent-frameworks, multi-agent-orchestration, coding-agents

¿Qué es esto?

El 2 de julio de 2026, un grupo de investigadores publicó en arXiv AgentFlow: Building Agent Dependency Graphs for Static Analysis of Agent Programs. El artículo aborda un problema que ha crecido en silencio a medida que los agentes pasaron de las demostraciones a la producción: un agente LLM es ya una aplicación de software con todas las letras, y nadie dispone realmente de una forma de leer su estructura relevante para la seguridad como se lee un programa corriente.

Un programa de agente mezcla código convencional en el lenguaje anfitrión con una semántica propia del framework: enlaces de modelos, plantillas de prompts, declaraciones de herramientas, memorias y lógica de traspaso de control (handoff) entre agentes. Su comportamiento no depende solo de los flujos de control y de datos habituales, sino de una nueva clase de dependencias de agente expresadas mediante modismos del framework, como constructores de agentes, decoradores de herramientas y declaraciones de handoff. Las herramientas de análisis estático y de rastreo de dependencias convencionales no entienden esos modismos y por tanto los ignoran. AgentFlow se presenta como el primer marco de análisis estático diseñado específicamente para recuperar y razonar sobre esa estructura. Es un artículo sobre una herramienta defensiva, no un exploit.

Cómo funciona

AgentFlow analiza un programa de agente y construye un grafo de dependencias del agente (Agent Dependency Graph, ADG): una representación independiente del framework en la que agentes, prompts, modelos, capacidades, estados de memoria y políticas de control se convierten en nodos tipados, y sus relaciones se convierten en aristas tipadas para la dependencia entre componentes, el flujo de control y el flujo de datos.

   [prompt/template] --data-flow--> [agent] --capability--> [tool]
          ^                            |
   ¿entrada no confiable?        control-policy
                                       |
                                 [memory state] --handoff--> [agent B]

Una vez construido el grafo, admite dos análisis de seguridad difíciles de hacer a mano. El primero es la generación de una lista de materiales del agente (Agent Bill of Materials, BOM): un inventario de qué modelos, prompts, herramientas, memorias y subagentes conecta realmente un programa, el equivalente para agentes de una lista de materiales de software. El segundo es la detección de riesgo prompt-a-herramienta, un análisis de tipo taint que rastrea si un texto que entra en un prompt puede alcanzar una capacidad potente sin un control intermedio, que es la condición estructural detrás de la inyección de prompts indirecta y del secuestro de selección de herramientas.

Los autores implementan AgentFlow para cinco frameworks de agentes representativos y lo evalúan sobre AgentZoo, un corpus de 5 399 programas de agentes reales. Informan de que recupera entidades y dependencias más ricas que los analizadores de agentes basados en AST, produce Agent BOM más fieles a las dependencias y saca a la luz 238 riesgos prompt-a-herramienta de tipo taint en código real. Los nombres de los frameworks figuran en el artículo; lo que importa aquí es el alcance de la cobertura y ese recuento, ambos procedentes de las mediciones de los autores.

Por qué importa

La mayoría de las herramientas de seguridad para agentes se sitúan en el tiempo de ejecución: barreras de protección, filtros de salida, controles de autoridad en runtime. AgentFlow se sitúa antes, en el propio código, y así cubre un punto ciego real. El riesgo de cadena de suministro y de composición en los agentes reside en cómo se cablean los componentes: un prompt construido a partir de contenido recuperado, entregado a un agente que dispone de un shell o de una herramienta de pago, es la tríada letal expresada en el código fuente. No se puede gobernar lo que no se puede enumerar, y hoy la mayoría de los equipos no saben enumerar el grafo de herramientas de sus propios agentes.

Una Agent BOM es directamente útil para la gobernanza: permite a un revisor o auditor ver, programa por programa, qué modelos y herramientas entran en juego, dónde persiste la memoria de un turno a otro, y qué subagentes pueden ceder el control a cuáles. Los 238 flujos prompt-a-herramienta señalados recuerdan que estos cableados arriesgados no son hipotéticos: ya están presentes en código de agente en producción, esperando a que alguien los advierta.

Defensas

Tómelo como una técnica que adoptar, no solo como un artículo que leer.

Inventaríe antes de auditar. Una Agent BOM —sea cual sea la forma de producirla— convierte «tenemos algunos agentes» en una lista concreta de modelos, prompts, herramientas y memorias que se pueden revisar y aprobar de verdad.

Ejecute un análisis de taint sobre los flujos prompt-a-herramienta. El patrón peligroso es una entrada no confiable que alcanza una capacidad de alto impacto sin nada en medio. Marque esos caminos en la revisión de código y exija un control explícito (validación, confirmación humana o una frontera de capacidad) en cada uno.

Trate las construcciones del framework como ciudadanos de primera clase en la revisión. Decoradores de herramientas, constructores de agentes y declaraciones de handoff portan autoridad. Si su proceso de revisión solo lee funciones corrientes, se pierde precisamente las aristas que importan.

Mantenga el análisis estático acoplado a controles en runtime. Un grafo estático no puede verlo todo de lo que un agente hace en ejecución: llamadas a herramientas improvisadas por el modelo, skills cargados dinámicamente, contenido recuperado a mitad de tarea. Use el ADG para reducir y priorizar la superficie de ataque, y respáldelo con un acotamiento de herramientas de mínimo privilegio y supervisión en runtime, en vez de confiar en una sola capa.

Estado

ElementoDetalle
DivulgaciónPreprint académico, arXiv, 2 de julio de 2026
ContribuciónMarco de análisis estático; representación en grafo de dependencias del agente (ADG)
AnálisisGeneración de lista de materiales del agente (BOM); detección de riesgo prompt-a-herramienta de tipo taint
EvaluaciónCinco frameworks de agentes; corpus AgentZoo de 5 399 programas de agentes reales
Resultado claveRecuperación de entidades/dependencias más rica que las herramientas basadas en AST; 238 riesgos prompt-a-herramienta hallados
SalvedadSolo análisis estático — el comportamiento dinámico en runtime y la cobertura más allá de los cinco frameworks estudiados quedan abiertos

Sources