当低代码模式无法支持复杂业务逻辑、自定义框架集成或精细化运行环境控制时,可使用高代码模式创建 Agent。该模式允许开发者使用自有代码实现复杂的推理流程、工具编排和企业级集成。
功能介绍
高代码模式用于通过代码自定义 Agent 的实现逻辑,适合有开发经验、对行为和性能有精细控制需求的场景。
主要能力包括:
-
多种代码来源:上传代码包、OSS 代码包、在线编辑代码,以及自定义容器镜像部署。
-
多语言运行时:支持 Python、Node.js、Java 等多种运行时,可自定义启动命令和端口。
-
灵活的资源与环境配置:按需配置 CPU、内存、并发会话数、空闲超时时间,以及 VPC 网络、执行角色、访问凭证、环境变量、健康检查等参数。
-
SDK 与框架集成:通过 AgentRun SDK 接入模型、Sandbox、工具和外部系统,也可与 LangChain 等 Agent 框架集成,实现复杂工作流(详见AgentRun SDK 说明)。
-
完整的开发调试与运维流程:提供在线 WebIDE、实时日志、基于 OpenAI Chat Completions 协议的调试接口,以及版本管理与灰度发布能力。
核心概念
创建 Agent 前,建议先了解以下核心概念:
|
核心概念 |
说明 |
|
代码来源 |
高代码模式支持多种代码来源,用于部署 Agent:
选择哪种方式取决于团队习惯和工程实践(例如是否已有 CI/CD 构建镜像流程)。 |
|
运行时类型 |
创建 Agent 时需要选择运行时语言环境,目前支持:
说明
目前仅 Python 3.10 提供官方模板示例,其他运行时请使用自定义代码包或镜像。 |
|
示例代码包 |
平台提供基于 AgentRun SDK 编写的示例模板,帮助用户快速上手。 官方示例是基于 AgentRun SDK 的 LangChain Agent 示例,包含模型调用和 Sandbox 工具调用的示例代码。 |
|
启动配置 |
对于代码包模式(本地上传、OSS、在线编辑),需要指定:
使用官方模板时通常保持默认配置即可;使用自定义代码时,根据实际入口文件和服务端口填写。 对于容器镜像模式,需要至少指定:
启动命令由镜像内 Dockerfile 决定( |
|
资源配置 |
资源配置用于控制 Agent 实例的资源规格和并发行为,包括:
合理配置这些参数可以在性能和成本之间取得平衡。 |
|
高级配置 |
高级配置包含运行时环境相关的选项,例如:
这些配置决定了 Agent 在运行时能访问哪些资源以及如何访问。 |
|
可观测性 |
支持一键开通智能体可观测,用于观测和分析 Agent 的运行情况:
说明
AI 应用监控中 Token 统计来源于大模型响应,代码配置时请确保模型响应中包含 Token 信息。 |
操作指南
准备工作
-
准备代码工程
-
已有可运行的服务代码。官方示例代码包下载地址:官方示例代码包。本文后续操作步骤均以官方示例代码包为例。
说明代码包也可以在快速创建Agent(无代码)后将 Agent 转换为代码模式得到。转换成功后,在 Agent 页面左侧选择代码与调试,即可查看和下载。
-
代码可打包为 zip,或已有对应容器镜像或 OSS 代码包。
-
确认暴露的服务入口(启动命令、监听端口)。
-
-
准备运行时依赖
-
确定运行时语言版本(如 Python 3.10、Python 3.12、Node.js 18/20、Java 8/11/17 等)。
说明官方示例代码使用的运行时为 Python 3.10。
-
使用代码包模式时:
-
将代码与依赖一并打包为 zip。
-
Python 项目建议将依赖放入
/python或/code/python等约定目录,并配置环境变量PYTHONPATH为/opt/python:/code/python。
-
-
使用容器镜像模式时:
-
在镜像中包含完整运行环境和依赖。
-
在 Dockerfile 中正确配置入口命令和监听端口。
-
-
-
准备模型、工具与沙箱
-
在模型管理中已创建需使用的模型,并记录模型名称。
-
如 Agent 需要使用工具(业务 API、网页抓取、在线搜索等),提前在工具与Skills中完成创建。
-
如需代码执行或浏览器能力,提前创建 Sandbox 沙箱服务(BrowserTool浏览器、Code Interpreter代码解释器),并记录服务名称。
-
步骤1:进入代码创建Agent页面
-
进入AgentRun运行时与沙箱页面。
-
单击创建Agent,在弹出的窗口中选择通过代码创建。
-
输入Agent名称和功能描述,建议使用有意义的名称,便于后续管理和识别。
步骤2:代码配置
-
选择代码来源
上传代码包
-
单击上传文件,选择本地 zip 文件。
-
确保包内结构符合运行时规范(入口文件位置、依赖目录等)。
-
如基于官方示例,可先下载模板,填入必要配置(如 system_prompt),再打包上传。
说明示例代码中的
MODEL_NAME和SANDBOX_NAME会从运行时环境变量中读取,此处无需修改。
从OSS获取代码包
-
在代码来源中选择OSS 对象存储。
-
选择代码包所在的Bucket名称和OSS目录。
-
确保执行角色具备读取该 OSS 对象的权限。
使用容器镜像部署
-
在代码来源中选择容器镜像。
-
选择镜像实例与镜像仓库。
说明-
支持自定义镜像、阿里云容器镜像服务(个人版/企业版)。
-
选择自定义镜像时,可直接配置自定义镜像地址。
-
-
选择镜像版本。
在线编写和调试代码
选择在线编码方式,系统将在在线代码编辑器中自动加载官方示例代码,可直接进行代码业务逻辑实现和修改。
-
-
启动配置
上传代码包/OSS对象存储/在线编辑模式
-
启动命令,例如:
-
python3 main.py -
node app.js -
java -jar app.jar
-
-
启动端口,如
9000,需与代码中服务监听端口一致。
说明使用官方模板(如上述 Python 示例)时,一般保持默认配置即可。
容器镜像模式
-
启动命令通常由镜像内 Dockerfile 的
CMD/ENTRYPOINT决定。 -
需要指定启动端口,与容器内应用监听端口一致。
-
步骤3:资源配置、环境变量与高级配置
在资源配置和高级配置中设置运行参数。
-
计算资源
-
CPU(核)与内存:为每个 Agent 实例分配的计算资源。资源越多,处理复杂任务的速度越快,但成本也相应增加。
-
单实例并发会话数上限:单个 Agent 实例能同时处理的会话数量上限。提高此值可减少所需实例数,从而节约成本,但需确保代码线程安全且单个实例的 CPU 和内存资源充足。
-
会话空闲超时时间(秒):实例上最后一个会话结束后,空闲超过该时间即自动释放实例。
-
-
环境变量
为 Agent 配置运行时环境变量,用于向代码传递参数。使用官方示例时,需配置以下环境变量:
-
MODEL_NAME:必选,填写模型管理中已创建的模型名称。 -
SANDBOX_NAME:可选,填写已创建的 Sandbox 名称。
-
-
网络配置
-
允许访问VPC:Agent 需要访问 VPC 内的云资源(如 RDS、OSS 等)时开启。
-
允许默认网卡访问公网。
-
-
日志配置
开启日志功能,可将 Agent 的运行日志保存在日志服务中。可指定日志项目(Project)与日志库(Logstore),也可选择自动配置或自定义配置中的一键配置功能使用默认值。
-
健康检查配置
启用健康检查后,可配置检查路径(如
/health)、检查间隔(秒)、超时时间(秒)和失败阈值。系统将定期向指定路径发送 HTTP 请求检查服务状态,连续失败达到阈值时自动重启服务实例,有助于提高服务可用性和自动故障恢复能力。
步骤4:按需配置执行角色
执行角色用于授予 Agent 代码访问其他云资源(如模型服务、OSS)的权限。AgentRun 通过执行角色(RAM 角色)管理权限,代码在运行时将扮演此角色以获得相应的操作权限。
授权主体:函数计算服务(fc.aliyuncs.com)
所需权限:根据实际使用的服务添加相应策略
在执行角色ARN中选择已有角色。如果没有符合要求的角色,可参考以下步骤创建。
-
单击执行角色ARN下拉框右侧的添加按钮
,进入RAM访问控制 > 角色列表。 -
单击创建角色。
-
在创建角色页面,信任主体类型选择云服务。
-
信任主体名称选择函数计算/FC。
-
单击确定,输入角色名称,再次单击确定,并按照提示完成安全验证。
-
创建成功后进入角色详情页,单击新增授权。
-
根据实际使用的服务添加相应策略,常用策略示例:
-
AliyunOSSFullAccess:Agent 需要使用 OSS 中的资源时,需配置对象存储服务(OSS)管理权限。
-
AliyunAgentRunFullAccess:使用官方示例创建时必须配置 AgentRun 服务管理权限。
-
AliyunDevsFullAccess:Serverless 开发平台(Devs)管理权限。
-
步骤5:配置访问凭证
为 Agent 配置访问凭证(如 API Key 等),用于保护 Agent 防止未经授权的调用。凭证由 AgentRun 的凭证管理统一管理和注入。
-
在访问凭证模块,单击入站:访问凭证。
-
选择凭证模式:
-
不使用凭证(不推荐):Agent 的调用地址可被公网匿名访问,存在安全风险。此模式仅适用于功能测试,严禁用于生产环境。
-
使用已有凭证(推荐):为保障 Agent 安全,建议选择此项。如果尚未创建凭证,可单击
参考凭证管理进行创建。
-
步骤6:完成配置并测试
完成上述配置后,单击右上角开始部署完成创建。系统将自动跳转至 Agent 详情页,选择代码与调试,在调试工具中进行测试。
步骤7:发布版本并进行灰度
AgentRun 支持版本管理与灰度发布。对 Agent 的提示词、工具或模型进行变更后,建议先发布版本,再通过创建 Endpoint 并启用次要版本(灰度发布),将少量流量分配给新版本。确认新版本稳定后,逐步增加流量比例,最终完成全量上线。
-
在左侧目录中选择版本与灰度。
-
发布当前版本:单击发布版本,输入版本描述说明主要变更和功能后,再次单击发布版本。
-
创建Endpoint:
-
输入Endpoint名称,在主要版本下拉框中选择上一步发布的当前版本号。
-
启用次要版本(灰度发布):勾选启用次要版本(灰度发布),选择次要版本,并为主要版本和次要版本配置流量分配百分比。
-
后续步骤
在应用中集成Agent
在左侧集成与发布模块参考Agent集成与发布文档,将开发的 Agent 快速集成到前端网页、后端应用等。支持UI集成、代码集成、生态集成三种方式。
开通智能体可观测
Agent 创建后,可配置可观测能力便于调试和运维。
-
查看基础监控(默认开启):在左侧目录选择可观测性 > 基础监控页面,可查看:
-
调用次数、成功率、平均/最大延迟。
-
最近一段时间的调用趋势与延迟曲线。
-
-
开启日志采集(推荐)。
-
在 Agent 详情页左侧选择可观测性 > 日志。
-
首次进入时提示日志未开启,单击开通日志。
-
选择配置方式:
-
自动配置:一键创建默认的 SLS Project 和 Logstore,适合快速接入。
-
自定义配置:选择已有 Project/Logstore,适合企业统一日志管理。
-
-
保存后,Agent 的运行日志将自动写入对应 Logstore,可在 SLS 控制台进行检索、分析和告警。
-
-
接入应用监控与链路追踪(进阶,可选)。
-
首次进入需开通 ARMS 服务,在可观测性 > 应用监控(或链路追踪)页面,单击一键开通。
-
按提示或参考智能体大模型可观测文档,在 Agent 代码中引入应用监控,即可进行应用监控与链路追踪。
-
配置完成后,可在应用监控面板中查看业务指标和趋势(如 Token 消耗分析、性能分析),在链路追踪面板中查看每次请求的 Span 详情和调用拓扑,快速定位慢请求和异常节点。
-
常见问题与故障排查
Q1: 启动 Agent 时,日志提示 ModuleNotFoundError: No module named 'xxx'。
A: 这是典型的 Python 依赖缺失问题。请检查:
-
使用上传代码包模式时,是否已遵循准备工作中准备运行时依赖的指导,将所有依赖库打包到代码包的
/python目录下。 -
如果依赖包含 C/C++ 扩展且编译环境复杂,建议切换到容器镜像模式。
Q2: Agent 启动失败,日志显示端口监听错误或超时。
A: 请检查代码:
-
Web 服务是否监听在
0.0.0.0而非127.0.0.1。 -
代码中监听的端口号是否与控制台启动端口中配置的一致。最佳实践是从
AGENT_PORT环境变量动态获取端口号。
Q3: 是否只有 Python 3.10 提供官方模板?其他语言如何开始?
A: 目前官方的 LangChain 示例模板仅支持 Python 3.10。对于其他运行时(如 Node.js、Java),需要选择高代码模式并上传自定义代码包或使用自定义镜像。可参考官方 Python 示例的逻辑,迁移到目标语言和框架中,核心是实现一个符合规范的 HTTP 服务。