多代理编排工作流

该项目展示了一个端到端的多代理编排工作流,集成了基于LangGraph的规划器、MCP客户端-服务器对以及用于调用动态工具(如YouTube搜索或模拟数据生成器)的异步编排逻辑。

  • by shilpathota
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 shilpathota/Multi_Agent_Orch

使用说明

🧠 多代理编排器——项目文档

此存储库演示了端到端 多代理编排工作流.
它集成了一个 基于LangGraph的规划器一 MCP(模型上下文协议) 客户端-服务器对,
以及用于调用动态工具(如YouTube搜索或模拟数据生成器)的异步编排逻辑。


📁 项目结构概述

文件 描述
app/run.py 主要入口点。加载环境变量,启动MCP客户端,构建计划图,并调用给定主题的工作流。
app/mcp_client.py 实现MCPClient类,该类通过stdio连接到MCP服务器,列出工具,并异步调用工具。
app/agent.py 定义代理计划器(make_planner)。指定代理如何决定调用哪个工具以及计划是什么样子的。
app/graph.py 构建LangGraph执行图,并协调计划和执行节点之间的流程。
mcp_server/server.py 定义向客户端公开工具(mock_search、youtube_search等)的MCP服务器。
requirements.txt 列出Python依赖项(LangGraph、MCP、httpx、dotenv等)。

🔍 详细模块分解

app/run.py

  • 使用dotenv加载环境变量。
  • 从CLI参数读取主题(python app/run.py "python decorators").
  • 初始化连接到MCP服务器的MCPClient。
  • 创建计划器和异步执行节点(exec_node).
  • 通过MCP(mock_search或YouTube)调用工具。
  • 按点赞+浏览量对结果进行标准化和排名。

app/mcp_client.py

  • MCP连接的异步上下文管理器。
  • __aenter__() 启动stdio会话。
  • list_tools() 列出可用工具。
  • call_tool() 发送请求并解析结构化JSON/text。
  • 处理规范化和错误安全。

app/agent.py

  • 包含 make_planner() --代理逻辑。
  • 定义计划节点和决策逻辑。
  • 每个计划节点决定下一步使用哪个工具。
  • 模块化,用于添加更多工具或代理策略。

app/graph.py

  • 构建 LangGraph 定向执行流程。
  • 连接计划→ 执行→ 结果节点。
  • 支持异步状态传播。
  • 任务如何按顺序执行的核心。

mcp_server/server.py

  • 实现MCP FastMCP服务器公开工具。
  • 工具: mock_search,可选 youtube_search.
  • 使用装饰器(@mcp.tool())注册。
  • 负载 .env 用于API密钥(例如YOUTUBE_API_KEY)。
  • 返回结构化JSON格式的结果。

requirements.txt

langgraph
mcp
httpx
python-dotenv
asyncio

安装方式:

pip install -r requirements.txt

⚙️ 执行流程

  1. 用户运行:
    python app/run.py "python decorators"
    
  2. run.py 负载 .env 并开始 MCPClient.
  3. MCPClient 连接到MCP服务器。
  4. 规划师(agent.py)决定调用哪个工具。
  5. exec_node 通过MCP执行该工具。
  6. MCP服务器运行该工具(例如。, mock_search).
  7. 结果被标准化、排名和打印。

🧪 示例运行

python app/run.py "python decorators"

输出:

Initial state -> {'topic': 'python decorators', 'k': 5}
=== RESULT ===
[
  {"title": "python decorators Crash Course", "likes": 1500, "views": 220000},
  ...
]

🚀 将来的扩展

  • 替换 mock_search 使用实时YouTube/Bing API。
  • 添加 LangGraph内存 从长远来看。
  • 支持 多Agent协商 (规划师+评估师)。
  • 整合 LLM推理 用于主题选择。

🧩 总结

该系统提供 完整的模块化管道 使用模型上下文协议测试和编排工具调用代理。
您可以轻松地扩展它以集成真实的API,使用LLM推理,或通过Docker/Kubernetes部署在云服务器上。