使用说明
实验概述
| 实验名称 | Codelab | YouTube链接 |
|---|---|---|
| 使用ADK创建多代理系统,在agent Engine中部署,并开始使用A2A协议 | 查看Codelab | 观看视频 |
| 开始学习adk、mcp和a2a | 查看Codelab | 观看视频 |
| 开始使用a2a动作引擎 | 查看Codelab | 观看视频 |
此演示展示了如何使用A2A Python SDK在购买礼宾代理和远程披萨和汉堡销售商代理之间启用A2A(Agent2Agent)协议通信。Burger和Pizza卖家代理是一个独立的代理,可以在具有不同框架的不同服务器上运行,在这个演示示例中,Burger代理建立在Crew AI之上,Pizza代理建立在LangGraph之上。
关于此仓库的详细教程: Agent2Agent(A2A)协议入门:云上与Gemini的采购礼宾和远程卖家代理交互
先决条件
-
如果您是从本地IDE执行此项目,请使用CLI使用以下命令登录Gcloud:
gcloud auth application-default login -
启用以下API
gcloud services enable aiplatform.googleapis.com -
安装 紫外线 依赖关系和准备python环境
curl -LsSf https://astral.sh/uv/install.sh | sh uv python install 3.12 uv sync --frozen
如何跑步
首先,我们需要运行远程卖家代理。我们有两个远程卖家代理,一个是汉堡代理,另一个是披萨代理。我们需要分别运行它们。这些代理将为A2A服务器提供服务
在当地经营汉堡代理商
-
复制
remote_seller_agents/burger_agent/.env.example到remote_seller_agents/burger_agent/.env. -
在中填写所需的环境变量
.env文件。替代GOOGLE_CLOUD_PROJECT使用您的Google Cloud项目ID。GOOGLE_CLOUD_LOCATION=us-central1 GOOGLE_CLOUD_PROJECT={your-project-id} -
经营汉堡代理商。
cd remote_seller_agents/burger_agent uv sync --frozen uv run . -
它将继续运行
http://localhost:10001
在当地经营披萨代理商
-
复制
remote_seller_agents/pizza_agent/.env.example到remote_seller_agents/pizza_agent/.env. -
在中填写所需的环境变量
.env文件。替代GOOGLE_CLOUD_PROJECT使用您的Google Cloud项目ID。GOOGLE_CLOUD_LOCATION=us-central1 GOOGLE_CLOUD_PROJECT={your-project-id} -
经营披萨代理。
cd remote_seller_agents/pizza_agent uv sync --frozen uv run . -
它将继续运行
http://localhost:10000
在当地运营采购礼宾代理
最后,我们可以运行采购礼宾代理拥有的A2A客户端功能。
-
返回演示根目录(其中
purchasing_concierge目录已找到) -
复制
purchasing_concierge/.env.example到purchasing_concierge/.env. -
在中填写所需的环境变量
.env文件。替代GOOGLE_CLOUD_PROJECT使用您的Google Cloud项目ID。 并填写PIZZA_SELLER_AGENT_URL和BURGER_SELLER_AGENT_URL使用远程卖家代理的URL。PIZZA_SELLER_AGENT_URL=http://localhost:10000 BURGER_SELLER_AGENT_URL=http://localhost:10001 GOOGLE_GENAI_USE_VERTEXAI=TRUE GOOGLE_CLOUD_PROJECT={your-project-id} GOOGLE_CLOUD_LOCATION=us-central1 -
使用adk web开发UI运行采购礼宾代理
uv sync --frozen uv run adk web
部署
部署Burger代理-云运行
运行以下命令
gcloud run deploy burger-agent \
--source remote_seller_agents/burger_agent \
--port=8080 \
--allow-unauthenticated \
--min 1 \
--region us-central1 \
--update-env-vars GOOGLE_CLOUD_LOCATION=us-central1 \
--update-env-vars GOOGLE_CLOUD_PROJECT={your-project-id}
部署Pizza代理-云运行
运行以下命令
gcloud run deploy pizza-agent \
--source remote_seller_agents/pizza_agent \
--port=8080 \
--allow-unauthenticated \
--min 1 \
--region us-central1 \
--update-env-vars GOOGLE_CLOUD_PROJECT={your-project-id} \
--update-env-vars GOOGLE_CLOUD_LOCATION=us-central1
部署采购礼宾代理-代理引擎
-
首先创建暂存桶
gcloud storage buckets create gs://purchasing-concierge-{your-project-id} --location=us-central1 -
复制
.env.example到.env. -
在中填写所需的环境变量
.env文件。替代GOOGLE_CLOUD_PROJECT使用您的Google Cloud项目ID。GOOGLE_GENAI_USE_VERTEXAI=TRUE GOOGLE_CLOUD_PROJECT={your-project-id} GOOGLE_CLOUD_LOCATION=us-central1 STAGING_BUCKET=gs://purchasing-concierge-{your-project-id} PIZZA_SELLER_AGENT_URL={your-pizza-agent-url} BURGER_SELLER_AGENT_URL={your-burger-agent-url} -
将采购礼宾代理部署到代理引擎
uv sync --frozen uv run deploy_to_agent_engine.py
运行聊天界面以连接到代理引擎
-
更新
.env文件与AGENT_ENGINE_RESOURCE_NAME这是从前面的步骤中获得的。 -
运行Gradio应用程序
uv sync --frozen
uv run purchasing_concierge_ui.py