Skip to content

hakehuang/agent_orchestrator

Repository files navigation

Agent协调器

一个用于管理和协调多个AI Agent的Python框架,能够自动发现Agent功能、生成执行计划、分解复杂任务,并提供完整的任务追踪。

功能特点

  • 自动发现Agent:通过RESTful API自动发现和理解其他Agent的功能
  • 智能任务规划:根据用户需求和可用Agent生成最优执行计划
  • 任务自动分解:当上下文超过阈值时,自动将复杂任务切割为子任务
  • 完整追踪系统:为每个任务和子任务生成唯一的traceID,便于追踪和调试
  • 并行执行:支持并行执行多个子任务,提高处理效率
  • 结果聚合:自动聚合多个子任务的执行结果

安装

前提条件

  • Python 3.7+
  • pip

安装依赖

pip install -r requirements.txt

快速开始

1. 创建Agent协调器实例

from agent_coordinator import AgentCoordinator

# 初始化协调器,指定Agent注册表URL和上下文阈值
coordinator = AgentCoordinator(
    registry_url="http://agent-registry:8000/agents",
    context_threshold=1000  # 当任务描述超过1000字符时进行分解
)

2. 处理任务

# 处理简单任务
result = coordinator.process_task("分析这句话的情感:我今天很高兴!")

# 处理复杂任务(会自动分解)
complex_task = """
请对以下文本进行详细分析:

人工智能是计算机科学的一个分支,它致力于创造能够模拟人类智能的机器。
人工智能的应用领域非常广泛,包括自然语言处理、计算机视觉、机器人技术、自动推理等。
近年来,随着深度学习技术的突破,人工智能在各个领域都取得了显著的进展。
...
"""
result = coordinator.process_task(complex_task)

# 获取任务的traceID
trace_id = result.get("trace_id")
print(f"任务已提交,traceID: {trace_id}")

3. 查询任务状态

# 获取任务执行状态
status = coordinator.get_task_status(trace_id)
print(f"任务状态: {status.get('summary', {}).get('status')}")
print(f"执行时间: {status.get('summary', {}).get('execution_time'):.2f}秒")

4. 查看可用Agent

# 获取所有可用的Agent
agents = coordinator.get_available_agents()
for agent_url, agent_info in agents.items():
    print(f"- {agent_info.get('name')}: {agent_url}")

运行示例应用

启动API服务

python example_app.py

服务将在 http://localhost:5000 上运行。

API端点

  • 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元数据格式

每个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

About

agent orchestrator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages