部署
从脚手架开始
Text, title, and styling in standard markdown.
初始化
你可以运行veadk init
命令来初始化一个新的Agent项目:
$ veadk init
Welcome use VeADK to create your project. We will generate a `weather-reporter` application for you.
Local directory name [veadk-cloud-proj]:
Volcengine FaaS application name [veadk-cloud-agent]:
Volcengine API Gateway instance name []:
Volcengine API Gateway service name []:
Volcengine API Gateway upstream name []:
Choose a deploy mode:
1. A2A/MCP Server
2. VeADK Web / Google ADK Web
Enter your choice (1, 2): 1
Template project has been generated at .../veadk-cloud-proj
Edit .../veadk-cloud-proj/src to define your agents
Edit .../veadk-cloud-proj/deploy.py to define your deployment attributes
Run python `deploy.py` for deployment on Volcengine FaaS platform.
它会提示你输入如下几个参数:
- 本地项目名称(即项目的本地目录名称)
- VeFaaS应用名称(不可带下划线)
- 火山引擎网关实例名称(可选)
- 火山引擎网关服务名称(可选)
- 火山引擎网关Upstream名称(可选)
- 部署模式
- A2A / MCP Server
- VeADK Web
生成后的项目结构如下:
└── veadk-cloud-proj
├── config.yaml.full # 定义环境变量
├── deploy.py # 部署脚本
└── src
├── agent.py # agent 运行时数据导出
├── app.py # Server 定义
├── requirements.txt # 依赖
├── run.sh # 启动脚本
└── weather_report # agent module
├── __init__.py # 必须包含`from . import agent`
└── agent.py # agent 定义
你所创建的 config.yaml
不会被上传到云端,其中的属性值将会以环境变量的形式上传至VeFaaS平台。
只有 src/
路径下的文件才会被上传到云端。
自定义项目
在使用脚手架生成模板项目后,你可以做如下操作:
- 向
src
目录中直接导入一个能够被 ADK Web 识别的目录(例如weather_agent
目录),主要包括:- 包含
root_agent
这个全局变量的agent.py
文件 - 包含
from . import agent
的__init__.py
文件
- 包含
- 在
src/agent.py
中实例化AgentRunConfig
类,主要属性包括:app_name
:部署在云上的 Agent 应用名称(与VeFaaS应用名称不一定对应,此处为服务级别)agent
:你提供服务的 Agent 实例short_term_memory
:短期记忆,为空则默认初始化in-memory短期记忆,重启后即消失
- 使用
python deploy.py
进行云端部署
如果你想在部署到云端前进行本地运行来测试代码问题,可以在 deploy.py
中的 engine.deploy
调用处,添加参数:local_test=True
。添加后,在部署前将会启动相关服务,测试启动是否正常。
云端环境变量
环境变量名称 | 说明 | 值 | 备注 |
---|---|---|---|
VEADK_TRACER_APMPLUS | 是否使用火山 APMPlus Tracing | true | false | 默认为 false |
VEADK_TRACER_COZELOOP | 是否使用火山 CozeLoop Tracing | true | false | 默认为 false |
VEADK_TRACER_TLS | 是否使用 TLS Tracing | true | false | 默认为 false |
SHORT_TERM_MEMORY_BACKEND | 启动 ADK Web 时的短期记忆后端 | local | mysql | 优先级低于在 agent.py 中定义的短期记忆 |
LONG_TERM_MEMORY_BACKEND | 启动 ADK Web 时的长期记忆后端 | opensearch | viking | 优先级低于在 agent.py 中定义的长期记忆 |