高代码 Agent 部署与使用指南
高代码 Agent 支持将自行开发的应用以容器镜像或代码包部署到 AgentCore。您可以保留已有的开发框架和 HTTP 服务,在控制台配置运行环境、调试对话并获取调用地址。
高代码 Agent 支持将自行开发的应用托管到 AgentCore。本文提供两条完整的部署路径,可根据需要选择其中一条,按该路径依次完成准备、创建、配置和验证。
部署方式 | 需要准备 | 阅读路径 |
容器镜像 | 已推送至企业版 ACR 的应用镜像 | 第一部分:通过容器镜像部署 |
代码包 | 包含应用和依赖的 ZIP 文件,也可使用控制台示例 | 第二部分:通过代码包部署 |
部署成功后,可参考第三部分从业务应用调用 Agent,或参考第四部分查看状态并排查异常。应用开发和 SDK 接入请参见文末“开发参考”。
前提条件
已开通 AgentCore 并创建 Workspace,具体操作请参见管理 Workspace。
已准备 Agent 执行角色;应用使用平台模型、MCP、Skill 等资源时,已在目标 Workspace 配置资源,并授予所需访问权限。
应用已有可运行的 HTTP 服务,实际接口与控制台声明的协议和路径匹配。首次体验代码包部署时,可直接使用平台示例。
一、通过容器镜像部署
本流程从镜像准备开始,完成 Agent 创建、调试和后续镜像更新。
1. 准备容器镜像
检查项 | 要求 |
架构 | 支持 Linux x86_64,即 |
Shell | 提供可执行的 |
运行产物 | 镜像内包含应用、依赖和启动所需文件 |
镜像仓库 | 使用企业版 ACR;按创建页要求开启实例的公开匿名拉取,并使用公开仓库 |
网络 | Agent 运行环境能够访问镜像仓库,访问控制与所选公网或 VPC 路径匹配 |
公开镜像中不要包含密钥和业务数据。镜像构建示例请参见使用 Python SDK 快速创建高代码 Agent。
应用应监听 0.0.0.0,并实现健康检查和所需的对话接口。确认实际启动命令、服务端口、健康检查路径及协议路径。
2. 创建 Agent 并选择镜像
登录 AgentCore 控制台,选择目标地域和 Workspace。
进入 Agent 列表,单击 创建 Agent,选择 自定义代码 / 镜像。
填写 Agent 名称和可选的描述。
在 选择代码来源 中选择 容器镜像。
依次选择 容器镜像实例、镜像仓库 和 镜像版本。
字段 | 操作说明 |
容器镜像实例 | 选择已准备的企业版 ACR 实例;新建实例后可刷新列表 |
镜像仓库 | 选择应用镜像所在仓库 |
镜像版本 | 选择本次部署的 tag,可结合 Digest、镜像大小和最近推送时间核对 |
建议每次发布使用明确的版本标签,以便确认实际部署内容。
3. 配置启动方式和执行角色
在创建页面填写以下启动配置。
配置项 | 操作说明 |
启动命令 | 填写镜像内可执行的应用命令,确保路径和入口文件与镜像内容一致 |
服务端口 | 填写应用实际监听端口,例如应用监听 |
执行角色 | 选择具备应用所需资源权限的角色,通过 查看策略 核对权限 |
环境变量 | 按应用需要添加名称和值,可使用表单模式或 JSON 模式 |
按页面显示的执行角色状态处理授权:
页面状态 | 操作 |
未创建 | 单击 一键创建并授权 |
已存在但缺少权限 | 按页面列出的缺项使用 一键授权,或 前往 RAM 控制台授权 |
授权未完成或尚未生效 | 完成授权后重新检查,必要时重试 |
授权成功,权限已生效 | 继续后续配置 |
授权窗口被拦截时,应允许弹出窗口后重试。执行角色用于应用访问云资源;外部系统调用 Agent 使用 Endpoint 页面提供的鉴权信息。
使用模型、MCP 或 Skill 时,需要在应用代码中完成接入。相关方法请参见对应 SDK 指南。
4. 声明对话协议
在 协议配置 中单击 配置,选择应用已实现的协议,填写 Path,并按需添加 Header,完成后保存。可同时选择两种协议。
协议 | 用途 | 页面预填 Path |
Chat Completions | 接收 OpenAI Chat Completions 格式的请求 |
|
AGUI | 接收 AG-UI 请求并返回流式事件 |
|
Path 应以 / 开头,填写应用实际路由,不包含域名。例如应用使用 /v1/chat/completions,应将预填值改为该路径。
Header 用于该 Agent 协议接口所需的固定请求头,没有额外要求时留空。不要把下游模型的 API Key 填入这里。
勾选协议不会自动生成接口或工具事件。未声明协议,或协议与实际路由、响应格式不一致,会影响控制台调试。
5. 配置运行资源和健康检查
在 高级配置 中按应用需求配置。
配置项 | 说明 |
规格 | 选择所需 CPU 和内存 |
实例数 | 设置运行实例数量 |
实例最大 Session 数 | 按应用的并发处理能力设置 |
Session TTL(秒) | 设置平台 Session 的存活时间,不是模型生成超时 |
会话隔离方式 | 按需选择 不启用、会话亲和 或 Header 隔离,完成对应配置 |
健康检查 | 填写实际检查路径、端口、间隔、超时时间和阈值 |
健康检查失败可能导致实例停止接收流量或重启。修改应用端口时,也要核对健康检查端口。
Python SDK 镜像快速入门使用以下配置。其他应用应按实际实现填写。
配置项 | 示例值 |
启动命令 |
|
服务端口 |
|
健康检查路径 / 端口 |
|
协议 / Path | AGUI / |
6. 配置网络和日志
配置项 | 操作说明 |
允许默认网卡访问公网 | 应用需要访问公网模型、工具或其他服务时按需开启 |
允许访问 VPC | 应用需要访问 Workspace VPC 内资源时按需开启 |
启用日志 | 开启后选择 日志项目 和 日志库,用于查看已采集的应用日志 |
检查 ACR 网络访问控制:未启用 VPC 访问时检查公网拉取路径,并按需将页面显示的 Workspace 公网出口 IP 加入 ACR 白名单;启用 VPC 访问时,确认仓库允许对应 VPC 访问。
应用应输出必要的启动及错误日志,避免记录密钥或敏感内容。
7. 提交创建并验证
核对镜像版本、启动命令、服务端口、执行角色、协议和健康检查,单击 立即创建。
返回 Agent 列表查看状态,打开详情,在 概览与配置 中核对已保存的镜像和运行配置。
等待实例及调试端点就绪,进入 调试,选择已声明的协议。
发送一条简单消息,检查返回结果,再验证模型、工具或业务资源调用。
如需重新开始对话,单击 创建会话。异常时记录会话 ID、失败时间,并打开 运行日志 排查。
AGUI 执行过程和工具事件由应用实际输出的协议事件决定,勾选协议不会自动补齐事件。
8. 更新镜像
构建新镜像并推送到 ACR。
在 Agent 的 概览与配置 中进入 编辑配置。
刷新镜像版本列表,选择新版本,并同步调整发生变化的入口、端口、协议和健康检查。
保存后等待更新完成,再验证调试和业务调用。
仅推送镜像不会代替 Agent 配置更新,应在详情中核对实际选择的版本。
更新可能影响正在处理的请求,请选择合适的业务时间窗口操作。
二、通过代码包部署
本流程使用平台运行时,无需准备容器镜像。可以上传本地 ZIP、导入 OSS 中的 ZIP,或直接使用示例完成部署。
1. 准备代码包
格式和运行要求
检查项 | 要求 |
文件格式 | 非空 ZIP 文件 |
压缩包大小 | 不超过 500 MB,即 500000000 字节 |
解压后大小 | 不超过 2 GiB |
应用依赖 | 将应用代码与实际运行依赖或构建产物一起打包。平台不会自动安装依赖或编译项目 |
运行兼容性 | 与所选语言版本及 Linux x86_64 环境兼容 |
入口位置 | 启动命令中的文件路径相对于代码包解压后的根目录 |
归档路径 | 使用包内相对路径,不包含绝对路径、路径中的 |
HTTP 服务 | 监听 |
健康检查和协议 | 应用已实现对应接口,接口路径与控制台配置一致 |
依赖可以在本地或 CI 中准备。含原生扩展、二进制依赖或 JNI 的应用,需要特别检查操作系统、CPU 架构和语言版本兼容性,避免直接打包 macOS、Windows 或 ARM 环境生成的不兼容依赖。
仅包含 requirements.txt、package.json 或 pom.xml 等依赖描述文件,不能代替实际运行依赖。
包内结构和启动命令
运行时 | 包内结构示例 | 启动命令 |
Python 3.12 | 根目录包含 |
|
Node.js 22 | 根目录包含 |
|
Java 17 | 根目录包含可执行 |
|
建议进入项目目录后,将目录内的运行文件打包。例如:
cd my-agent
zip -r ../package.zip .这样入口文件位于 ZIP 根目录。如果实际包结构为 my-agent/main.py,启动命令应填写 python my-agent/main.py。平台不会自动去掉外层文件夹。
如果需要执行多条启动命令,可以将逻辑写入代码包中的 start.sh,启动命令填写 sh start.sh。
代码包支持 Python 3.12、Node.js 22 和 Java 17,实际可用项以当前地域、Workspace 的 运行时 列表为准。使用代码包部署无需自行准备 ACR 镜像。
2. 创建 Agent 并选择运行时
登录 AgentCore 控制台,选择目标地域和 Workspace。
进入 Agent 列表,单击 创建 Agent,选择 自定义代码 / 镜像。
填写 Agent 名称和可选的描述。
在 选择代码来源 中选择 上传代码包。
在 运行时 中选择与应用匹配的语言环境。列表加载失败时可单击 重试。
3. 提供代码包
来源选项 | 操作方式 |
上传代码包 | 从本地选择或拖入 ZIP 文件 |
使用 OSS 代码包 | 选择 Bucket,填写对象路径并完成校验 |
使用示例代码创建 | 使用所选运行时对应的示例代码 |
上传代码包 同时用于部署方式和本地来源选项:先选择代码包部署,再在下方选择本地上传、OSS 或示例来源。
方式一:上传本地代码包
在代码包来源中选择 上传代码包。
单击 点击上传,或将 ZIP 文件拖入上传区域。
页面会自动开始上传。等待出现“代码包上传成功!”。
如需更换文件,单击 重新上传 或重新选择文件,并等待新文件上传成功。
继续完成启动配置和其他部署配置。
上传区域显示文件名不代表上传已经完成。上传失败时,请检查文件格式、大小和网络后重试。
方式二:使用 OSS 代码包
选择 使用 OSS 代码包。
在 Bucket 名称 下拉框中选择当前账号、当前地域的 Bucket。可以搜索 Bucket 名称,也可以刷新列表。
页面会检查 Bucket 授权状态。若提示需要授权,单击 前往授权,按页面提示完成授权;返回后刷新授权状态。
在 OSS 目录 中填写 ZIP 文件的完整对象路径,包含文件名。
单击 校验代码包。
出现“代码包已就绪,可提交保存”后,继续完成其他部署配置。
填写示例:
字段 | 示例值 | 说明 |
Bucket 名称 |
| 代码包所在的 Bucket |
OSS 目录 |
| Bucket 内的完整对象路径,包含 ZIP 文件名 |
OSS 目录 应填写对象路径,不要只填写 releases/v1/,也不要填写带 Bucket 名称的完整 URL。
Bucket 授权与代码包校验是两个步骤。授权完成后,仍需对具体文件单击 校验代码包。当前授权页面会提示对象读、写、删除权限,请核对页面展示的授权范围。导入代码包无需将 Bucket 设置为公开可读。
校验用于检查文件是否存在、大小是否符合要求以及是否可读取,不会启动应用。更换 Bucket 或对象路径后,需要重新校验。保存完成前,请保持来源文件可读,避免覆盖或删除文件。
使用 OSS 来源无需另外配置 挂载 OSS。如果应用需要挂载业务数据,再按实际需求配置数据挂载。
方式三:使用示例代码创建
选择所需 运行时。
选择 使用示例代码创建。页面会选择对应示例包并带入启动命令。
核对服务端口、健康检查和对话协议配置。
根据是否需要调用真实模型,填写或留空示例的模型环境变量。
完成其他部署配置后提交创建。
示例配置如下:
运行时 | 示例名称 | 启动命令 |
Python 3.12 | Python 3.12 Sample |
|
Node.js 22 | Node.js 22 Sample |
|
Java 17 | Java 17 Sample |
|
三个示例使用相同的服务和协议配置:
配置项 | 值 |
服务端口 |
|
健康检查路径 |
|
健康检查端口 |
|
对话协议 | AGUI |
协议 Path |
|
示例模式会补齐 AGUI 协议。若此前已配置 AGUI 路径或请求头,请核对原配置是否适用于当前示例。
选定运行时后,可单击 下载示例代码包,按弹窗提示下载对应代码。示例包已包含运行所需依赖,可以直接部署;修改示例后需要重新打包。
示例支持以下环境变量,名称使用大写,区分大小写:
环境变量 | 含义 |
| 当前 Workspace 中的模型连接名称 |
| 要调用的模型名称 |
页面会补充这两个环境变量名称,已有同名值会保留。填写方式与运行结果如下:
配置情况 | 运行结果 |
两项均不配置或留空 | AGUI 返回缺少这两个环境变量的英文提示,并输出 Hello World |
只配置其中一项 | 返回缺少另一项的错误提示 |
两项均配置 | 通过 SDK 调用真实模型 |
首次体验可以将两项均留空。调用真实模型前,应先配置 Workspace 模型连接,并确保执行角色权限和网络满足访问要求。模型解析或调用失败时,示例会返回错误提示。
工具、MCP 和 Skill 的接入用法以注释形式提供,需要根据业务补充实现并重新打包。
4. 配置启动方式和执行角色
完成代码包上传、OSS 校验或示例选择后,填写以下启动配置。
配置项 | 操作说明 |
启动命令 | 填写相对于代码包根目录的入口命令,例如 |
服务端口 | 填写应用实际监听端口,例如应用监听 9000 时应填写 9000 |
执行角色 | 选择具备应用所需资源权限的角色,通过 查看策略 核对权限 |
环境变量 | 按应用需要添加名称和值,可使用表单模式或 JSON 模式 |
代码包部署无需填写平台内部目录、OSS 挂载路径或解压命令。
按页面显示的执行角色状态处理授权:
页面状态 | 操作 |
未创建 | 单击 一键创建并授权 |
已存在但缺少权限 | 按页面列出的缺项使用 一键授权,或 前往 RAM 控制台授权 |
授权未完成或尚未生效 | 完成授权后重新检查,必要时重试 |
授权成功,权限已生效 | 继续后续配置 |
授权窗口被拦截时,应允许弹出窗口后重试。执行角色用于应用访问云资源;OSS 来源授权用于读取部署文件;外部系统调用 Agent 则使用 Endpoint 页面提供的鉴权信息。
使用模型、MCP 或 Skill 时,需要在应用代码中完成接入。相关方法请参见对应 SDK 指南。
5. 声明对话协议
在 协议配置 中单击 配置,选择应用已实现的协议,填写 Path,并按需添加 Header,完成后保存。可同时选择两种协议。
协议 | 用途 | 页面预填 Path |
Chat Completions | 接收 OpenAI Chat Completions 格式的请求 |
|
AGUI | 接收 AG-UI 请求并返回流式事件 |
|
Path 应以 / 开头,填写应用实际路由,不包含域名。例如应用使用 /v1/chat/completions,应将预填值改为该路径。
Header 用于该 Agent 协议接口所需的固定请求头,没有额外要求时留空。不要把下游模型的 API Key 填入这里。
勾选协议不会自动生成接口或工具事件。未声明协议,或协议与实际路由、响应格式不一致,会影响控制台调试。
6. 配置运行资源和健康检查
在 高级配置 中按应用需求配置。
配置项 | 说明 |
规格 | 选择所需 CPU 和内存 |
实例数 | 设置运行实例数量 |
实例最大 Session 数 | 按应用的并发处理能力设置 |
Session TTL(秒) | 设置平台 Session 的存活时间,不是模型生成超时 |
会话隔离方式 | 按需选择 不启用、会话亲和 或 Header 隔离,完成对应配置 |
健康检查 | 填写实际检查路径、端口、间隔、超时时间和阈值 |
健康检查失败可能导致实例停止接收流量或重启。修改应用端口时,也要核对健康检查端口。
使用控制台代码包示例时,服务端口和健康检查端口均为 8080,健康检查路径为 /healthz。自有代码请按实际实现填写,不能只保留页面默认值。
7. 配置网络和日志
配置项 | 操作说明 |
允许默认网卡访问公网 | 应用需要访问公网模型、工具或其他服务时按需开启 |
允许访问 VPC | 应用需要访问 Workspace VPC 内资源时按需开启 |
启用日志 | 开启后选择 日志项目 和 日志库,用于查看已采集的应用日志 |
代码包方式无需配置自有 ACR 仓库。业务代码需要访问的外部服务,仍需满足对应网络条件。Hello World 代码包示例无需连接真实模型。
应用应输出必要的启动及错误日志,避免记录密钥或敏感内容。
8. 提交创建并验证
核对运行时、代码包、启动命令、服务端口、执行角色、协议和健康检查,单击 立即创建。
返回 Agent 列表查看状态,并在详情 概览与配置 中核对已保存的代码包和运行配置。
等待实例及调试端点就绪,进入 调试,选择应用已声明的协议。
使用本文代码包示例时选择 AGUI,发送一条简单消息。两个模型变量均留空时,应收到变量未配置的英文提示和 Hello World;完整配置后应收到真实模型响应。
基础调用成功后,再验证工具和其他业务资源访问。异常时记录会话 ID、失败时间,并打开 运行日志 排查;需要新对话时单击 创建会话。
上传或校验成功只代表该步骤完成。平台会保存代码包,在启动时解压并执行入口命令,最终仍需验证应用能够正常启动和调用。
9. 更新代码包
打开 Agent 详情,在 概览与配置 中进入 编辑配置。
根据需要选择更新方式。
更新内容 | 操作方式 |
仅修改启动命令、环境变量等配置 | 保留当前代码包,修改所需配置 |
更换应用代码 | 单击 更新代码包,选择本地上传、OSS 代码包或示例来源,完成相应上传或校验 |
取消本次代码包替换 | 单击 取消更新,恢复原包对应的运行时和启动命令,再核对其他已编辑配置 |
核对运行时、启动命令、服务端口、健康检查和协议后,单击 保存。
等待更新完成,再验证调试和业务调用。
覆盖原 OSS 路径中的文件,不会自动更新已部署 Agent。
例如,覆盖 releases/package.zip 后,Agent 仍使用先前保存的代码包副本。要部署新内容,需要进入 更新代码包,重新选择该来源,完成校验并保存。仅修改其他配置并保留当前代码包,不会重新读取 OSS 中的最新文件。
更新可能影响正在处理的请求,请选择合适的业务时间窗口操作。
10. 下载当前代码包
打开 Agent 详情的 概览与配置。
在 代码配置 中查看 运行时 和 代码包。
单击代码包的文件名链接进行下载。
本地上传、OSS 导入和使用示例创建的已保存代码包,均可通过此入口下载。
下载内容为当前配置保存的代码包,不包含应用运行时产生的文件或修改。对于 OSS 来源,下载内容也不会随原 OSS 对象被覆盖而自动变化。
下载链接有有效期。链接过期或下载失败时,返回页面再次单击代码包文件名获取新链接。
三、从业务应用调用
在 Agent 详情打开 外部渠道配置,进入 直接访问。
确认 Endpoint 可用,获取调用地址。
在 鉴权方式 中使用 获取鉴权信息,按页面要求配置 Header 和 API Key。
按 API 调用说明 和示例组织请求,使用应用已声明的协议路径。
发起调用并检查普通或流式响应。
将 API Key 保存在可信的服务端配置中。Endpoint 是 Agent 的入口地址,模型服务的地址和凭据由应用按自身接入方式使用。具体请求格式请参见文末的 SDK 指南。
上述调用方式适用于已完成部署的镜像 Agent 和代码包 Agent。
四、查看运行状态和排查异常
入口 | 用途 |
概览与配置 | 查看镜像版本或代码包运行时、启动命令、端口、环境变量和协议 |
实例与 Session | 查看实例和 Session,记录异常对应的 ID |
可观测 → 基础监控 | 查看异常时间范围内的运行数据 |
可观测 → 运行日志 | 查询已采集的应用日志 |
通用问题
现象 | 检查方向 |
镜像不可选或拉取失败 | 核对 ACR 实例、仓库、版本及访问控制,按页面提示处理 |
实例未就绪或重启 | 检查入口和依赖、资源规格、监听地址、服务与健康检查端口;镜像方式还需检查架构和 Shell |
调试页没有可用协议 | 编辑配置,声明应用支持的协议并保存 |
404 或响应解析错误 | 核对实际路由、协议 Path 和响应格式 |
鉴权失败 | 根据失败位置检查 Endpoint 鉴权信息或应用的执行角色权限 |
简单对话成功,资源调用失败 | 检查资源名称、Workspace、权限和网络 |
没有运行日志 | 检查日志开关、项目和日志库,确认应用输出日志且查询时间正确 |
代码包常见问题
问题 | 处理方法 |
本地文件无法选择或上传被拒绝 | 检查文件是否为非空 ZIP,大小是否超过 500000000 字节 |
启动时提示找不到模块或依赖 | 将实际运行依赖或构建产物与应用一起打包,平台不会自动安装依赖 |
本地可运行,部署后出现二进制加载错误 | 检查依赖是否匹配 Linux x86_64 和所选语言版本 |
找不到要使用的 OSS Bucket | 核对账号、地域和访问权限,搜索或刷新 Bucket 列表 |
填写 OSS 目录 后仍不能提交 | 确认路径包含 ZIP 文件名,完成 Bucket 授权后单击 校验代码包 |
OSS 校验通过,应用仍启动失败 | 检查 ZIP 是否损坏、解压大小是否超限、入口文件是否存在、依赖是否齐全,并查看运行日志 |
启动时提示入口文件不存在 | 检查 ZIP 是否包含额外的外层目录,使启动命令与实际包内路径一致 |
安全解压失败 | 检查归档路径和解压后大小,移除绝对路径、越界路径或包外链接后重新打包 |
示例返回未配置模型变量的提示和 Hello World | 两项模型变量均为空时的正常行为;需要调用真实模型时,完整填写两个变量 |
示例只提示缺少某个模型变量 | 补齐提示中的变量;如只体验 Hello World,将两个模型变量均留空 |
更新 OSS 文件后,Agent 仍运行旧代码 | 在 Agent 中执行 更新代码包,重新校验并保存 |
页面没有单独的 下载代码包 按钮 | 在 概览与配置 → 代码配置 中单击代码包文件名下载 |
运行期间生成的数据如何保存 | 使用应用自己的持久化存储或单独配置的数据挂载,运行文件不会自动回写代码包 |
需要协助排障时,请提供地域、Workspace ID、Agent ID、失败时间和错误信息,并附上相关请求 ID 或会话 ID。不要提供 API Key 或包含凭证的完整请求头。