Skip to content

Eros Code Analysis Agent #145

Description

Track

Reasoning Agents (Azure AI Foundry)

Project Name

EROS CODE ANALYSIS AGENT

GitHub Username

raulrodriguezmesia-blip

Repository URL

https://github.com/raulrodriguezmesia-blip/eros-code-analysis-agent

Project Description

Eros Code Analysis Agent es un agente AI de análisis estático de código multi-etapa construido para el track Reasoning Agents de Agents League Hackathon 2026.

El agente ejecuta un pipeline estructurado de 5 fases secuenciales:
(1) Syntax Check,
(2) Quality Review,
(3) Security Audit,
(4) Performance Analysis y
(5) Refactoring.
Cada fase representa un paso de razonamiento clínico que fuerza al LLM a pensar de forma disociada antes de generar respuesta, evitando el prompting lineal directo.

Integra Microsoft Foundry IQ como capa de inteligencia, utilizando el Foundry Toolbox para orquestar el flujo de reasoning. A diferencia de asistentes tradicionales, Eros no devuelve una respuesta directa; primero completa todo el pipeline Chain-of-Thought y luego entrega un reporte JSON determinista con hallazgos accionables.

El proyecto incluye: servidor principal en Python, script de simulación de terminal con animación phase-by-phase, entrada de demo con código vulnerable (SQL injection) y salida estructurada. Valida automáticamente código Python detectando OWASP Top 10 risks, problemas de performance y propone refactors seguros con cero regresión lógica.

Tech stack: Python, Microsoft Foundry IQ, Foundry Toolbox, Azure Agent Server SDK.

Demo Video or Screenshots

https://youtu.be/aKqzT4fn4WY

Primary Programming Language

Python

Key Technologies Used

  • Python 3.11+ (async/await)
  • Azure AI Agent Server SDK (azure-ai-agentserver-responses)
  • Microsoft Foundry IQ / Foundry Toolbox
  • Azure Identity (azure-identity)
  • OpenAI SDK
  • python-dotenv
  • aiofiles

Submission Type

Individual

Team Members

raulrodriguezmesia-blip

Submission Requirements

  • My project meets the track-specific challenge requirements
  • My repository includes a comprehensive README.md with setup instructions
  • My code does not contain hardcoded API keys or secrets
  • I have included demo materials (video or screenshots)
  • My project is my own work with proper attribution for any third-party code
  • I agree to the Code of Conduct
  • I have read and agree to the Disclaimer
  • My submission does NOT contain any confidential, proprietary, or sensitive information
  • I confirm I have the rights to submit this content and grant the necessary licenses

Quick Setup Summary

  1. git clone https://github.com/raulrodriguezmesia-blip/eros-code-analysis-agent
  2. cd eros-code-analysis-agent
  3. pip install -r requirements.txt
  4. python run_simulation.py

Technical Highlights

  1. Pipeline de 5 fases secuenciales de razonamiento estructurado: separa el pensamiento (Chain-of-Thought) de la respuesta final, evitando prompting lineal directo. Cada fase es un paso clínico que el LLM debe completar antes de continuar.

  2. Language detection dinámico inline: detecta el lenguaje del código analizado en tiempo real ("def " in code) sin dependencias de parsers externos pesados, manteniendo el core liviano.

  3. Reporte JSON determinista generado 100% en el servidor: no hay llamadas a APIs externas en el pipeline core — el hallazgo se construye con list comprehension inline sobre un array de fases, garantizando salida reproducible y auditable.

  4. Arquitectura async con yield streaming: usa ResponseObject + yield del Azure Agent Server SDK para emitir resultados fase por fase, permitiendo visualización progresiva en el cliente sin bloquear el event loop.

  5. Simulación de terminal con typewriter effect (run_simulation.py): muestra el razonamiento fase por fase en consola con delays realistas (0.01s por carácter), emulando el comportamiento del agente en producción sin necesidad de deploy real.

  6. Diseño minimalista sin over-engineering: core de 30 líneas en main.py, sin frameworks pesados, sin ORMs, sin colas de mensajes — prioriza velocidad de ejecución y legibilidad sobre funcionalidad innecesaria.

Challenges & Learnings

Retos:

  1. Diseñar un pipeline que realmente fuerce multi-step reasoning en lugar de un único prompt genérico. El desafío fue estructurar las fases como pasos clínicos independientes que el LLM no pueda saltear.

  2. Integrar correctamente el Azure Agent Server SDK (ResponsesAgentServerHost + ResponseObject) con el patrón async/yield streaming, ya que la documentación beta tiene breaking changes frecuentes y poco ejemplo práctico.

  3. Mantener el submission dentro de los límites de información pública: evitar filtrar API keys, credenciales de Azure o datos de Foundry IQ en el código, lo que obligó a externalizar toda la configuración por .env.

  4. Generar un demo video y material de simulación que funcione sin dependencias cloud activas, asegurando que los evaluadores puedan correr el flujo completo en local.

Aprendizajes:

  1. El verdadero valor de un reasoning agent no está en la respuesta final, sino en la traza estructurada (Chain-of-Thought) que queda auditable y reproducible.

  2. Microsoft Foundry IQ cambia el paradigma: en lugar de "preguntar y responder", se diseña un protocolo de diagnóstico que el modelo sigue paso a paso. Eso es lo que diferencia un agente de un chatbot.

  3. Menos código es más: un core de 30 líneas puede ser más robusto que una arquitectura over-engineered, especialmente en hackathons donde el tiempo es limitado.

  4. La comunidad de Agents League (Discord + Microsoft Reactor) es clave para desbloquear problemas técnicos rápidamente — los AMAs en vivo valen más que horas de debugging.

Contact Information

raulrodriguezmesia@gmail.com / https://www.linkedin.com/in/raul-rodriguez-mesia/

Country/Region

peru

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions