当前位置: 首页 > news >正文

Google Agent Development Kit与MCP初试

Google Agent Development Kit与MCP初试

    • 一、背景知识
    • 二、搭建智能大脑 - Ollama服务器
      • 2.1 为什么要先搭建Ollama?
      • 2.2 搭建ollama服务器
        • 2.2.1 安装
        • 2.2.2 试着用curl命令"问"AI一个问题:
    • 三、构建智能体工坊 - ADK环境
      • 3.1 创建容器
      • 3.2 安装核心组件
    • 四、打造第一把工具 - MCP服务
      • 4.1 MCP服务架构图解
      • 4.2 创建示例工具服务
      • 4.3 测试工具调用
    • 五、组装智能代理
      • 5.1 项目结构解析
      • 5.2 创建步骤
      • 5.3 打开流程器测试
      • 5.4 效果图
    • 六、常见问题解答
    • 七、扩展阅读

一、背景知识

在开始之前,我们先了解几个关键概念:

  • Ollama:一个本地化运行大语言模型(如Gemma、Qwen等)的开源工具,类似"手机上的离线版ChatGPT"
  • ADK(Agent Development Kit):Google推出的智能代理开发框架,可以快速构建具备多工具调用能力的AI助手
  • MCP(Model Control Protocol):实现AI模型与工具间通信的协议,好比AI的"手和脚"让语言模型可以操作外部工具
  • LiteLLM:统一不同大模型API的适配层,可以理解为"AI界的通用充电器"

二、搭建智能大脑 - Ollama服务器

2.1 为什么要先搭建Ollama?

就像人类需要大脑才能思考一样,我们需要一个本地运行的AI模型作为智能核心。选择Ollama是因为它:

  1. 支持多种开源大模型(Gemma、Qwen等)
  2. 可在普通服务器部署
  3. 提供类似OpenAI的API接口

2.2 搭建ollama服务器

2.2.1 安装
# 安装Ollama(约1分钟)
curl -fsSL https://ollama.com/install.sh | sh# 配置服务器可被外部访问(默认只能本机访问)
export OLLAMA_HOST="0.0.0.0:8000"# 启动服务(保持此终端运行)
ollama serve# 下载两个常用模型(根据网络情况需要较长时间)
ollama run gemma3:27b   # 谷歌轻量级模型,适合简单任务
ollama run qwen3:32b    # 阿里云通义千问,中文处理更优秀
2.2.2 试着用curl命令"问"AI一个问题:
curl http://10.22.4.73:8000/api/chat -d '{"model": "qwen3:32b","messages": [{"role": "user","content": "为什么天空是蓝色的?"}]
}'

三、构建智能体工坊 - ADK环境

3.1 创建容器

docker run --runtime nvidia --gpus all -ti \-v $PWD:/home -w /home --name adk \-p 9002:8000 nvcr.io/nvidia/pytorch:24.03-py3 bash

参数说明:

  • --gpus all:启用全部GPU
  • -v $PWD:/home:将当前目录挂载到容器内
  • -p 9002:8000:端口映射(容器内8000→外部9002)

3.2 安装核心组件

# Google智能代理开发套件
pip install google-adk -i https://pypi.tuna.tsinghua.edu.cn/simple# MCP协议实现库
pip install fastmcp -i https://pypi.tuna.tsinghua.edu.cn/simple# 模型API统一适配器
pip install litellm -i https://pypi.tuna.tsinghua.edu.cn/simple

四、打造第一把工具 - MCP服务

4.1 MCP服务架构图解

[用户提问] → [ADK Agent] → [MCP客户端] ↔ [MCP服务端] → [具体工具]
(决策中心)    (通信协议)     (实际执行)

4.2 创建示例工具服务

cat > server.py <<-'EOF'
from mcp.server.fastmcp import FastMCP# 创建一个 MCP 服务端实例,命名为 "SimpleServer"
mcp = FastMCP("SimpleServer")# 定义一个工具:计算两个数字之和
@mcp.tool()
def add_numbers(a: int, b: int) -> int:"""Add two numbers together."""with open("debug.txt","w") as f:f.write("add_numbers call")return a + b# 运行服务端
if __name__ == "__main__":mcp.run()
EOF

4.3 测试工具调用

cat > client.py <<-'EOF'
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_clientasync def main():# 定义服务端参数:假设服务端脚本为 server.pyserver_params = StdioServerParameters(command="python",args=["server.py"],env=None) # 使用 stdio_client 连接到服务端async with stdio_client(server_params) as (stdio, write):# 创建客户端会话async with ClientSession(stdio, write) as session:# 初始化会话await session.initialize()# 列出可用工具tools_response = await session.list_tools()print("可用工具:", [tool.name for tool in tools_response.tools])# 调用 add_numbers 工具result = await session.call_tool("add_numbers", {"a": 5, "b": 3})print("工具调用结果 (5 + 3):", result)# 运行异步客户端
if __name__ == "__main__":asyncio.run(main())	
EOF
python client.py

五、组装智能代理

5.1 项目结构解析

multi_tool_agent/
├── __init__.py      # Python包标识
├── agent.py         # 智能体主程序
└── .env             # 环境配置

5.2 创建步骤

# 创建目录
rm -rf multi_tool_agent
mkdir multi_tool_agent/
echo "from . import agent" > multi_tool_agent/__init__.py# 核心代码
cat > multi_tool_agent/agent.py <<-'EOF'
import os
from google.adk.agents import Agent
from google.adk.agents import LlmAgent
from google.adk.tools.mcp_tool import MCPToolset
from google.adk.models.lite_llm import LiteLlm
from mcp import StdioServerParametersroot_agent = Agent(model=LiteLlm(model="ollama_chat/qwen3:32b"), # 绑定本地Qwen模型name="dice_agent",  # 代理名称description=("支持数学运算的智能体"),instruction="你负责计算数学表达式的值",tools=[MCPToolset(connection_params=StdioServerParameters(command='python',args=['server.py'], # 连接我们创建的MCP服务))],
)
EOF# 环境配置
cat > multi_tool_agent/.env <<-'EOF'
export OLLAMA_API_BASE=http://10.22.4.73:8000 # 指向Ollama服务器地址
EOF### 启动Web界面
adk web --host 0.0.0.0

5.3 打开流程器测试

http://10.22.4.73:9002/dev-ui?app=multi_tool_agent

5.4 效果图

在这里插入图片描述

六、常见问题解答

Q:MCP协议有什么优势?

  • 工具热插拔:随时添加/移除工具无需重启服务
  • 跨语言支持:工具可以用不同语言开发
  • 权限控制:可精细管理每个工具的访问权限

Q:如何添加新工具?

  1. 在server.py中添加新的@mcp.tool()函数
  2. 重启MCP服务
  3. Agent会自动发现新工具

七、扩展阅读

  • MCP 本机服务端和客户端Python例子
  • ADK文档
  • LiteLLM

相关文章:

  • 西门子 S1500 博途软件舞台威亚 3D 控制方案
  • 边缘计算正在重新定义物联网的未来——你的设备还在“等云“吗?⚡
  • 游戏引擎学习第305天:在平台层中使用内存 Arena 的方法与思路
  • Php 箭头函数详解
  • Vue3实现轮播表(表格滚动)
  • Docker 疑难杂症解决指南大纲
  • 纯JS前端转图片成tiff格式
  • Java中创建线程的几种方式
  • Nginx 部署前端项目dist文件到局域网然后ngrok部署到公网
  • python打卡day33
  • w~自动驾驶~合集13
  • 深度学习零基础入门(2)-实战1:激活函数、前向传播和反向传播
  • 巧用 FFmpeg 命令行合并多个视频为一个视频文件教程
  • Vue3+Vite+TypeScript项目中跨页多选表格的实现与应用
  • 进阶知识:用例依赖装饰器的实现方法的 代码细节问题解析
  • 栈与队列part01(二)
  • 服务架构演变过程
  • Java——集合类
  • 开闭原则 (Open/Closed Principle, OCP)
  • 如何让 Agent 有计划地进行股票数据分析?——基于 DeepSeek 的实战应用
  • 公司注册地址查询系统/广州seo技术外包公司
  • cms系统创建静态网站/站长之家排行榜
  • 免费综合网站注册申请/seo推广技术
  • 网站的下拉列表怎么做的/培训体系搭建
  • 网站建设如果没有源代码/海东地区谷歌seo网络优化
  • 管局备案网站/免费软文发布平台