一个用于管理和协调多个AI Agent的Python框架,能够自动发现Agent功能、生成执行计划、分解复杂任务,并提供完整的任务追踪。
- 自动发现Agent:通过RESTful API自动发现和理解其他Agent的功能
- 智能任务规划:根据用户需求和可用Agent生成最优执行计划
- 任务自动分解:当上下文超过阈值时,自动将复杂任务切割为子任务
- 完整追踪系统:为每个任务和子任务生成唯一的traceID,便于追踪和调试
- 并行执行:支持并行执行多个子任务,提高处理效率
- 结果聚合:自动聚合多个子任务的执行结果
- Python 3.7+
- pip
pip install -r requirements.txtfrom agent_coordinator import AgentCoordinator
# 初始化协调器,指定Agent注册表URL和上下文阈值
coordinator = AgentCoordinator(
registry_url="http://agent-registry:8000/agents",
context_threshold=1000 # 当任务描述超过1000字符时进行分解
)# 处理简单任务
result = coordinator.process_task("分析这句话的情感:我今天很高兴!")
# 处理复杂任务(会自动分解)
complex_task = """
请对以下文本进行详细分析:
人工智能是计算机科学的一个分支,它致力于创造能够模拟人类智能的机器。
人工智能的应用领域非常广泛,包括自然语言处理、计算机视觉、机器人技术、自动推理等。
近年来,随着深度学习技术的突破,人工智能在各个领域都取得了显著的进展。
...
"""
result = coordinator.process_task(complex_task)
# 获取任务的traceID
trace_id = result.get("trace_id")
print(f"任务已提交,traceID: {trace_id}")# 获取任务执行状态
status = coordinator.get_task_status(trace_id)
print(f"任务状态: {status.get('summary', {}).get('status')}")
print(f"执行时间: {status.get('summary', {}).get('execution_time'):.2f}秒")# 获取所有可用的Agent
agents = coordinator.get_available_agents()
for agent_url, agent_info in agents.items():
print(f"- {agent_info.get('name')}: {agent_url}")python example_app.py服务将在 http://localhost:5000 上运行。
- POST /api/task:提交任务
- GET /api/trace/<trace_id>:获取任务执行追踪信息
- GET /api/agents:获取可用Agent列表
- POST /api/agents/register:手动注册Agent
- POST /api/agents/update:更新Agent列表
- GET /api/health:健康检查
python example_usage.py这个脚本演示了如何使用Agent协调器处理简单任务和复杂任务,以及如何查询任务状态和可用Agent。
每个Agent应提供标准化的元数据,描述其功能和API:
{
"name": "TextAnalyzerAgent",
"version": "1.0.0",
"description": "分析文本内容,提取关键信息",
"url": "http://text-analyzer-agent:8000",
"endpoints": [
{
"name": "analyze",
"method": "POST",
"url": "/api/analyze",
"description": "分析文本内容",
"parameters": [
{
"name": "text",
"type": "string",
"required": true,
"description": "要分析的文本"
},
{
"name": "options",
"type": "object",
"required": false,
"description": "分析选项"
}
]
}
]
}- AGENT_REGISTRY_URL:Agent注册表URL
- CONTEXT_THRESHOLD:上下文大小阈值
- PORT:API服务端口(默认5000)
MIT License