项目简介

AIRA Hub & Agent Manager 是一个模块化系统,旨在帮助 AI 助手(如 Claude Desktop)发现并利用本地或远程托管的工具。它由两个主要部分组成:

  1. AIRA Hub: 中央注册中心和代理服务。它跟踪所有已注册的 Agent 及其提供的工具、资源和 Prompt,并为连接的客户端(如 LLM)提供发现服务和工具调用代理。
  2. Agent Manager: 一个本地服务,用于启动、管理基于 Stdio 协议的本地 MCP 服务器进程,并将它们作为 Agent 注册到 AIRA Hub。它还充当这些本地服务器的 MCP 请求代理。

通过这种架构,LLM 客户端只需连接到 AIRA Hub,即可发现并调用由本地 Agent Manager 管理的本地工具,或者由其他远程 Agent 直接注册到 Hub 的工具。

主要功能点

  • AI Agent 注册与发现: Agent 可以向 Hub 注册自己及其能力(MCP 工具、A2A 技能等),客户端可以查询 Hub 来发现可用的 Agent 和工具。
  • MCP 工具代理: Hub 接收来自客户端的 MCP 工具调用请求,查找提供该工具的 Agent,并将请求路由或代理到目标 Agent 的 MCP 端点(包括通过 Agent Manager 代理到本地 Stdio 进程)。
  • 本地 Stdio MCP 服务器管理: Agent Manager 可以根据配置文件启动和监控本地 Stdio MCP 服务器进程,使其成为 LLM 可用的 Agent。
  • A2A 协议集成: Hub 支持 A2A 协议的发现功能,并能将特定配置的 MCP 工具调用桥接(翻译)为 A2A 任务发送给支持 A2A 的 Agent。
  • 状态监控与心跳: Agent Manager 会监控本地 Stdio 进程的状态,Agent 和 Agent Manager 都会向 Hub 发送心跳,Hub 跟踪 Agent 的在线状态。

安装步骤

  1. 安装前提:

    • Python 3.8+
    • Node.js & npm/npx (如果需要运行基于 Node.js 的本地 Stdio MCP 服务器)
    • MongoDB (本地安装或使用云服务,如 MongoDB Atlas)
    • Tunneling 服务 (如果 AIRA Hub 运行在远程,而 Agent Manager 和本地 MCP 服务器运行在本地内网,需要使用 ngrok 或 Cloudflare Tunnel 等将本地 Agent Manager 的端口暴露给公网)
  2. 克隆仓库:

    git clone https://github.com/IhateCreatingUserNames2/AiraHub2.git
    cd AiraHub2
  3. 设置 AIRA Hub:

    • 安装 Python 依赖:
      pip install fastapi uvicorn motor pydantic python-dotenv httpx
    • 创建 '.env' 文件配置 MongoDB 连接 URL。示例 ('.' 开头的文件可能需要特殊命令显示):
      MONGODB_URL=mongodb+srv://<用户名>:<密码>@<集群名称>.mongodb.net/<数据库名>?retryWrites=true&w=majority
      请将 '<用户名>'、'<密码>'、'<集群名称>' 和 '<数据库名>' 替换为您的 MongoDB 连接信息。
    • 运行 Hub 服务器:
      python aira_hub.py
  4. 设置 Agent Manager:

    • 安装 Python 依赖 (如果与 Hub 在不同环境中):
      pip install fastapi uvicorn pydantic python-dotenv httpx
    • 创建 '.env' 文件配置 AIRA Hub 的 URL 和 Agent Manager 的公共可访问 URL。示例:
      AIRA_HUB_URL=https://your-aira-hub.example.com # 替换为你的 AIRA Hub 公网 URL
      AGENT_MANAGER_PUBLIC_URL=https://your-tunnel-url.ngrok-free.app # 替换为你的内网穿透后的 Agent Manager 公网 URL
      AGENT_MANAGER_PORT=9010 # 可选,如果需要指定 Agent Manager 监听端口
    • 创建 'mcp_servers.json' 文件配置要管理的本地 MCP 服务器。示例:
      [
        {
          "id": "my-local-stdio-server",
          "name": "我的本地工具服务器",
          "enabled": true,
          "connection": {
            "type": "stdio",
            "command": ["<本地MCP服务器的启动命令>", "<参数1>", "<参数2>", "..."]
            // 例如: ["npx.cmd", "-y", "@modelcontextprotocol/server-sequential-thinking"]
            // 或: ["python", "path/to/your/mcp_stdio_server.py"]
          },
          "aira_hub_registration": {
            "base_url": "local://agent-manager/my-local-stdio-server", // 注册到 Hub 的唯一标识 URL (建议使用 local://scheme)
            "description": "运行在本地 Agent Manager 下的工具",
            "tags": ["本地", "常用工具"],
            "category": "实用工具",
            "provider_name": "AgentManager/我的电脑" // 标识提供者
          }
        }
        // 可以添加更多本地 Stdio 或远程 HTTP/SSE MCP 服务器配置
      ]
      将 'command' 字段替换为你的本地 MCP 服务器的实际启动命令和参数。'aira_hub_registration.base_url' 是 Agent Manager 将自己注册到 Hub 时使用的标识符,客户端通常不会直接使用它,但需要保证唯一性。
    • 运行 Agent Manager 服务器:
      python agent_manager.py
  5. 设置 Tunneling (如果需要):

    • 根据你选择的 Tunneling 服务(如 ngrok),启动一个隧道指向 Agent Manager 监听的端口(默认为 9010)。
    • 示例 (ngrok): 'ngrok http 9010'
    • 将 Tunneling 服务提供的公共 URL 填入 Agent Manager 的 '.env' 文件中的 'AGENT_MANAGER_PUBLIC_URL'。

服务器配置(MCP 客户端视角)

LLM 客户端(如支持 MCP 的 Claude Desktop)需要配置连接到 AIRA Hub 的 主 MCP 端点。通常这是 Hub 的 '/mcp/stream' 或 '/mcp' HTTP 端点。

以下是 MCP 客户端配置示例(具体格式取决于客户端应用,此处以 README 中的 Claude Desktop 格式为例):

{
  "mcpServers": {
    "my-aira-hub": {
      "url": "https://your-aira-hub.example.com/mcp/stream" // 替换为你的 AIRA Hub 的公共 URL
    }
    // 可以配置多个 Hub
  }
}

客户端连接到 Hub 后,会通过 MCP 协议自动进行初始化 ('initialize')、列出工具 ('tools/list') 等操作,并发现 Agent Manager 注册的或 Hub 直接注册的 Agent 提供的工具。

基本使用方法

  1. 确保 MongoDB 实例正在运行。
  2. 启动 AIRA Hub ('python aira_hub.py')。
  3. 如果你的 Agent Manager 运行在内网且 Hub 在公网,启动 Tunneling 服务并将公共 URL 配置到 Agent Manager 的 '.env' 文件。
  4. 启动 Agent Manager ('python agent_manager.py')。Agent Manager 会根据 'mcp_servers.json' 启动本地 Stdio 服务器并将其注册到 Hub。
  5. 配置你的 MCP 客户端(如 Claude Desktop)连接到 AIRA Hub 的 '/mcp/stream' 端点。
  6. 在 MCP 客户端中,你应该能够发现由 Agent Manager 托管的本地工具以及 Hub 中注册的其他远程工具。

信息

分类

AI与计算