项目简介

Chaotic AF是一个基于Python的多智能体AI框架,旨在简化复杂多智能体系统的构建和管理。它采用Model Context Protocol (MCP) 作为核心通信机制,使得智能体能够轻松托管资源、注册工具并与其他智能体或LLM客户端进行高效协作。该框架支持智能体的独立进程运行、动态连接、健康监控、指标收集以及实时事件流,为LLM应用提供了安全、可扩展的上下文服务。

主要功能点

  • 多智能体管理: 轻松启动、停止和管理多个AI智能体进程。
  • MCP通信: 智能体通过标准化的Model Context Protocol (MCP) 进行双向通信和协作。
  • 工具与资源托管: 每个智能体可作为MCP服务器,向其他智能体或LLM客户端暴露工具和上下文信息。
  • 动态连接: 支持智能体间按需建立单向或双向连接,构建任意拓扑的智能体网络。
  • 健康监控与自恢复: 自动监测智能体健康状况,并在故障时尝试重启以保证系统稳定性。
  • 可观察性: 提供结构化日志、Prometheus兼容指标以及实时事件流,方便监控智能体行为。
  • 统一CLI工具: 命令行界面(CLI)提供便捷的智能体生命周期管理、状态查询和交互式聊天功能。
  • 隔离与并行: 智能体作为独立进程运行,确保进程隔离和真正的并行处理能力。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/HSRAKTU/chaotic-af
    cd chaotic-af
  2. 创建并激活虚拟环境:
    python -m venv agent_env
    source agent_env/bin/activate # macOS/Linux
    # agent_env\Scripts\activate # Windows
  3. 安装依赖:
    pip install -r requirements.txt
  4. 配置API Keys (在项目根目录下创建'.env'文件,并填入您的LLM API Key):
    GOOGLE_API_KEY=your-gemini-key
    OPENAI_API_KEY=your-openai-key   # 可选
    ANTHROPIC_API_KEY=your-anthropic-key   # 可选

MCP服务器配置

MCP客户端需要知道如何启动和连接MCP服务器。对于Chaotic AF框架,每个Agent都是一个独立的MCP服务器。以下是一个名为'customer_service'的Agent,其MCP服务器的配置信息示例(此信息是MCP客户端用于与Agent建立连接所需的知识,而非在Chaotic AF项目中进行的配置):

{
  "server_name": "customer_service",
  "command": "python",
  "args": [
    "-m", "agent_framework.network.agent_runner",
    "--config", "{\"name\": \"customer_service\", \"llm_provider\": \"google\", \"llm_model\": \"gemini-1.5-pro\", \"role_prompt\": \"You are a customer service representative.\\n\", \"port\": 9001, \"external_mcp_servers\": [], \"log_level\": \"INFO\", \"log_file\": \"logs/customer_service.log\", \"chaos_mode\": false}",
    "--available-agents", "customer_service,tech_support,billing,shipping"
  ],
  "url": "http://localhost:9001/mcp"
}

参数注释:

  • 'server_name': MCP服务器的唯一标识符,即Agent的名称(例如:'customer_service')。
  • 'command': 启动Agent进程所需的Python解释器路径(通常是'python')。
  • 'args': 启动Agent进程及其MCP服务器的命令行参数列表。
    • '-m agent_framework.network.agent_runner': 指定运行框架的Agent Runner模块。
    • '--config <JSON_CONFIG>': 包含Agent完整配置的JSON字符串。此JSON字符串应与您的Agent YAML配置文件中的'agent'和'logging'部分一致,并转换为单行JSON。
      • 'name': Agent名称。
      • 'llm_provider': LLM服务提供商(如'google')。
      • 'llm_model': LLM模型名称(如'gemini-1.5-pro')。
      • 'role_prompt': Agent的角色设定,决定其行为和能力。
      • 'port': MCP服务器监听的端口(例如:'9001')。
      • 'external_mcp_servers': Agent连接的外部MCP服务器列表(通常为空,因为内部Agent连接是动态管理的)。
      • 'log_level': Agent的日志级别。
      • 'log_file': Agent的日志文件路径。
      • 'chaos_mode': 是否启用Agent间的链式工具调用(设置为'true'或'false')。
    • '--available-agents <AGENT_LIST>': 逗号分隔的字符串,列出当前系统中已知的所有Agent名称。
  • 'url': MCP服务器的HTTP端点,MCP客户端将通过此URL进行JSON-RPC通信。

基本使用方法

  1. 定义Agent配置: 创建YAML文件(如'customer_service.yaml'和'tech_support.yaml'),定义您的Agent及其角色。
    # customer_service.yaml
    agent:
      name: customer_service
      llm_provider: google
      llm_model: gemini-1.5-pro
      role_prompt: |
        You are a customer service representative.
      port: 9001
    logging:
      level: INFO
      file: logs/customer_service.log
  2. 启动Agent: 使用CLI启动您的Agent。
    python -m agent_framework.cli.commands start customer_service.yaml tech_support.yaml
  3. 连接Agent: 建立Agent之间的通信连接。
    python -m agent_framework.cli.commands connect customer_service tech_support -b # 双向连接
  4. 与Agent聊天: 开始与Agent进行交互。
    python -m agent_framework.cli.commands chat customer_service "I need help with billing and Python imports"
  5. 查看Agent状态:
    python -m agent_framework.cli.commands status
  6. 停止Agent:
    python -m agent_framework.cli.commands stop

信息

分类

AI与计算