返回市场
二进制兼容微内核协议

二进制兼容微内核协议

作者:webdevtodayjason17 星标更新:2025-06-10

项目介绍

A2AMCP - Agent-to-Agent 模型上下文协议

License: MIT Docker Redis Status

实现无缝多代理协作的AI驱动开发

A2AMCP 将谷歌的代理到代理(A2A)通信概念引入模型上下文协议(MCP)生态系统,使AI代理能够在执行并行开发任务时实时通信、协调和协作。

最初为 SplitMind 创建,A2AMCP 解决了在同一代码库上工作的孤立AI代理之间缺乏彼此更改意识的关键问题。

✅ 服务器状态:运行中!已实现并测试了所有17个工具。使用现代MCP SDK 1.9.3。

🚀 快速开始

使用Docker(推荐)

# 克隆仓库
git clone https://github.com/webdevtodayjason/A2AMCP
cd A2AMCP

# 启动服务器
docker-compose up -d

# 验证是否正在运行
docker ps | grep splitmind

# 测试连接
python verify_mcp.py

配置您的代理

Claude Code (CLI)

# 使用Claude Code CLI添加MCP服务器
claude mcp add splitmind-a2amcp \
  -e REDIS_URL=redis://localhost:6379 \
  -- docker exec -i splitmind-mcp-server python /app/mcp-server-redis.py

Claude Desktop

在配置文件中添加(在macOS上的路径为 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "splitmind-a2amcp": {
      "command": "docker",
      "args": ["exec", "-i", "splitmind-mcp-server", "python", "/app/mcp-server-redis.py"],
      "env": {
        "REDIS_URL": "redis://redis:6379"
      }
    }
  }
}

🎯 A2AMCP解决了什么问题?

当多个AI代理在同一代码库上工作时:

  • 没有A2AMCP:代理创建冲突代码,重复努力,并导致合并冲突
  • 有A2AMCP:代理协调,共享接口,防止冲突,并作为一个团队工作

超出SplitMind的一般用例

A2AMCP可以协调任何多代理场景:

  • 微服务:不同代理构建不同的服务
  • 全栈应用:前端和后端代理协作
  • 文档:多个代理创建相互关联的文档
  • 测试:测试编写者与功能开发者协调
  • 重构:代理同时处理不同模块

🏗️ 架构

┌─────────────────┐
│   A2AMCP 服务器  │ ← 基于持久Redis的MCP服务器
│   (端口5050)   │   处理所有代理通信
└────────┬────────┘
         │ STDIO 协议(MCP)
    ┌────┴────┬─────────┬─────────┐
    ▼         ▼         ▼         ▼
┌────────┐┌────────┐┌────────┐┌────────┐
│代理1   ││代理2   ││代理3   ││代理N   │
│认证    ││概况    ││API     ││前端    │
└────────┘└────────┘└────────┘└────────┘

🔧 核心功能

1. 实时代理通信

  • 代理之间的直接查询
  • 广播消息
  • 异步消息队列

2. 文件冲突预防

  • 自动文件锁定
  • 冲突检测
  • 协商策略

3. 共享上下文管理

  • 接口/类型注册表
  • API合约共享
  • 依赖跟踪

4. 任务透明度

  • 待办事项列表管理
  • 进展可见性
  • 完成追踪
  • 任务完成信号

5. 多项目支持

  • 隔离的项目命名空间
  • 基于Redis的持久化
  • 自动清理

6. 现代MCP集成

  • 使用带有适当装饰器的MCP SDK 1.9.3
  • @server.list_tools()@server.call_tool() 模式
  • 基于STDIO的通信协议
  • 符合完整的A2AMCP API规范,实现了17个工具

📦 安装选项

Docker Compose(生产)

services:
  mcp-server:
    build: .
    container_name: splitmind-mcp-server
    ports:
      - "5050:5000"  # 更改端口以避免冲突
    environment:
      - REDIS_URL=redis://redis:6379
      - LOG_LEVEL=INFO
    depends_on:
      redis:
        condition: service_healthy
    restart: unless-stopped
  
  redis:
    image: redis:7-alpine
    container_name: splitmind-redis
    ports:
      - "6379:6379"
    volumes:
      - redis-data:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 10s
      retries: 5

volumes:
  redis-data:
    driver: local

Python SDK

pip install a2amcp-sdk

JavaScript/TypeScript SDK(即将推出)

npm install @a2amcp/sdk

🚦 使用示例

Python SDK

from a2amcp import A2AMCPClient, Project, Agent

async def run_agent():
    client = A2AMCPClient("localhost:5000")
    project = Project(client, "my-app")
    
    async with Agent(project, "001", "feature/auth", "构建认证") as agent:
        # 代理自动注册并维护心跳
        
        # 协调文件访问
        async with agent.files.coordinate("src/models/user.ts") as file:
            # 文件被锁定,安全修改
            pass
        # 文件自动释放
        
        # 分享接口
        await project.interfaces.register(
            agent.session_name,
            "User",
            "interface User { id: string; email: string; }"
        )

直接使用MCP工具

# 注册代理
register_agent("my-project", "task-001", "001", "feature/auth", "构建认证")

# 查询另一个代理
query_agent("my-project", "task-001", "task-002", "interface", "用户模式是什么?")

# 分享接口
register_interface("my-project", "task-001", "User", "interface User {...}")

📚 文档

🛠️ SDK 和工具

现已提供

  • Python SDK:具有异步支持的全功能SDK
  • Docker 部署:生产就绪容器

正在开发中

  • JavaScript/TypeScript SDK:适用于Node.js和浏览器
  • CLI 工具:用于监控的命令行界面
  • Go SDK:高性能编排
  • 测试框架:模拟服务器和测试工具

详情见 SDK 开发进度

🤝 与AI框架的集成

A2AMCP 设计用于:

  • SplitMind - 原始用例
  • Claude Code(通过MCP)
  • 任何兼容MCP的AI代理
  • 未来:LangChain,CrewAI,AutoGen

🔍 它与A2A有何不同

虽然受到谷歌A2A协议的启发,但A2AMCP针对AI代码开发做出了特定的设计选择:

功能谷歌A2AA2AMCP
协议基于HTTPMCP工具
状态无状态Redis持久化
关注点通用任务代码开发
部署每个代理服务器单个共享服务器

🚀 发展路线图

  • 带有Redis的核心MCP服务器
  • 现代MCP SDK 1.9.3集成
  • 固定装饰器模式(@server.list_tools()@server.call_tool()
  • Python SDK
  • Docker部署
  • 实现并测试了所有17个A2AMCP API工具
  • 监控健康检查端点
  • 测试连接的验证脚本
  • JavaScript/TypeScript SDK
  • CLI监控工具
  • SplitMind原生集成
  • 框架适配器(LangChain,CrewAI)
  • 企业特性

🛠️ 故障排除

代理无法看到 mcp__splitmind-a2amcp__ 工具

  1. 重启Claude Desktop - MCP连接在启动时建立
  2. 验证服务器是否运行docker ps | grep splitmind
  3. 检查健康端点curl http://localhost:5050/health
  4. 运行验证脚本python verify_mcp.py
  5. 检查配置:确保 ~/Library/Application Support/Claude/claude_desktop_config.json 包含A2AMCP服务器配置

常见问题

  • “工具‘X’尚未实现” - 在最新版本中修复,请拉取最新更改
  • 连接失败 - 确保Docker正在运行且端口5050/6379可用
  • Redis连接错误 - 等待Redis准备好(启动时大约需要5-10秒)

🤝 贡献

我们欢迎贡献!请参阅 CONTRIBUTING.md 获取指南。

开发环境设置

# 克隆仓库
git clone https://github.com/webdevtodayjason/A2AMCP
cd A2AMCP

# 安装依赖
pip install -r requirements.txt

# 运行测试
pytest

# 启动开发服务器
docker-compose -f docker-compose.dev.yml up

📊 性能

  • 处理100+并发代理
  • 子秒级消息传递
  • 死亡代理的自动清理
  • 水平扩展准备就绪

🔒 安全

  • 项目隔离
  • 可选身份验证(即将推出)
  • 加密通信(发展路线图)
  • 审计日志

📄 许可

MIT 许可证 - 详见 LICENSE 文件。

🙏 致谢

📞 支持


A2AMCP - 将孤立的AI代理转变为协调开发团队