🧠 多代理编排器——项目文档
此存储库演示了端到端 多代理编排工作流.\ 它集成了一个 基于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______________________________________________________________________
⚙️ 执行流程
- 用户运行:
python app/run.py "python decorators"run.py负载.env并开始MCPClient.MCPClient连接到MCP服务器。- 规划师(
agent.py)决定调用哪个工具。 exec_node通过MCP执行该工具。- MCP服务器运行该工具(例如。,
mock_search). - 结果被标准化、排名和打印。
______________________________________________________________________
🧪 示例运行
python app/run.py "python decorators"输出:
Initial state -> {'topic': 'python decorators', 'k': 5}
=== RESULT ===
[
{"title": "python decorators Crash Course", "likes": 1500, "views": 220000},
...
]Result
🚀 将来的扩展
- 替换
mock_search使用实时YouTube/Bing API。 - 添加 LangGraph内存 从长远来看。
- 支持 多Agent协商 (规划师+评估师)。
- 整合 LLM推理 用于主题选择。
______________________________________________________________________
🧩 总结
该系统提供 完整的模块化管道 使用模型上下文协议测试和编排工具调用代理。\ 您可以轻松地扩展它以集成真实的API,使用LLM推理,或通过Docker/Kubernetes部署在云服务器上。
