本文面向通过计算巢以自定义方式部署Agent的用户,说明创建页面各功能模块的作用、配置要点及注意事项,提供完整的部署指引。
自定义 Agent 能做什么
您自行指定应用从哪里来(Git 仓库、OSS 压缩包或容器镜像)、如何启动与停止,并可配置环境变量、百炼模型与 API Key、可选 MCP、Skills 与应用连接绑定等。部署完成后可通过 Web 对话页 / API 调用等方式使用。
进入计算巢控制台,在 Agent 部署 > Agent 选择 中创建 Agent。

前提说明
计算巢平台仅提供 Agent 运行环境,具体 Agent 代码需由开发者自行编写。
官方示例基于 Google ADK,建议对齐 ADK 项目结构以获得最佳适配。
记忆、沙箱等连接通过环境变量注入,代码中
os.getenv()读取即可,详见连接使用说明。
开发说明:
ECS 宿主机预装 Docker、Python 3.12、Google ADK、google-adk-redis。
业务镜像推荐基于以下公开基础镜像构建:
compute-nest-registry.cn-hangzhou.cr.aliyuncs.com/computenest/agentscope-adk-base-py312:latest对接 Agent 连接(MCP、知识库、记忆等)时,可直接使用 computenest-agent-integrations 开发库。
项目结构与代码实现可参考Agent 市场中的官方示例。
部署页参数说明
创建 Agent 时,先在部署页选择部署方式(ECS 版 或 容器集群版),再按页面分区填写各项参数。以下按控制台页面结构说明各配置项。
应用信息
参数 | 说明 |
应用名称 | 当前部署的 Agent 应用名称,默认即可 |
分组名称 | 当前部署的 Agent 应用分组名称,默认即可 |
Agent 配置
源文件类型
源文件类型:选择应用来源方式:Git 仓库代码、OSS 文件 或 Docker 镜像。后续需填写的参数会随该选项变化。
不同部署方式下,各源类型是否可用如下:
源类型 | ECS 版 | 容器集群版 |
Docker 镜像(推荐) | ||
Git 仓库 | ||
OSS 文件 |
Docker 镜像
参数 | 说明 |
ACR 地域 | 镜像所在地域 |
ACR 类型 | 个人版 / 企业版 |
仓库名称 | 镜像仓库 |
镜像版本 | 部署的 Tag |
内网拉取 | 企业版需 VPC 互通 |
发布时镜像会在执行脚本前自动拉取到 ECS,脚本中无需执行 docker pull。
推荐基于官方公开 ADK 基础镜像构建。
FROM compute-nest-registry.cn-hangzhou.cr.aliyuncs.com/computenest/agentscope-adk-base-py312:latest
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["bash", "docker-entrypoint.sh"] # 启动Git 仓库(仅 ECS 版)
参数 | 说明 |
平台 | github / gitee 等 |
所有者 / 组织 | 仓库归属 |
仓库名称 / 分支 | 代码位置 |
代码自动下载到 code_deploy_application/,无需 git clone。
OSS 文件(仅 ECS 版)
参数 | 说明 |
OSS 地域 / Bucket / 文件路径 | 部署包位置 |
内网下载 | 需 ECS 与 OSS 同地域 |
文件自动下载到工作目录,压缩包需启动脚本中解压。
工作目录与脚本
ECS 版:
参数 | 说明 |
工作目录 | 绝对路径,默认 |
应用启动脚本 | Shell 脚本,启动 Agent |
应用停止脚本 | Shell 脚本,停止 Agent |
每次启动前会先执行停止脚本,确保旧版本被清理。
启动脚本示例(ADK Docker):
set -euo pipefail
IMAGE=<您的 ACR 镜像地址>
docker run -d \
--name my-agent \
--restart unless-stopped \
--network host \
-e DASHSCOPE_API_KEY \
-e DASHSCOPE_MODEL_NAME \
${SESSION_REDIS_URL:+-e SESSION_REDIS_URL} \
-e PORT=8000 \
"$IMAGE"停止脚本示例:
docker rm -f compute_nest_agent 2>/dev/null || true容器集群版:无需配置启停脚本,K8s 自动管理 Pod 生命周期,镜像的 CMD/ENTRYPOINT 即为启动入口。
部署资源
ECS 版:
付费方式:按量付费 / 包年包月
实例规格:默认
ecs.u1-c1m2.large系统盘:ESSD,默认 40 GiB
公网带宽:默认 5~10 Mbps
预装:Docker + Python 3.12 + Google ADK
容器集群版:
集群选项:新建 ACS / 新建 ACK / 已有集群
默认:新建 ACS(Serverless,无需管理节点)
ACK 需配置:Worker 规格、节点数量、网络插件
两种方式的 WebUI 与 API 均通过 8000 端口访问。
环境变量配置
参数 | 环境变量 | 说明 |
百炼 API Key |
| 必填 |
模型选择 |
| 部署页选择后自动注入 |
服务端口 |
| 默认 8000 |
自定义环境变量 | — | 用户自行添加键值对 |
ECS 版:环境变量写入宿主机,启动脚本中通过 -e VAR_NAME 透传给容器。
容器集群版:环境变量通过 ConfigMap(app-config)注入 Pod,代码中直接 os.getenv() 读取。
网络配置
ECS 版:可用区、专有网络(新建或已有)、交换机与网段等,按页面提示选择即可。
容器集群版:须选择已有专有网络及交换机(不支持新建 VPC)。
网络选择会影响下方工具配置中可绑定的应用连接:连接须与 Agent 部署在同一 VPC 内网互通。
模型配置
参数 | 说明 |
模型选择 | 下拉列表中选择要使用的模型 |
百炼 API Key | 从百炼获取后填入,必填,用于调用模型服务 |
工具配置
参数 | 说明 |
应用连接 | 绑定沙箱、会话管理、知识库、记忆等 |
百炼 MCP | 开启「启动 MCP」后选择所需工具 |
Skills | 开启「启用 Skills」后选择 Skill 空间与要安装的 Skill;安装目录为 |
应用连接说明
会话连接用于多轮对话上下文持久化,对应 Redis 实例。使用前请先在Redis 控制台创建实例,并在 Agent 部署 > 连接管理 中创建连接。详见连接使用说明。
ECS 版:可选。选新建 VPC 时列表不展示会话连接,可使用内置本地 Redis;选已有 VPC 后,列表仅展示与该 VPC 同网的连接,可按需绑定。
容器集群版:必填。须选已有 VPC,并绑定与该 VPC 同网的会话管理连接。
会话连接须与 Agent 部署在同一 VPC 内网互通。选新建 VPC 时 VPC 尚未创建,无法匹配 Redis 网络,故不展示会话连接——仅 ECS 场景生效。
MCP 配置方式
部署方式 | 配置方式 |
ECS 版 | 平台将 JSON 原文固定写入 |
容器集群版 | 平台将 JSON 经 Base64 编码后写入环境变量 |
MCP Json 格式示例:
{
"mcpServers": {
"WebSearch": {
"type": "streamableHttp",
"baseUrl": "https://dashscope.aliyuncs.com/api/v1/mcps/WebSearch/mcp",
"headers": {
"Authorization": "Bearer ${DASHSCOPE_API_KEY}"
}
}
}
}${DASHSCOPE_API_KEY} 为占位符,部署时由平台替换为实际 API Key。
代码读取示例:
ECS 版从文件读取;容器集群版从 MCP_JSON 读取并 Base64 解码。
import base64
import json
import os
from pathlib import Path
def load_mcp_config() -> dict:
if raw := os.getenv("MCP_JSON"):
return json.loads(base64.b64decode(raw).decode("utf-8"))
path = Path(os.getenv("MCP_CONFIG_PATH", "/root/mcp_config.json"))
return json.loads(path.read_text(encoding="utf-8"))调试时可执行 echo "$MCP_JSON" | base64 -d 查看解码后的 JSON。
各 MCP 的 baseUrl 以百炼控制台展示为准;使用前需在百炼侧开通对应 MCP 能力。详见连接使用说明。Skills 配置方式
部署方式 | 配置方式 |
ECS 版 | 部署时开启「启用 Skills」,选择 Skill 空间与要安装的 Skill;平台自动安装到 |
容器集群版 | 同上;通过 Init Container 安装 Skill 并挂载到 Pod 的 |
代码中可从 /root/skills 读取已安装的 Skill 文件,供 Agent 按需加载。
部署完成
输出 | ECS 版 | 容器集群版 |
WebUI + API (:8000) | ||
代码调试 (:8080) | Code Server | Code Server |
远程连接(Workbench) | 需前端集群控制台登录 |
ADK 服务通过 8000 端口同时提供 Web UI 与 /run_sse API;OpenAPI 文档:http://<IP>:8000/docs。
后续操作(可选)
操作 | 路径 |
更换镜像/代码 | 部署物 > 新建部署物 > 发布部署物 |
修改环境变量 | 参数修改 > 发布管理 > 发布部署物 |
绑定连接 | Agents 管理 > 绑定 > 发布管理 > 发布部署物 |
变更 MCP | Agents 管理 > MCP > 变更 |
变更 Skills | Agents 管理 > Skills > 变更 |
常见问题
ECS
现象 | 建议排查 |
Git 拉取失败 | 中国内地访问 GitHub 不稳定,换平台或选海外地域 |
OSS 下载失败 | 地域/内网选项是否匹配 |
镜像拉取失败 | ACR 与 ECS 网络是否互通 |
Docker run 报错 | 检查 |
容器集群版
现象 | 建议排查 |
镜像拉取失败 | ACR 企业版需配置 VPC 访问控制 |
Pod CrashLoopBackOff |
|
Pod Pending | 集群资源不足或调度限制 |
通用
现象 | 建议排查 |
模型鉴权失败 | 确认百炼 API Key 正确 |
MCP 401 | 确认百炼侧已开通对应 MCP |
链接绑定后不生效 | 需在发布管理重新发布 |
会话不能持久化 | 是否绑定了会话管理链接;启动命令是否传入 |
WebUI 打不开 | 部署是否成功;首次启动较慢;确认端口 |