全栈代理LMS
(A2A+ADK+MCP+前端+后端)使用Gemini 3 Pro
概述
该示例旨在奠定基础并展示能力 A2A+ADK+MCP。
模型上下文协议(MCP)
MCP是一个开放协议,它规范了应用程序如何向LLM提供上下文。将MCP想象成AI应用程序的USB-C端口。正如USB-C提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP提供了一个将AI模型连接到不同数据源和工具的标准化方法。 - Anthropic
本例中的MCP服务器公开了一个工具 get_exchange_rate 这可用于获取美元和欧元等两种货币之间的汇率。它利用了 法兰克福香肠 API获取货币汇率。我们的代理在需要时使用MCP客户端调用此工具。
代理开发工具包(ADK)
ADK是一个灵活的模块化框架,用于开发和部署AI代理。虽然ADK针对Gemini和谷歌生态系统进行了优化,但它与模型无关,与部署无关,并且是为与其他框架兼容而构建的。 - 套件
在本示例中,ADK(v1.0.0)用作创建货币代理的编排框架。它处理与用户的对话,并在需要时调用我们的MCP工具。
代理2代理(A2A)
Agent2Agent(A2A)协议解决了人工智能领域的一个关键挑战:使运行在单独服务器上的不同公司基于不同框架构建的第二代人工智能代理能够有效地进行通信和协作——作为代理,而不仅仅是工具。A2A旨在为代理提供一种通用语言,培养一个更加互联、强大和创新的人工智能生态系统。 - A2A
新的 A2A Python SDK 用于创建一个A2A服务器,该服务器通告并执行我们的ADK代理。然后,我们运行一个A2A客户端,该客户端连接到我们的A2A服务器并调用我们的ADK代理。
入门指南
先决条件
- Python 3.10+
- Git,用于克隆存储库。
安装
- 克隆存储库:
git clone https://github.com/google/adk-samples.git
cd adk-samples/python/agents/currency-agent- 安装 紫外线 (用于管理依赖关系):
# macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (uncomment below line)
# powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"\[!注意\] 安装后,您可能需要重新启动或打开新的终端 uv.- 配置环境变量(通过
.env文件):
有两种不同的方式来调用Gemini模型:
- 使用通过Google AI Studio创建的API密钥直接调用Gemini API。
- 通过Google Cloud上的Vertex AI API调用Gemini模型。
\[!提示\] 谷歌人工智能工作室的API密钥是最快的入门方式。 现有的Google Cloud用户可能希望使用Vertex AI。
Gemini API Key
从Google AI Studio获取API密钥:https://aistudio.google.com/apikey
创建 .env 通过运行以下命令(替换 `` 使用API密钥):
echo "GOOGLE_API_KEY=" >> .env \
&& echo "GOOGLE_GENAI_USE_VERTEXAI=FALSE" >> .envVertex AI
要使用Vertex AI,您需要 创建Google Cloud项目 和 启用顶点AI.
验证并启用Vertex AI API:
gcloud auth login
# Replace with your project ID
gcloud config set project
gcloud services enable aiplatform.googleapis.com创建 .env 通过运行以下命令(替换 `` 使用您的项目ID):
echo "GOOGLE_GENAI_USE_VERTEXAI=TRUE" >> .env \
&& echo "GOOGLE_CLOUD_PROJECT=" >> .env \
&& echo "GOOGLE_CLOUD_LOCATION=us-central1" >> .env现在,你已经准备好开始享受乐趣了!
本地部署
MCP 服务器
在终端中,启动MCP服务器(它在端口8080上启动):
uv run mcp-server/server.pyA2A服务器
在单独的终端中,启动A2A服务器(它从端口10000启动):
uv run uvicorn learner_agent.agent:a2a_app --host localhost --port 10000A2A客户端
在单独的终端中,运行A2A客户端,对我们的A2A服务器运行一些查询:
uv run learner_agent/test_client.py🤝 贡献
欢迎投稿!请随时提交拉取请求或未决问题。
📄 许可证
此项目根据Apache 2.0许可证获得许可-请参阅 许可证文件 了解详情。
