关于 Documentación del TFG: Interconexión entre Espacios de Datos e Inteligencia Artificial Generativa
面向研究的多 Agent 系统,可协调 LLM Agent 并查询本地 DuckDB 与 Apache Iceberg 数据湖。它将 MCP 数据访问与 JAR-A2A 消息机制结合,支持 Agent 发现和送达确认。
主要功能
- 01将自然语言问题转换为 SQL
- 02查询 DuckDB 与 Apache Iceberg
- 03动态注册与发现 Agent
- 04消息确认与失败重传
- 05结构化 A2A Agent 通信
适用场景
- 01用自然语言查询销售数据
- 02协调分布式 Agent 并跟踪消息送达
MCP 相关
MCP 服务充当数据库的代理与访问网关,向 Agent 暴露带上下文的服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
JAR-A2A:基于 MCP 和 A2A 协议的主权多智能体通信
此仓库包含一个基于大模型(LLM)的多智能体通信系统实现,作为 JAR-A2A(Any-to-Any)协议的概念验证。系统集成了受近期文献启发的两种协议:**MCP(Model Context Protocol)**和 A2A,采用模块化设计,可为未来集成主权身份框架和联邦数据空间做好准备。
🔍 项目目的
本项目属于一项研究,重点关注以下领域的交叉:
- 分布式智能 Agent 之间的通信
- 联邦环境(Data Spaces)中的主权数据访问
- Google A2A 和 Gaia-X Trust Framework 等新兴标准
主要目标是提供一个开放、可扩展的自主 Agent 间消息传递架构,兼容互操作性、可追溯性和身份控制原则。
🧱 系统结构
系统由三个主要微服务组成:
- LLM Agent:根据自然语言问题生成 SQL 查询。
- MCP Server:充当数据库的代理、注册器和访问网关。
- Ventas Agent:执行 SQL 查询并返回结构化结果。
-
- 🧪 DuckDB + Apache Iceberg:使用了一个本地 lake-house,其中的表
iceberg_space.ventas包含: fecha(DATE)producto(TEXT)cantidad(INTEGER)precio(DOUBLE)
- 🧪 DuckDB + Apache Iceberg:使用了一个本地 lake-house,其中的表
所有服务均使用 JAR-A2A 协议进行通信。该协议扩展了 Google 定义的信封模型,并加入异步控制、重传、语义发现和服务逻辑分离机制。
🧪 已实现的功能
- Agent 动态注册和按能力发现
- 交付确认(ACK)和故障时重传
- 定期发送心跳以监控可用性
- 通过
correlation_id关联消息 - 通过 MCP 协议提供上下文服务
- 使用本地 LLM 根据自然语言自动生成 SQL
- Agent 之间通过结构化 JSON 消息进行 A2A 通信
⚙️ 所用技术
- Python 3.11
- FastAPI
- Docker & Docker Compose
- DuckDB
- Apache Iceberg
- TinyLlama(本地 LLM 模型)
- JWT(已探索用于未来集成联邦安全)
🚀 本地部署
项目通过 Docker Compose 在本地部署:
docker compose build
docker compose up
如需复现项目文档编写期间进行的通信流程测试,可以使用脚本 cli.py:
python scripts/cli.py "Introduzca-consulta-al-LLM"
请确保端口 8000、8002 和 8003 未被占用。查询接口通过端口 8003 上的端点 /query 提供。
安全注意事项
虽然系统默认不包含加密机制,但设计时已考虑支持未来集成以下功能:
-
消息签名(JWT + RS256)
-
去中心化身份(DID + Verifiable Credentials)
-
授权策略验证和可追溯性
可在 security 分支查看对此实现方案的探索。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。