💵💱💶 货币代理(A2A + ADK + MCP)
   
两者都是 在2025年Google I/O大会上宣布。
概述
该样本旨在奠定基础并展示能力 A2A + ADK + MCP的组合。它是一个货币转换代理,能够在不同货币之间进行转换 各国货币。
模型上下文协议(MCP)
MCP是一种开放协议,它规范了应用程序向大型语言模型(LLM)提供上下文的方式。可以将MCP想象为AI应用程序的USB-C接口。正如USB-C提供了一种标准化的方式来将您的设备连接到各种外设和配件,MCP则提供了一种标准化的方式来将AI模型连接到不同的数据源和工具。 - 人类中心主义(或译为“以人为本”)
在这个示例中,MCP服务器提供了一个工具 get_exchange_rate 这可以用来获取两种货币(如美元和欧元)之间的汇率。它利用了 法兰克福(香肠) 获取汇率的API。我们的代理在需要时会使用MCP客户端调用此工具。
代理开发工具包(ADK)
ADK是一个灵活且模块化的框架,用于开发和部署AI代理。虽然它针对Gemini和谷歌生态系统进行了优化,但ADK不依赖于特定模型,也不受限于特定部署方式,并且设计为与其他框架兼容。 - ADK(根据上下文,ADK可能代表不同的含义,但在此处作为一个通用术语翻译为):ADK(具体含义需结合上下文确定,此处为直译保留原英文缩写)
在本示例中,ADK(v1.0.0)被用作创建我们货币代理的编排框架。它负责与用户进行对话,并在需要时调用我们的MCP工具。
Agent2Agent(A2A)
Agent2Agent(A2A)协议解决了人工智能领域中的一个关键挑战:使基于不同公司各自独立服务器上构建的多样化框架所开发的通用人工智能代理能够作为独立的智能体,而不仅仅是工具,进行有效沟通与协作。A2A旨在为智能体提供一种通用语言,促进构建一个更加互联、强大且富有创新性的AI生态系统。 - A2A(注:A2A通常指“A to A”,即从A到A的某种连接或路径,具体含义需根据上下文确定,此处仅为直译)
新的 A2A Python SDK(A2A Python软件开发工具包) 用于创建一个A2A(应用到应用)服务器,该服务器负责宣传和执行我们的ADK(应用程序开发工具包)代理。然后,我们运行一个A2A客户端,该客户端连接到我们的A2A服务器并调用我们的ADK代理。
入门指南
先决条件
- Python 3.10及以上版本
- 用于克隆仓库的Git。
安装
- 克隆仓库:
git clone https://github.com/jackwotherspoon/currency-agent.git
cd 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"\[!NOTE\](注:此标记通常用于指示以下内容为重要提示或注意事项) 安装后,您可能需要重启或打开一个新的终端 uv。- 配置环境变量(通过
.env文件):
调用Gemini模型有两种不同的方法:
- 使用通过Google AI Studio创建的API密钥直接调用Gemini API。
- 在 Google Cloud 上通过 Vertex AI API 调用 Gemini 模型。
\[提示\] 来自Google AI Studio的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项目 并且 启用Vertex 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 currency_agent.agent:a2a_app --host localhost --port 10000A2A客户端
在另一个终端中,运行A2A客户端以对我们的A2A服务器执行一些查询:
uv run currency_agent/test_client.py🤝 贡献
欢迎贡献!请随时提交拉取请求或提出问题。
📄 许可证
这个项目遵循Apache 2.0许可证 - 请参阅 许可文件(LICENSE文件) 详情见下。
