关于 🚀 Light MCP Agents
Light MCP Agents 是一个轻量级框架,用于构建和编排基于 Model Context Protocol 的 AI Agent。它支持层级化 Agent 系统,使得专门化 Agent 能够相互委派任务、共享能力并协作解决复杂问题。通过配置驱动的方法,用户可以快速构建复杂的 Agent 网络而无需大量编码。
主要功能
- 01配置文件定义 Agent 连接到任意 MCP 服务
- 02多 Agent 工作流无需额外代码
- 03层级化 Agent 架构支持能力委派
- 04工具自动聚合和传播
- 05递归推理和能力注册表
适用场景
- 01构建委派任务的多 Agent 系统
- 02在 Claude Desktop 中运行自定义 Agent
- 03创建专门化 Agent 处理特定领域任务
- 04共享 Agent 配置供社区运行
MCP 相关
Light MCP Agents 作为 MCP 客户端连接到 MCP 服务,并且支持以 MCP 服务器模式运行,允许其他 Agent 将其能力作为工具访问。框架将 MCP 协议用于 Agent 间通信和能力暴露。
详细介绍
🚀 Light MCP Agents
什么是它?
Light MCP Agents 是一个用于使用模型上下文协议 (MCP) 构建和编排 AI Agent 的轻量级框架。它支持创建分层 Agent 系统,其中专门化的 Agent 可以委派任务、共享功能和协作以解决复杂问题。 通过配置驱动的方法,你可以在可组合架构中快速构建复杂的 Agent 网络,无需大量编码。
为什么重要?
✅ 通过简单的配置文件创建连接到任何 MCP 服务的 Agent。
✅ 无需额外代码创建多 Agent 工作流。每个 Agent 只需一个配置文件。
✅ 轻松与他人共享你的 Agent 配置以运行。
架构概述
目录
快速开始
安装
# Clone the repository
git clone https://github.com/nicozumarraga/light-mcp-agents.git
cd light-mcp-agents
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
运行你的第一个 Agent
# Run the base agent example (simple client agent)
python src/agent/agent_runner.py --config examples/base_agent/base_agent_config.json
如果成功,你将能够与 Agent 聊天并使用其工具!
尝试多 Agent 示例
在一个终端中,以服务器模式启动研究 Agent:
python src/agent/agent_runner.py --config examples/orchestrator_researcher/research_agent_config.json --server-mode
在第二个终端中,启动连接到研究 Agent 的编排器:
python src/agent/agent_runner.py --config examples/orchestrator_researcher/master_orchestrator_config.json
现在你可以要求编排器为你研究主题,它将委派给专门的研究 Agent 或直接使用其工具。
在 Claude Desktop 中运行 Agent
Claude Desktop 通过其配置系统支持 MCP Agent。你可以直接在 Claude 中配置和运行你的 Agent,使其能够使用你的自定义功能。
设置步骤
-
找到你的 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
将你的 Agent 配置添加到
mcpServers部分:
{
"mcpServers": {
"research-agent": {
"command": "/bin/bash",
"args": ["-c", "/path/to/your/venv/bin/python /path/to/your/agent_runner.py --config=/path/to/your/agent_config.json --server-mode"],
"env": {
"PYTHONPATH": "/path/to/your/project",
"PATH": "/path/to/your/venv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
}
}
}
}
示例 Agent
存储库在 examples/ 目录中包含示例 Agent:
-
基础 Agent (
examples/base_agent/)- 连接到外部工具服务的简单 Agent
- 很好的第一个示例来理解 Agent 如何工作
-
编排器-研究员 (
examples/orchestrator_researcher/)- 演示分层 Agent 结构
- 展示功能如何在 Agent 之间共享
🤝 想要为社区提交你自己的示例架构?请联系我们!
运行选项
基本命令结构
python src/agent/agent_runner.py --config <config_file_path>
其他选项
# Run in server mode (makes it available to other agents)
python src/agent/agent_runner.py --config <config_file_path> --server-mode
# Run with a custom server name
python src/agent/agent_runner.py --config <config_file_path> --server-mode --server-name "my-custom-server"
创建你自己的 Agent
基本 Agent 配置
为你的 Agent 创建一个配置文件(例如 my_agent_config.json):
{
"agent_name": "my-agent",
"llm_provider": "groq",
"llm_api_key": "YOUR_API_KEY_HERE",
"server_mode": false,
"servers": {
"tool-server": {
"command": "npx",
"args": ["@anthropic-ai/mcp-tooling", "start", "-q"],
"env": {
"PORT": "3001"
}
}
}
}
具有功能的 Agent
要创建具有特殊功能的 Agent:
{
"agent_name": "research-agent",
"llm_provider": "groq",
"llm_api_key": "YOUR_API_KEY_HERE",
"server_mode": true,
"server_name": "research-agent-server",
"capabilities": [
{
"name": "summarize_document",
"description": "Summarize a document in a concise way",
"input_schema": {
"type": "object",
"properties": {
"document_text": {
"type": "string",
"description": "The text of the document to summarize"
},
"max_length": {
"type": "integer",
"description": "Maximum length of the summary in words",
"default": 200
}
},
"required": ["document_text"]
},
"prompt_template": "Summarize the following document in {max_length} words or fewer:\n\n{document_text}"
}
],
"servers": {
"brave-search": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "BRAVE_API_KEY", "mcp/brave-search"],
"env": {
"BRAVE_API_KEY": "YOUR_BRAVE_API_KEY"
}
}
}
}
编排器 Agent 配置
创建一个委派给其他 Agent 的编排器:
{
"agent_name": "master-orchestrator",
"llm_provider": "groq",
"llm_api_key": "YOUR_API_KEY_HERE",
"server_mode": false,
"servers": {
"research-agent": {
"command": "python",
"args": ["src/agent/agent_runner.py", "--config=research_agent_config.json", "--server-mode"],
"env": {}
},
"kanye": {
"command": "npx",
"args": ["-y", "kanye-mcp"]
}
}
}
工作原理
Agent 能力
能力是需要大模型推理的高层函数。当调用一个能力时:
- 提示词模板使用提供的参数进行填充
- Agent 启动自己的推理过程
- 它可以使用任何可用的工具
- 它将最终结果返回给调用 Agent
示例:研究员工作流
当你要求协调器研究一个主题时:
- 协调器委托给研究 Agent 的能力
- 研究 Agent 使用其搜索工具收集信息
- 研究 Agent 将结果处理成连贯的响应
- 最终结果被发送回协调器并呈现给你
以下是展示这一过程的日志摘录:
2025-03-19 10:17:46,252 - INFO - agent:master-orchestrator - Executing tool: research_topic
2025-03-19 10:17:46,252 - INFO - agent:master-orchestrator - With arguments: {'topic': 'quantum computing', 'focus_areas': 'recent breakthroughs'}
2025-03-19 10:17:46,261 - INFO - mcp-server-wrapper:research-agent-server - Executing as capability: research_topic
2025-03-19 10:17:46,262 - INFO - agent:research-agent - Executing capability: research_topic with arguments: {'topic': 'quantum computing', 'focus_areas': 'recent breakthroughs'}
2025-03-19 10:17:46,973 - INFO - agent:research-agent - Executing tool: brave_web_search
2025-03-19 10:17:46,973 - INFO - agent:research-agent - With arguments: {'query': 'quantum computing recent breakthroughs', 'count': 10}
2025-03-19 10:17:49,839 - INFO - agent:research-agent - Capability research_topic execution completed
架构详情
递归架构建立在 MCP(Model Context Protocol)标准之上,实现了以下功能:
- Agent 层级:Agent 可以按层级结构排列,其中高级 Agent 委托任务给专门的低级 Agent。
- 能力委托:需要推理的复杂任务可以通过能力委托给专门的 Agent。
- 工具聚合:来自低级 Agent 的工具会自动暴露给高级 Agent。
- 递归推理:每个 Agent 都可以使用其可用工具执行自己的推理过程。可以设置递归限制。
关键组件
- AgentServer:主要类,管理 Agent 在客户端和服务器模式下的运行,处理初始化、连接到其他服务器,以及工具/能力发现。
- MCPServerWrapper:将 Agent 包装为 MCP 服务,通过 MCP 协议暴露其工具和能力。
- Agent:核心 Agent 实现,处理用户请求、执行工具、管理能力。
- CapabilityRegistry:Agent 能力的注册表,用于需要大模型推理的能力,负责从配置中加载能力。
- ToolRegistry:来自 MCP 服务的所有工具的注册表,处理发现和注册。
架构优势
- 层级组合:Agent 可以使用其他 Agent 的能力,创建强大的组合模型。
- 封装:每个 Agent 封装特定的领域或能力。
- 推理委托:复杂任务可以委托给专门的 Agent。
- 工具传播:可用于低级 Agent 的工具可以通过能力访问高级 Agent,以及直接访问。
- 配置驱动:通过简单的配置文件定义能力,无需改动代码。
- 可扩展性:添加新的能力或专门的 Agent 无需修改现有的。
致谢
本项目中的 MCP 服务资源管理实践受到 mcp-agents 的启发。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。