综合介绍
Mahilo 是一个开源的多智能体集成平台,由开发者 Jayesh Sharma 在 GitHub 上发布,旨在帮助用户连接来自不同框架的 AI 智能体,支持实时通信、人机交互及智能协作。该平台提供通用接口,可集成 LangGraph、Pydantic AI 等框架的智能体,或通过自定义 API 添加智能体。它支持语音和文本交互,允许多用户与智能体在共享空间中协作。截至 2025 年 3 月,Mahilo 在 GitHub 上获得 50+ 星标,每月 PyPI 下载量超 500 次,适用于内容创作、紧急响应、房地产匹配等多样化场景。Mahilo 通过灵活的工具和模块简化多智能体系统的开发,让用户轻松构建复杂的自动化任务解决方案。
功能列表
- 通用智能体集成:支持连接 LangGraph、Pydantic AI 等框架的智能体,或通过 BaseAgent 接口自定义智能体。
- 实时通信:提供 WebSocket 连接,实现智能体间的即时语音和文本交互。
- 智能协作:智能体可通过 AgentManager 自主共享上下文和信息,提升任务效率。
- 多用户支持:允许多个用户与智能体在共享智能空间中实时协作。
- 语音功能:支持语音输入和输出,需额外安装 PyAudio。
- 组织级策略:跨智能体统一执行行为和安全策略,确保一致性。
- 灵活架构:支持构建复杂多智能体系统,适应多种通信模式。
使用帮助
安装流程
要在本地使用 Mahilo,您需要完成以下安装步骤:
- 环境要求
- 安装 Python 3.8 或以上版本。
- 安装 Git,用于克隆 GitHub 仓库。
- 若需语音功能,准备 PyAudio(具体安装见下文)。
- 克隆仓库
在终端运行以下命令获取 Mahilo 代码:
git clone https://github.com/wjayesh/mahilo.git
cd mahilo
- 安装依赖
进入项目目录,安装核心依赖:
pip install -r requirements.txt
若需语音支持,运行:
pip install "mahilo[voice]"
- 安装 PyAudio(语音功能依赖)
- Windows:运行
pip install pyaudio
,若失败可下载对应版本的.whl
文件安装。 - MacOS:先安装 Homebrew(
brew install portaudio
),再运行pip install pyaudio
。 - Linux:安装系统依赖(
sudo apt-get install portaudio19-dev
),然后运行pip install pyaudio
。
- 启动服务器
安装完成后,运行以下命令启动 WebSocket 服务器:
python -m mahilo.server
默认运行在 http://localhost:8000
,可通过配置文件修改地址和端口。
如何使用
Mahilo 的使用分为智能体定义、服务器运行和客户端交互三个主要步骤。以下是详细操作指南:
1. 定义和管理智能体
- 创建基本智能体:使用
BaseAgent
定义一个简单智能体,例如销售智能体:
from mahilo.agent import BaseAgent
from mahilo.agent_manager import AgentManager
sales_agent = BaseAgent(
type="sales_agent",
description="负责处理销售任务的智能体",
tools=["crm_tool"]
)
manager = AgentManager()
manager.register_agent(sales_agent)
- 集成外部框架智能体:以 LangGraph 为例:
from mahilo.integrations.langgraph.agent import LangGraphAgent marketing_agent = LangGraphAgent( langgraph_agent=graph_builder, name="MarketingAgent", description="营销策略智能体", can_contact=["sales_agent"] ) manager.register_agent(marketing_agent)
2. 启动 WebSocket 服务器
- 在脚本中初始化并运行服务器:
from mahilo.server import ServerManager server = ServerManager(manager) server.run()
- 服务器启动后,智能体即可通过 WebSocket 接受客户端连接。
3. 客户端连接与交互
- 文字交互:运行以下命令连接智能体:
python client.py --agent-name sales_agent
连接成功后,输入文字即可与智能体对话,例如“如何提高销量?”
- 语音交互:添加
--voice
参数启用语音功能:python client.py --agent-name sales_agent --voice
系统会监听麦克风输入,并通过扬声器返回语音响应。
4. 多智能体协作
- 上下文共享:多个智能体通过
AgentManager
管理对话上下文。例如,销售智能体可询问营销智能体:[sales_agent] 如何提高销量? [marketing_agent] 建议增加社交媒体广告投放。
- 多用户协作:多个客户端可同时连接,例如:
python client.py --agent-name buyer_agent python client.py --agent-name seller_agent
用户与智能体可在共享空间中实时互动,模拟多人协作场景。
5. 实际应用示例
- 故事编织(Story Weaver):运行协作内容创作应用:
story_agent = BaseAgent(type="story_agent", description="故事创作助手") manager.register_agent(story_agent) server.run()
连接后输入“开始一个冒险故事”,智能体会生成内容并与其他用户协作。
- 紧急响应协调:创建多个智能体处理信息并分配任务,例如:
emergency_agent = BaseAgent(type="emergency_agent", description="紧急响应协调")
- 房地产匹配:智能体可根据用户需求匹配房源并提供建议。
6. 调试与扩展
- 日志查看:服务器运行时会显示通信日志,例如智能体间的问题与回答,便于调试。
- 支持更多框架:目前支持 LangGraph 和 Pydantic AI,AutoGen 和 CrewAI 集成即将推出,用户可通过 GitHub 提交需求。
- 自定义扩展:参考
examples
目录中的示例代码,快速实现个性化功能。
注意事项
- 确保网络连接稳定,WebSocket 对延迟敏感。
- 使用语音功能前,测试麦克风和扬声器是否正常工作。
- 初次使用建议运行
examples
目录中的示例,熟悉基本功能。