Skip to content

Commit b34dc6c

Browse files
committed
update deploy doc
1 parent 7d12bab commit b34dc6c

File tree

1 file changed

+59
-38
lines changed

1 file changed

+59
-38
lines changed

docs/docs/deploy.md

Lines changed: 59 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
# 部署上云
22

3-
VeADK提供了一个云引擎,配合命令行脚手架,你可以方便地:
3+
## 命令行部署
44

5-
- 快速开始:启动一个新的样例模板项目进行开发
6-
- 从已有项目:将你本地的 Agent 项目上传至[火山引擎函数服务平台](https://www.volcengine.com/product/vefaas)
5+
VeADK提供了一个云引擎,配合命令行脚手架,你可以:
6+
7+
- **快速开始** 启动一个新的样例模板项目进行开发
8+
- **从已有项目** 将你本地的 Agent 项目上传至[火山引擎函数服务平台](https://www.volcengine.com/product/vefaas)
79

810
部署时,你可以指定两种部署模式来对外提供服务:
911

10-
- A2A与MCP Server(一体化启动)
11-
- A2A 提供标准的`message_send`等接口
12-
- MCP 提供`run_agent`工具方法
13-
- VeADK Web(兼容Google ADK Web)
14-
- 提供一个Web界面,方便你在浏览器中进行体验
12+
- **A2A与MCP Server**
13+
- A2A Server 提供遵循 A2A 标准的 `message_send` 等接口
14+
- MCP Server 提供一个 `run_agent` 工具方法
15+
- **VeADK Web**
16+
- 提供Web界面,方便你在浏览器中进行体验
1517

16-
## 快速开始
18+
### 快速开始
1719

18-
### 初始化
20+
#### 初始化
1921

2022
你可以运行`veadk init`命令来初始化一个新的Agent项目:
2123

@@ -40,13 +42,13 @@ Run python `deploy.py` for deployment on Volcengine FaaS platform.
4042
它会提示你输入如下几个参数:
4143

4244
- 本地项目名称(即项目的本地目录名称)
43-
- VeFaaS应用名称
44-
- 火山引擎网关实例名称
45-
- 火山引擎网关服务名称
46-
- 火山引擎网关Upstream名称
45+
- VeFaaS应用名称(不可带下划线)
46+
- 火山引擎网关实例名称(可选)
47+
- 火山引擎网关服务名称(可选)
48+
- 火山引擎网关Upstream名称(可选)
4749
- 部署模式
4850
1. A2A / MCP Server
49-
2. VeADK Web / Google ADK Web
51+
2. VeADK Web
5052

5153
生成后的项目结构如下:
5254

@@ -64,40 +66,45 @@ Run python `deploy.py` for deployment on Volcengine FaaS platform.
6466
└── agent.py # agent 定义
6567
```
6668

67-
你所创建的`config.yaml`不会被上传到云端,其中的属性值将会以环境变量的形式上传至VeFaaS平台。
69+
你所创建的 `config.yaml` 不会被上传到云端,其中的属性值将会以环境变量的形式上传至VeFaaS平台。
6870

69-
只有`src/`路径下的文件才会被上传到云端。
71+
只有 `src/` 路径下的文件才会被上传到云端。
7072

71-
### 自定义项目
73+
#### 自定义项目
7274

7375
在使用脚手架生成模板项目后,你可以做如下操作:
7476

75-
1.`src`目录中直接导入一个能够被 ADK Web 识别的目录(例如`weather_agent`目录),主要包括:
76-
- 包含`root_agent`这个全局变量的`agent.py`文件
77-
- 包含`from . import agent``__init__.py`文件
78-
2.`src/agent.py`中实例化`AgentRunConfig`类,主要属性包括:
77+
1. `src` 目录中直接导入一个能够被 ADK Web 识别的目录(例如 `weather_agent` 目录),主要包括:
78+
- 包含 `root_agent` 这个全局变量的 `agent.py` 文件
79+
- 包含 `from . import agent``__init__.py` 文件
80+
2. `src/agent.py` 中实例化 `AgentRunConfig` 类,主要属性包括:
7981
- `app_name`:部署在云上的 Agent 应用名称(与VeFaaS应用名称不一定对应,此处为服务级别)
8082
- `agent`:你提供服务的 Agent 实例
8183
- `short_term_memory`:短期记忆,为空则默认初始化in-memory短期记忆,重启后即消失
82-
- `requirement_file_path`:依赖文件路径,VeADK 能够自动将其移动到`src/requirements.txt`
84+
- `requirement_file_path`:依赖文件路径,VeADK 能够自动将其移动到 `src/requirements.txt`
8385
3. 使用`python deploy.py`进行云端部署
8486

85-
如果你想在部署到云端前进行本地运行,测试代码问题,可以在`deploy.py`中的`engine.deploy`调用处,添加参数:`local_test=True`。添加后,在部署前将会启动相关服务,测试启动是否正常。
87+
如果你想在部署到云端前进行本地运行来测试代码问题,可以在 `deploy.py` 中的 `engine.deploy` 调用处,添加参数:`local_test=True`。添加后,在部署前将会启动相关服务,测试启动是否正常。
8688

87-
### 云端环境变量
89+
#### 云端环境变量
8890

8991
| 环境变量名称 | 说明 || 备注 |
9092
| - | - | - | - |
91-
| VEADK_TRACER_APMPLUS | 是否使用火山 APMPlus Tracing | `true` \| `false` | |
92-
| VEADK_TRACER_COZELOOP | 是否使用火山 CozeLoop Tracing | `true` \| `false` | |
93-
| VEADK_TRACER_TLS | 是否使用 TLS Tracing | `true` \| `false` | |
94-
| SHORT_TERM_MEMORY_BACKEND | 启动 ADK Web 时的短期记忆后端 | `local` \| `mysql` | 优先级低于在`agent.py`中定义的短期记忆 |
95-
| LONG_TERM_MEMORY_BACKEND | 启动 ADK Web 时的长期记忆后端 | `opensearch` \| `viking` | 优先级低于在`agent.py`中定义的长期记忆 |
93+
| VEADK_TRACER_APMPLUS | 是否使用火山 APMPlus Tracing | `true` \| `false` | 默认为 `false`|
94+
| VEADK_TRACER_COZELOOP | 是否使用火山 CozeLoop Tracing | `true` \| `false` | 默认为 `false` |
95+
| VEADK_TRACER_TLS | 是否使用 TLS Tracing | `true` \| `false` | 默认为 `false` |
96+
| SHORT_TERM_MEMORY_BACKEND | 启动 ADK Web 时的短期记忆后端 | `local` \| `mysql` | 优先级低于在 `agent.py` 中定义的短期记忆 |
97+
| LONG_TERM_MEMORY_BACKEND | 启动 ADK Web 时的长期记忆后端 | `opensearch` \| `viking` | 优先级低于在 `agent.py` 中定义的长期记忆 |
9698

97-
## 从已有项目
99+
### 从已有项目
98100

99101
如果你已经在本地有一个 agent 项目,你可以使用`veadk deploy`命令将你当前的项目上传至云端。
100102

103+
使用命令前,请先确保你的本地 agent 项目中包括:
104+
105+
1. 一个含有全局变量 `root_agent``agent.py` 文件
106+
2. 一个含有 `from . import agent` 语句的 `__init__.py` 文件
107+
101108
`veadk deploy`接收的参数如下:
102109

103110
| 名称 | 类型 | 释义 |
@@ -112,9 +119,11 @@ Run python `deploy.py` for deployment on Volcengine FaaS platform.
112119
| `--use-adk-web` | FLAG | 设置后将会在云端启动 web,否则为 A2A / MCP 模式 |
113120
| `--path` | 字符串 | 本地项目路径,默认为当前目录 |
114121

115-
## Cloud Agent Engine
122+
## 代码部署
116123

117-
如果你已经有一个较为成熟的Agent项目,你可以通过VeADK中提供的云引擎来部署你的项目。VeFaaS平台所需的部署文件我们将会为你自动生成到你的项目路径中。
124+
### Cloud Agent Engine
125+
126+
如果你已经有一个较为成熟的Agent项目,你可以通过VeADK中提供的云引擎来部署你的项目。项目结构的最佳实践可参考[这里](#项目结构)
118127

119128
```python
120129
from veadk.cloud.cloud_agent_engine import CloudAgentEngine
@@ -138,7 +147,7 @@ cloud_app = engine.deploy(...)
138147
| gateway_upstream_name | str | 火山引擎网关Upstream名称 |
139148
| use_adk_web | bool | 是否在云端使用VeADK Web / Google Web |
140149

141-
## Cloud App
150+
### Cloud App
142151

143152
当你使用`CloudAgentEngine`部署完成后,将返回一个`CloudApp`实例,代表云应用,主要功能包括:
144153

@@ -172,9 +181,9 @@ app = CloudApp(name="veadk-agent", endpoint=ENDPOINT)
172181
cloud_app.invoke(user_id=USER_ID, session_id=SESSION_ID, message=...)
173182
```
174183

175-
## 更新云应用
184+
### 更新云应用
176185

177-
### 通过 CloudAgentEngine 更新
186+
#### 通过 CloudAgentEngine 更新
178187

179188
当您需要更新已部署的Agent代码时,可以使用`update_function_code`方法:
180189

@@ -197,9 +206,9 @@ updated_cloud_app = engine.update_function_code(
197206
- 更新操作会保持相同的访问端点URL
198207
- 确保项目路径包含`agent.py`文件
199208

200-
## 删除云应用
209+
### 删除云应用
201210

202-
### 通过 CloudAgentEngine 删除
211+
#### 通过 CloudAgentEngine 删除
203212

204213
```python
205214
from veadk.cloud.cloud_agent_engine import CloudAgentEngine
@@ -217,3 +226,15 @@ Confirm delete cloud app my-agent-app? (y/N): y
217226
```
218227

219228
输入`y`确认删除,输入其他任何字符或直接回车则取消删除。
229+
230+
## 项目结构
231+
232+
一个能在云上运行的 agent 项目结构主要包括如下几个文件:
233+
234+
- `run.sh` 启动脚本
235+
- `requirements.txt` 依赖列表
236+
- `app.py` 定义 FastAPI Server 的 python 文件
237+
- `agent.py` 导出 agent 以及短期记忆、依赖路径等信息
238+
- `agent_module` 自定义的 agent 模块
239+
- `__init__.py` 必须包含 `from . import agent` 语句
240+
- `agent.py` 定义 agent 实例,必须包含 `root_agent=...` 全局变量导出

0 commit comments

Comments
 (0)