智能代理服务器

一个基于Google Agent Development Kit (ADK)的Model Context Protocol (MCP)服务器,通过多个专业代理协作处理不同类型请求,包括数据分析和代码生成。

  • by zayedrais
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 zayedrais/AI_Agent_with_MCP

使用说明

基于Google ADK项目的MCP服务器

该项目使用谷歌的代理开发工具包(ADK)实现了一个模型上下文协议(MCP)服务器,用于构建智能代理和工具。该系统具有多个专门的代理,它们通过协调代理进行协作,以处理不同类型的请求。

详细信息见Medium Post

项目结构

├── agents/                    # Contains agent implementations
│   ├── coordinator_agent.py   # LLM-based intelligent request router
│   ├── data_analysis_agent.py # Agent for analyzing data files with visualization
│   ├── search_agent.py        # Agent for web searches and information retrieval
│   └── code_generator_agent.py # Agent for generating code based on descriptions
├── tools/                     # Contains tool implementations
│   ├── code_generator_tool.py # Generates code in various programming languages
│   ├── data_analysis_tool.py  # Analyzes data and creates visualizations
│   ├── data_reader_tool.py    # Reads data from various file formats
│   ├── report_generator_tool.py # Generates formatted reports
│   └── web_search_tool.py     # Performs web searches
├── input_data/                # Directory for input data files (CSV, Excel)
├── analysis_output/plots/     # Generated data visualizations
├── reports/                   # Generated analysis reports
├── generated_code/            # Generated code outputs
├── server.py                  # MCP Server implementation using FastMCP
├── requests_log.txt           # Log of requests and responses
└── README.md                  # This file

先决条件

  • Python 3.9+
  • Groq和OpenRouter密钥

工作流程架构

设置

  1. 克隆此存储库
  2. 创建虚拟环境:
    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项:
    pip install -r requirements.txt
    
  4. 设置您的Groq和Openrouter密钥: 在.env中添加密钥(如果可用),否则将文件创建为
touch .env 

添加密钥

OPENROUTER_API_KEY="ADD_Your_Key"
GROQ_API_KEY="ADD_Your_Key" 

运行MCP服务器

python server.py

这将启动MCP服务器 http://0.0.0.0:8080

可用代理

代理程序

协调器代理使用基于LLM的路由将请求定向到最合适的专用代理。它分析请求的内容,并确定哪个代理可以最好地处理它。

搜索代理

执行网络搜索并提供各种主题的信息。

请求示例:

curl -X POST http://localhost:8080/ask -H "Content-Type: application/json" -d '{"query":"What is Model Context Protocol?"}'

数据分析代理

分析各种文件格式(CSV、Excel)的数据,并生成可视化报告。

请求示例:

curl -X POST http://localhost:8080/ask -H "Content-Type: application/json" -d '{"file_path": "sales_data.xlsx","query":"make a report for these data"}'

代码生成器代理

基于自然语言描述生成各种编程语言的代码。

请求示例:

curl -X POST http://localhost:8080/ask -H "Content-Type: application/json" -d '{"query":"Python code for fibonacci series","language":"python"}'

API终点

  • /ask -路由到相应专业代理的通用端点
  • /search -直接网络搜索的端点
  • /analyze-data -数据分析端点
  • /generate-code -代码生成端点
  • /chat/completions -会话交互的聊天完成端点

MCP工具

服务器公开了以下MCP工具:

  • ask -将用户的查询路由到最合适的代理
  • search -在网上搜索信息
  • analyze_data -分析数据文件并生成可视化报告
  • generate_code -基于自然语言描述生成代码

扩展此项目

要添加新代理,请执行以下操作:

  1. 在中创建新文件 agents/ 目录
  2. 使用async实现代理类 process() 方法
  3. 更新协调器代理以识别并路由到新代理

要添加新工具,请执行以下操作:

  1. 在中创建新文件 tools/ 目录
  2. 使用全面的文档字符串实现工具功能
  3. 在您的代理中导入和使用该工具