proyecto-tfg
This project implements a communication system for distributed intelligent agents. It integrates the MCP (Model Context Protocol) and A2A protocols, providing an open and extensible architecture aimed at sovereign data access in data spaces. The design maintains agent autonomy while adhering to principles of interoperability and identity management.
GitHub Stars
0
User Rating
Not Rated
Favorites
0
Views
36
Forks
0
Issues
0
JAR-A2A: Comunicación Multiagente Soberana con Protocolos MCP y A2A
Este repositorio contiene la implementación de un sistema de comunicación multiagente basado en modelos de lenguaje (LLM), construido como prueba de concepto del protocolo JAR-A2A (Any-to-Any). El sistema integra dos protocolos inspirados en la literatura reciente: MCP (Model Context Protocol) y A2A, con un diseño modular preparado para su integración futura con marcos de identidad soberana y espacios de datos federados.
🔍 Propósito del Proyecto
Este trabajo se enmarca en un proyecto de investigación centrado en la intersección entre:
- Comunicación entre agentes inteligentes distribuidos
- Acceso soberano a datos en entornos federados (Data Spaces)
- Estándares emergentes como Google A2A y Gaia-X Trust Framework
El objetivo principal es ofrecer una arquitectura abierta y extensible para la mensajería entre agentes autónomos, compatible con principios de interoperabilidad, trazabilidad y control de identidad.
🧱 Estructura del Sistema
El sistema se compone de tres microservicios principales:
- LLM Agent: Genera consultas SQL a partir de preguntas en lenguaje natural.
- MCP Server: Actúa como broker, registrador y pasarela de acceso a la base de datos.
- Ventas Agent: Ejecuta consultas SQL y devuelve resultados estructurados.
- 🧪 DuckDB + Apache Iceberg: se ha utilizado un lake-house local con la tabla
iceberg_space.ventasque contiene: fecha(DATE)producto(TEXT)cantidad(INTEGER)precio(DOUBLE)
- 🧪 DuckDB + Apache Iceberg: se ha utilizado un lake-house local con la tabla
Todos los servicios se comunican utilizando el protocolo JAR-A2A, que extiende el modelo de envelopes definido por Google con mecanismos de control asincrónico, retransmisión, discovery semántico y separación lógica de servicios.
🧪 Funcionalidades implementadas
- Registro dinámico de agentes y descubrimiento por capacidades
- Confirmación de entrega (ACKs) y retransmisión en caso de fallo
- Heartbeats periódicos para supervisión de disponibilidad
- Correlación de mensajes mediante
correlation_id - Exposición de servicios contextualizados vía protocolo MCP
- Generación automática de SQL a partir de lenguaje natural con LLM local
- Comunicación A2A entre agentes mediante mensajes JSON estructurados
⚙️ Tecnologías empleadas
- Python 3.11
- FastAPI
- Docker & Docker Compose
- DuckDB
- Apache Iceberg
- TinyLlama (modelo LLM local)
- JWT (explorado para futura integración de seguridad federada)
🚀 Despliegue local
El proyecto se despliega localmente mediante Docker Compose:
docker compose build
docker compose up
Para replicar las pruebas del flujo de comunicación realizadas durante la documentación del proyecto, se puede hacer uso del script cli.py:
python scripts/cli.py "Introduzca-consulta-al-LLM"
Asegúrate de que los puertos 8000, 8002 y 8003 estén libres. La interfaz de consulta está expuesta en el puerto 8003 bajo el endpoint /query.
Consideraciones de seguridad
Aunque el sistema no incorpora por defecto mecanismos criptográficos, ha sido diseñado para permitir en el futuro:
Firma de mensajes (JWT + RS256)
Identidad descentralizada (DID + Verifiable Credentials)
Validación de políticas de autorización y trazabilidad
Puede consultarte la exploración a esta aproximación implementada en la rama security.
0
Followers
6
Repositories
0
Gists
0
Total Contributions
The mcp-client-for-ollama is a simple yet powerful Python client designed for interacting with Model Context Protocol (MCP) servers using Ollama. This client enables local large language models (LLMs) to utilize tools effectively. It primarily facilitates communication with APIs, streamlining workflows and enhancing the capabilities of LLMs.