CLI
CLI概述
AgentArts Starter toolkit是SDK提供的命令行工具,用于在终端中管理Agent的部署、调用、状态查询和资源销毁等操作。
安装与配置
CLI工具通过hw_agentrun_toolkit包提供,安装SDK后即可使用:
pip install hw-agentrun
验证安装:
agentarts --version
命令列表
|
命令 |
说明 |
|---|---|
|
命令用于初始化一个新的AgentArts项目。该命令会创建完整的项目结构,包括 Agent 实现代码、依赖文件和配置文件,帮助开发者快速开始 Agent 应用开发。 |
|
|
命令用于管理AgentArts项目配置。支持创建、更新、查看和管理 Agent 配置信息,包括基本配置、SWR配置和运行时配置等。 |
|
|
deploy和launch命令用于将Agent部署到华为云AgentArts平台。该命令会构建Docker镜像、上传到SWR(容器镜像服务),并创建或更新Agent实例。 |
|
|
用于调用已部署的Agent,向其发送请求并获取响应。支持同步调用和流式调用两种模式,适用于测试Agent功能、调试业务逻辑以及生产环境调用。 |
|
|
用于检查已部署Agent的健康状态。该命令会向Agent发送健康检查请求,返回当前运行状态、响应时间和健康指标,帮助开发者监控Agent运行情况。 |
|
|
用于从华为云AgentArts平台删除Agent及其相关资源。该命令会永久删除Agent实例、配置信息和相关资源,执行前会提示确认,防止误操作。 |
init - 初始化agent项目
命令用于初始化一个新的AgentArts项目。该命令会创建完整的项目结构,包括Agent实现代码、依赖文件和配置文件,帮助开发者快速开始Agent应用开发。
|
参数 |
简写 |
说明 |
默认值 |
|---|---|---|---|
|
--name |
-n |
项目名称 |
交互式提示输入 |
|
--template |
-t |
项目模板类型 |
交互式选择 |
|
--path |
-p |
项目创建路径 |
. (当前目录) |
|
--region |
-r |
华为云区域 |
cn-southwest-2 |
|
--swr-org |
无 |
SWR组织名称 |
agentarts-org |
|
--swr-repo |
无 |
SWR仓库名称 |
agent_{Agent名称} |
|
模板名称 |
说明 |
|---|---|
|
basic |
基础模板,适合快速开始。 |
|
langgraph |
LangGraph框架模板,支持状态工作流。 |
|
langchain |
LangChain框架模板,支持工具集成。 |
|
google-adk |
Google ADK框架模板,支持Gemini模型。 |
执行效果
执行 init 命令后,会在指定路径下创建以下项目结构:
{project_name}/
├── agent.py # Agent 实现代码
├── requirements.txt # 项目依赖文件
├── .agentarts_config.yaml # AgentArts 配置文件
└── Dockerfile # Docker 构建文件
- agent.py: Agent的主要实现文件,包含入口函数和业务逻辑。
- requirements.txt: 项目依赖列表,包括SDK和框架包。
- .agentarts_config.yaml: AgentArts配置文件,包含部署和运行配置。
- Dockerfile: Docker镜像构建文件,用于容器化部署。
使用示例
- 示例 1: 交互式创建项目
agentarts init
执行后会提示:
- 输入项目名称
- 选择模板类型(输入数字选择)
- 输入华为云区域(默认cn-southwest-2)
- 示例 2: 使用 LangGraph模板创建项目
agentarts init --name my-agent --template langgraph
- 示例 3: 指定路径和区域创建项目
agentarts init -n my-agent -t langchain --path ./projects --region cn-southwest-2
- 示例 4: 完整参数示例
agentarts init \ --name my-agent \ --template langgraph \ --path ./my-projects \ --region cn-southwest-2 \ --swr-org my-organization \ --swr-repo my-repository
configure - 配置Agent
命令用于管理AgentArts项目配置。支持创建、更新、查看和管理Agent配置信息,包括基本配置、SWR配置和运行时配置等。
configure是config 命令的别名,两者功能完全相同。
|
参数 |
简写 |
说明 |
是否必填 |
|---|---|---|---|
|
--name |
-n |
Agent名称 |
否,交互式提示 |
|
--entrypoint |
-e |
Agent入口函数 |
否,交互式提示 |
|
--region |
-r |
华为云区域 |
否,默认cn-southwest-2 |
|
--dependency-file |
-d |
依赖文件路径 |
否,自动检测 |
|
--swr-org |
无 |
SWR组织名称 |
否,默认agentarts-org |
|
--swr-repo |
无 |
SWR仓库名称 |
否,默认agent_{Agent名称} |
|
--set-default |
无 |
设置为默认Agent |
否,默认是 |
执行agentarts config后,会依次提示输入:
- Agent 名称(显示已有Agent列表)
- 入口函数(格式:module:function)
- 华为云区域(默认cn-southwest-2)
- 依赖文件(自动检测requirements.txt)
- SWR组织名称
- SWR仓库名称
配置完成后:
- 保存配置到 .agentarts_config.yaml
- 自动生成 Dockerfile(如果不存在)
使用示例
- 示例 1: 交互式配置
agentarts config
按提示输入配置信息,适合首次配置或不确定参数时使用。
- 示例 2: 快速配置
agentarts config --name my-agent --entrypoint agent:create_app
仅提供必要参数,其他使用默认值。
- 示例 3: 完整参数配置
agentarts config \ --name my-agent \ --entrypoint agent:create_app \ --region cn-southwest-2 \ --dependency-file requirements.txt \ --swr-org my-organization \ --swr-repo my-repository
- 示例 4: 列出所有Agent
agentarts config list
- 示例 5: 设置默认Agent
agentarts config set-default my-agent
deploy/launch- 部署Agent
deploy和launch命令用于将Agent部署到华为云 AgentArts 平台。该命令会构建 Docker 镜像、上传到 SWR(容器镜像服务),并创建或更新 Agent 实例。
launch 是 deploy 命令的别名,两者功能完全相同。
|
参数 |
简写 |
说明 |
默认值 |
|---|---|---|---|
|
--agent |
-a |
Agent 名称 |
使用默认 Agent |
|
--mode |
-m |
部署模式(local/cloud) |
cloud |
|
--tag |
-t |
Docker 镜像标签 |
latest |
|
--port |
-p |
服务端口(覆盖配置) |
从配置文件读取 |
|
--local-port |
-l |
本地端口映射(本地模式) |
从配置文件读取 |
|
--swr-org |
无 |
SWR 组织(覆盖配置) |
从配置文件读取 |
|
--swr-repo |
无 |
SWR 仓库(覆盖配置) |
从配置文件读取 |
|
--description |
-d |
Agent 描述(覆盖配置) |
从配置文件读取 |
部署流程
执行 deploy 命令会依次执行以下步骤:
- 配置验证
- 检查 .agentarts_config.yaml 配置文件
- 验证必要配置项是否完整
- 确认 Agent 入口函数存在
- 镜像构建
- 读取 Dockerfile 构建配置
- 构建包含 Agent 代码的 Docker 镜像
- 标记镜像版本(latest 和时间戳版本)
- 镜像推送
- 登录华为云 SWR 服务
- 推送镜像到指定组织和仓库
- 验证镜像推送成功
- Agent 创建/更新
- 调用 AgentArts 控制平面 API
- 创建新的 Agent 或更新现有 Agent
- 配置运行时参数和环境变量
- 部署验证
- 检查 Agent 状态
- 验证服务可用性
- 输出访问端点信息
使用示例
- 示例 1: 基本部署
agentarts deploy
使用默认 Agent 和配置进行部署。
- 示例 2: 指定 Agent 部署
agentarts deploy --agent my-agent
或使用简写:agentarts deploy -a my-agent
invoke - 调用Agent
用于调用已部署的 Agent,向其发送请求并获取响应。支持同步调用和流式调用两种模式,适用于测试 Agent 功能、调试业务逻辑以及生产环境调用。
|
参数 |
简写 |
说明 |
默认值 |
|---|---|---|---|
|
payload |
- |
JSON 格式的请求数据(位置参数) |
必填 |
|
--agent |
-a |
Agent 名称 |
使用默认 Agent |
|
--region |
-r |
华为云区域 |
从配置文件读取 |
|
--mode |
-m |
调用模式(local/cloud) |
cloud |
|
--port |
-p |
本地模式端口 |
8080 |
|
--endpoint |
-e |
指定端点名称 |
无 |
|
--session |
-s |
会话 ID(用于有状态 Agent) |
自动生成 UUID |
|
--bearer-token |
-bt |
Bearer 认证令牌 |
无 |
|
--timeout |
- |
请求超时时间(秒) |
900 |
使用示例
- 示例 1: 基本调用
agentarts invoke '{"message": "你好"}' - 示例 2: 指定 Agent 调用
agentarts invoke '{"message": "你好"}' --agent my-agent - 示例 3: 使用简写参数
agentarts invoke '{"message": "你好"}' -a my-agent - 示例 4: 指定区域调用
agentarts invoke '{"message": "你好"}' --agent my-agent --region cn-southwest-2 - 示例 5: 本地模式调用
agentarts invoke '{"message": "你好"}' --mode local
status - 查询状态
用于检查已部署 Agent 的健康状态。该命令会向 Agent 发送健康检查请求,返回当前运行状态、响应时间和健康指标,帮助开发者监控 Agent 运行情况。
|
参数 |
简写 |
说明 |
默认值 |
|---|---|---|---|
|
--agent |
-a |
Agent 名称 |
使用默认 Agent |
|
--region |
-r |
华为云区域 |
从配置文件读取 |
|
--mode |
-m |
检查模式(local/cloud) |
cloud |
|
--port |
-p |
本地模式端口 |
8080 |
|
--bearer-token |
-bt |
Bearer 认证令牌 |
无 |
|
--endpoint |
-e |
指定端点名称 |
无 |
|
--session |
-s |
会话 ID(用于有状态 Agent) |
无 |
使用示例
- 示例 1: 检查默认 Agent 状态
agentarts status
- 示例 2: 检查指定 Agent 状态
agentarts status --agent my-agent
或使用简写:agentarts status -a my-agent
- 示例 3: 指定区域检查
agentarts status --agent my-agent --region cn-southwest-2
或使用简写:agentarts status -a my-agent -r cn-southwest-2
- 示例 4: 本地模式检查
agentarts status --mode local
或指定端口:agentarts status --mode local --port 8080
destroy - 销毁资源
用于从华为云 AgentArts 平台删除 Agent 及其相关资源。该命令会永久删除 Agent 实例、配置信息和相关资源,执行前会提示确认,防止误操作。
此操作不可逆,删除后无法恢复 Agent 数据和配置。
|
参数 |
简写 |
说明 |
默认值 |
|---|---|---|---|
|
--agent |
-a |
Agent 名称 |
使用默认 Agent |
|
--region |
-r |
华为云区域 |
从配置文件读取 |
|
--yes |
-y |
跳过确认提示 |
false |
使用示例
- 示例 1: 交互式删除默认 Agent
agentarts destroy
执行后会提示确认,输入 y 确认删除。
- 示例 2: 删除指定 Agent
agentarts destroy --agent my-agent