22
33基于火山引擎 VeADK 和 A2A (Agent-to-Agent) 协议构建的分布式智能体示例,展示如何实现智能体之间的通信和协作。
44
5- ## 📋 概述
5+ ## 概述
66
7- 本示例演示 A2A 协议的基础应用,展示如何构建可互操作的分布式智能体系统:
7+ 本示例演示 A2A 协议的基础应用,展示如何构建可互操作的分布式智能体系统。
8+
9+ ## 核心功能
810
911- A2A 协议:标准化的智能体间通信协议
1012- 远程服务:提供工具能力的远程 Agent
1113- 本地客户端:调用远程 Agent 的客户端
1214- 工具能力:投掷骰子和检查质数
1315- 状态管理:跨工具调用的状态持久化
1416
15- ## 🏗️ 架构
17+ ## Agent 能力
1618
1719```
1820方式一:直接客户端调用
@@ -34,6 +36,25 @@ A2A 协议 (HTTP/JSONRPC)
3436 └── check_prime 工具 (检查质数)
3537```
3638
39+ ## 目录结构说明
40+
41+ ```
42+ a2a_simple/
43+ ├── agent.py # 本地 Agent 服务(端口 8000,可调用远程 Agent)
44+ ├── local_client.py # A2A 客户端实现
45+ ├── remote/ # 远程 Agent 服务
46+ │ ├── agent.py # Agent 定义和 A2A App(端口 8001)
47+ │ ├── agentkit.yaml # AgentKit 部署配置
48+ │ ├── requirements.txt # Python 依赖
49+ │ ├── Dockerfile # Docker 镜像构建
50+ │ └── tools/ # 工具实现
51+ │ ├── roll_die.py # 投掷骰子工具
52+ │ └── check_prime.py # 质数检查工具
53+ ├── requirements.txt # 客户端依赖
54+ ├── pyproject.toml # 项目配置
55+ └── README.md # 项目说明文档
56+ ```
57+
3758### 核心组件
3859
3960| 组件 | 描述 |
@@ -122,11 +143,9 @@ def roll_die(sides: int, tool_context: ToolContext) -> int:
122143 return result
123144```
124145
125- ## 🚀 快速开始
146+ ## 本地运行
126147
127- ### 前置条件
128-
129- ** 重要提示** :在运行本示例之前,请先访问 [ AgentKit 控制台授权页面] ( https://console.volcengine.com/agentkit/region:agentkit+cn-beijing/auth?projectName=default ) 对所有依赖服务进行授权,确保案例能够正常执行。
148+ ### 前置准备
130149
131150** 1. 开通火山方舟模型服务**
132151
@@ -137,7 +156,7 @@ def roll_die(sides: int, tool_context: ToolContext) -> int:
137156
138157- 参考 [ 用户指南] ( https://www.volcengine.com/docs/6291/65568?lang=zh ) 获取 AK/SK
139158
140- ### 安装步骤
159+ ### 依赖安装
141160
142161#### 1. 安装 uv 包管理器
143162
@@ -152,49 +171,43 @@ brew install uv
152171#### 2. 初始化项目依赖
153172
154173``` bash
174+ # 进入项目目录
155175cd 02-use-cases/beginner/a2a_simple
176+ ```
156177
157- # 初始化虚拟环境和安装依赖
178+ 您可以通过 ` pip ` 工具来安装本项目依赖:
179+
180+ ``` bash
181+ pip install -r requirements.txt
182+ ```
183+
184+ 或者使用 ` uv ` 工具来安装本项目依赖:
185+
186+ ``` bash
187+ # 如果没有 `uv` 虚拟环境,可以使用命令先创建一个虚拟环境
188+ uv venv --python 3.12
189+
190+ # 使用 `pyproject.toml` 管理依赖
158191uv sync
159192
193+ # 使用 `requirements.txt` 管理依赖
194+ uv pip install -r requirements.txt
195+
160196# 激活虚拟环境
161197source .venv/bin/activate
162198```
163199
164- #### 3. 配置环境变量
200+ ### 环境准备
165201
166202``` bash
167203# 火山引擎访问凭证(必需)
168204export VOLCENGINE_ACCESS_KEY=< Your Access Key>
169205export VOLCENGINE_SECRET_KEY=< Your Secret Key>
170206```
171207
172- ### 运行方式
208+ ### 调试方法
173209
174- #### 方式一:部署到 AgentKit 平台(推荐)
175-
176- ** 部署远程 Agent** :
177- ``` bash
178- cd 02-use-cases/beginner/a2a_simple/remote
179-
180- # 配置部署参数(重要:agent_type 必须为 a2a)
181- agentkit config
182-
183- # 查看配置
184- agentkit config --show
185-
186- # 启动云端服务
187- agentkit launch
188-
189- # 测试部署的 Agent
190- agentkit invoke ' Hello, show me one number.'
191- ```
192-
193- ** 重要提示** :
194- - 务必确保 ` agentkit.yaml ` 中的 ` common.agent_type ` 配置值为 ` a2a `
195- - 否则无法成功部署 A2A 类型的 Agent
196-
197- #### 方式二:使用 VeADK Web 调试界面
210+ #### 方式一:使用 VeADK Web 调试界面
198211
199212``` bash
200213# 进入上级目录
@@ -208,7 +221,7 @@ veadk web
208221
209222Web 界面提供图形化对话测试环境,支持实时查看远程调用过程。
210223
211- #### 方式三 :命令行测试(推荐学习)
224+ #### 方式二 :命令行测试(推荐学习)
212225
213226** 步骤 1:启动远程 Agent 服务**
214227``` bash
@@ -241,31 +254,44 @@ python agent.py
241254- ** 远程 Agent** (端口 8001):提供 roll_die 和 check_prime 工具
242255- ** 本地 Agent** (端口 8000):提供 add 工具,并可调用远程 Agent
243256
244- #### 方式四:部署到火山引擎 veFaaS
257+ ## Agentkit 部署
258+
259+ ### 前置准备
260+
261+ ** 重要提示** :在运行本示例之前,请先访问 [ AgentKit 控制台授权页面] ( https://console.volcengine.com/agentkit/region:agentkit+cn-beijing/auth?projectName=default ) 对所有依赖服务进行授权,确保案例能够正常执行。
262+
263+ ** 1. 开通火山方舟模型服务**
264+
265+ - 访问 [ 火山方舟控制台] ( https://exp.volcengine.com/ark?mode=chat )
266+ - 开通模型服务
267+
268+ ** 2. 获取火山引擎访问凭证**
269+
270+ - 参考 [ 用户指南] ( https://www.volcengine.com/docs/6291/65568?lang=zh ) 获取 AK/SK
245271
246- ** 安全提示** :
247- > 以下命令仅用于开发测试。生产环境必须启用 ` VEFAAS_ENABLE_KEY_AUTH=true ` (默认值)并配置 IAM 角色。
272+ ### Agentkit 云上部署
248273
249274``` bash
250275cd 02-use-cases/beginner/a2a_simple/remote
251276
252- # 配置环境变量(仅测试用)
253- export VEFAAS_ENABLE_KEY_AUTH=false
254- export VOLCENGINE_ACCESS_KEY=< Your Access Key>
255- export VOLCENGINE_SECRET_KEY=< Your Secret Key>
277+ # 配置部署参数(重要:agent_type 必须为 a2a)
278+ agentkit config
256279
257- # 基础部署(快速开始)
258- veadk deploy --vefaas-app-name=a2a-dice-agent --use-adk-web
280+ # 查看配置
281+ agentkit config --show
282+
283+ # 启动云端服务
284+ agentkit launch
259285
260- # 生产级部署(推荐)
261- veadk deploy \
262- --vefaas-app-name=a2a-dice-agent \
263- --use-adk-web \
264- --veapig-instance-name=< Your veaPIG Instance> \
265- --iam-role " trn:iam::<Your Account ID>:role/<Your IAM Role>"
286+ # 测试部署的 Agent
287+ agentkit invoke ' Hello, show me one number.'
266288```
267289
268- ## 💡 示例对话
290+ ** 重要提示** :
291+ - 务必确保 ` agentkit.yaml ` 中的 ` common.agent_type ` 配置值为 ` a2a `
292+ - 否则无法成功部署 A2A 类型的 Agent
293+
294+ ## 示例提示词
269295
270296### 基础能力测试
271297
@@ -322,26 +348,9 @@ No prime numbers found.
3223483 are prime numbers.
323349```
324350
325- ## 📂 目录结构
326-
327- ```
328- a2a_simple/
329- ├── agent.py # 本地 Agent 服务(端口 8000,可调用远程 Agent)
330- ├── local_client.py # A2A 客户端实现
331- ├── remote/ # 远程 Agent 服务
332- │ ├── agent.py # Agent 定义和 A2A App(端口 8001)
333- │ ├── agentkit.yaml # AgentKit 部署配置
334- │ ├── requirements.txt # Python 依赖
335- │ ├── Dockerfile # Docker 镜像构建
336- │ └── tools/ # 工具实现
337- │ ├── roll_die.py # 投掷骰子工具
338- │ └── check_prime.py # 质数检查工具
339- ├── requirements.txt # 客户端依赖
340- ├── pyproject.toml # 项目配置
341- └── README.md # 项目说明文档
342- ```
351+ ## 效果展示
343352
344- ## 🔍 技术要点
353+ ## 技术要点
345354
346355### A2A 协议
347356
@@ -431,7 +440,7 @@ class MyAgentExecutor(A2aAgentExecutor):
431440a2a_app.run(agent_card = agent_card, host = " 0.0.0.0" , port = 8000 )
432441```
433442
434- ## 🎯 下一步
443+ ## 下一步
435444
436445完成 A2A Simple 示例后,可以探索更多功能:
437446
@@ -440,9 +449,13 @@ a2a_app.run(agent_card=agent_card, host="0.0.0.0", port=8000)
4404493 . ** [ Travel Concierge] ( https://github.com/volcengine/agentkit-samples/tree/main/02-use-cases/beginner/travel_concierge/README.md ) ** - 使用 Web 搜索工具
4414504 . ** 分布式系统** :部署多个 A2A Agent 构建分布式智能体网络
442451
443- ## 📖 参考资料
452+ ## 参考资料
444453
445454- [ VeADK 官方文档] ( https://volcengine.github.io/veadk-python/ )
446455- [ AgentKit 开发指南] ( https://volcengine.github.io/agentkit-sdk-python/ )
447456- [ A2A 协议规范] ( https://github.com/google/adk )
448457- [ 火山方舟模型服务] ( https://console.volcengine.com/ark/region:ark+cn-beijing/overview?briefPage=0&briefType=introduce&type=new&projectName=default )
458+
459+ ## 代码许可
460+
461+ 本工程遵循 Apache 2.0 License
0 commit comments