项目简介
Chaotic AF是一个基于Python的多智能体AI框架,旨在简化复杂多智能体系统的构建和管理。它采用Model Context Protocol (MCP) 作为核心通信机制,使得智能体能够轻松托管资源、注册工具并与其他智能体或LLM客户端进行高效协作。该框架支持智能体的独立进程运行、动态连接、健康监控、指标收集以及实时事件流,为LLM应用提供了安全、可扩展的上下文服务。
主要功能点
- 多智能体管理: 轻松启动、停止和管理多个AI智能体进程。
- MCP通信: 智能体通过标准化的Model Context Protocol (MCP) 进行双向通信和协作。
- 工具与资源托管: 每个智能体可作为MCP服务器,向其他智能体或LLM客户端暴露工具和上下文信息。
- 动态连接: 支持智能体间按需建立单向或双向连接,构建任意拓扑的智能体网络。
- 健康监控与自恢复: 自动监测智能体健康状况,并在故障时尝试重启以保证系统稳定性。
- 可观察性: 提供结构化日志、Prometheus兼容指标以及实时事件流,方便监控智能体行为。
- 统一CLI工具: 命令行界面(CLI)提供便捷的智能体生命周期管理、状态查询和交互式聊天功能。
- 隔离与并行: 智能体作为独立进程运行,确保进程隔离和真正的并行处理能力。
安装步骤
- 克隆仓库:
git clone https://github.com/HSRAKTU/chaotic-af cd chaotic-af - 创建并激活虚拟环境:
python -m venv agent_env source agent_env/bin/activate # macOS/Linux # agent_env\Scripts\activate # Windows - 安装依赖:
pip install -r requirements.txt - 配置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通信。
基本使用方法
- 定义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 - 启动Agent: 使用CLI启动您的Agent。
python -m agent_framework.cli.commands start customer_service.yaml tech_support.yaml - 连接Agent: 建立Agent之间的通信连接。
python -m agent_framework.cli.commands connect customer_service tech_support -b # 双向连接 - 与Agent聊天: 开始与Agent进行交互。
python -m agent_framework.cli.commands chat customer_service "I need help with billing and Python imports" - 查看Agent状态:
python -m agent_framework.cli.commands status - 停止Agent:
python -m agent_framework.cli.commands stop
信息
分类
AI与计算