项目简介

该框架提供了一个构建符合Google Agent-to-Agent (A2A) 协议的智能体后端解决方案。它通过集成Model Context Protocol (MCP),使得智能体能够方便地访问外部数据源和功能(工具)。该项目旨在帮助开发者构建可互操作的单智能体和多智能体系统,提供了完整的后端(Python)和前端(Node.js)示例,是一个功能丰富且可用于生产环境的框架。

主要功能点

  • 与Google A2A协议完全兼容: 严格遵循官方A2A规范构建。
  • 通过MCP协议调用外部工具和服务: 智能体后端作为MCP客户端,能无缝集成和调用各种外部工具(如搜索、RAG等)。
  • 支持单智能体和多智能体协作模式: 支持构建独立的智能体,也能通过协调Agent实现多智能体协作完成复杂任务。
  • 提供后端服务器和前端界面(示例): 包含开箱即用的后端服务和用于单/多智能体交互的前端界面示例。
  • 灵活集成多种大型语言模型 (LLM): 支持配置和使用多种主流LLM,包括OpenAI、DeepSeek、Anthropic、Ollama等。

安装步骤

  1. 安装前置依赖:

    • 确保您的系统已安装 Python 3.10 或更高版本。
    • 确保您的系统已安装 Node.js 16 或更高版本。
    • 确保您已安装 Python 包管理器 pip 和 Node.js 包管理器 npm。
  2. 克隆仓库:

    git clone https://github.com/johnson7788/A2AServer.git
  3. 安装后端依赖:

    cd A2AServer/backend/A2AServer
    pip install .
  4. 安装前端依赖 (如果需要运行前端示例):

    • 单智能体前端:
      cd ../../frontend/single_agent
      npm install
    • 多智能体前端:
      cd ../../frontend/multiagent_front
      npm install

MCP工具配置示例 (供Agent作为MCP客户端时参考)

本框架中的智能体后端通过读取MCP配置文件(如 'mcp_config.json')来发现和连接外部的MCP工具服务器。以下是MCP配置文件中用于定义工具服务器的示例格式:

{
  "mcpServers": {
    "SearchToolServer": { // 工具服务器的内部名称,Agent会使用此前缀区分工具
      "command": ["python", "mcpserver/search_tool.py"], // 启动该工具服务器进程的命令
      "args": [], // 传递给启动命令的参数
      "env": {} // 启动进程所需的环境变量(如API Key),通常从.env加载
    },
    "RAGToolServer": {
      "command": ["python", "mcpserver/rag_tool.py"],
      "args": [],
      "env": {}
    }
    // ... 可以配置其他 MCP 工具服务器
  },
  "models": [
      // ... LLM 模型配置
  ]
}

注意:此配置定义了Agent(作为MCP客户端)如何连接并启动其所依赖的外部MCP工具服务器。用户自己的MCP客户端通常只需配置Agent服务器本身的URL(例如 'http://localhost:10004'),并通过Agent调用这些工具。

基本使用方法

  1. 启动一个示例Agent服务器: 选择一个示例Agent(如 'DeepSearch' 或 'AgentRAG'),进入其目录并运行主脚本:

    # 启动DeepSearch Agent (默认端口 10004)
    cd A2AServer/backend/DeepSearch
    python main.py --port 10004

    # 启动AgentRAG Agent (默认端口 10005)
    cd A2AServer/backend/AgentRAG
    python main.py --port 10005

    确保Agent所依赖的MCP工具(如 'search_tool.py' 或 'rag_tool.py')已根据Agent目录下的'mcp_config.json'配置并能正常启动。

  2. 与Agent服务器交互:

    • 使用提供的Python客户端: 打开一个新的终端,进入'backend'目录,并运行客户端脚本,指定Agent的URL:
      cd A2AServer/backend
      python client.py --agent http://localhost:10004
      您可以输入文本与Agent进行问答交互。
    • 使用前端界面示例: 如果安装了前端依赖,进入相应的'frontend'目录,启动开发服务器:
      # 例如启动单智能体前端
      cd A2AServer/frontend/single_agent
      npm run dev
      在浏览器中打开提示的URL,添加Agent地址(如 'localhost:10004'),即可通过图形界面与Agent交互。

信息

分类

AI与计算