代码创建Agent

当您需要自定义复杂的业务逻辑、集成现有开发框架(如 LangChain)或对运行环境进行精细化控制时,可以使用“高代码模式”创建 Agent。此模式为您提供最大的开发自由度和工程化能力。

功能介绍

代码创建Agent(高代码模式)用于通过代码自定义 Agent 的实现逻辑,适合有开发经验、对行为和性能有精细控制需求的场景。
在该模式下,开发者可以基于自有代码或框架(如 LangChain 等)实现复杂的推理流程、工具编排和企业级集成能力。

主要能力包括:

  • 支持多种代码来源与运行方式:上传代码包、本地/OSS 代码部署、在线编辑代码,以及使用自定义容器镜像部署 Agent 服务。

  • 支持多语言运行时与自定义启动方式:可选择不同运行时(如 Python、Node.js、Java 等),自行配置启动命令、启动端口和依赖结构。

  • 支持灵活的资源与运行环境配置:可按需配置 CPU / 内存、单实例并发会话上限、会话空闲超时时间,以及 VPC 网络、执行角色、访问凭证、环境变量、健康检查等高级参数。

  • 支持使用 SDK / 框架深度定制:可以直接在代码中使用 AgentRun SDK 接入模型、Sandbox、工具和外部系统,也可以与现有 Agent 框架(如 LangChain 等)集成,实现复杂工作流和业务逻辑。

  • 支持完整的开发调试与运维流程:提供在线 WebIDE、实时日志、基于 OpenAI Chat Completions 协议的调试接口,以及与版本管理、灰度发布配套使用的能力。

高代码模式适合在完成低代码快速验证后,对 Agent 进行工程化落地和持续演进的阶段;当需要复杂逻辑、细粒度控制和与现有系统深度集成时,建议使用高代码模式进行开发。

核心概念

在使用代码创建 Agent 前,建议先了解如下核心概念,如已经提前了解,可以直接进入Agent创建:

核心概念

说明

代码来源

高代码模式支持多种代码来源,用于部署 Agent:

  • 本地代码包上传:直接上传打包好的 zip 文件。

  • OSS 代码包:配置 OSS 上的代码包地址,由平台从 OSS 拉取。

  • 在线编辑:在 WebIDE 中在线编写和修改代码,无需本地打包。

  • 自定义容器镜像:从阿里云镜像仓库中选择已有镜像,使用镜像中已有代码与运行环境。

选择哪种方式取决于你的团队习惯和工程实践(例如是否已有 CI/CD 构建镜像流程)。

运行时类型

创建 Agent 时需要选择运行时语言环境,目前支持:

  • Python 3.10

  • Python 3.12

  • Node.js 20

  • Node.js 18

  • Java 17

  • Java 11

  • Java 8

注意:目前仅 Python 3.10 提供官方模板示例,其他运行时请使用用户自定义代码包或镜像。

示例代码包

为了帮助用户快速上手,平台提供了基于 AgentRun SDK 编写的示例模板。

官方示例是基于 AgentRun SDK 的 LangChain Agent 示例,包含模型调用和 Sandbox 工具调用的示例代码

启动配置

对于代码包模式(本地上传 / OSS / 在线编辑),需要指定:

  • 启动命令(如:python3 main.py

  • 启动端口(如:9000

如果使用官方模板,通常保持默认配置即可;如果使用自定义代码,请根据实际入口文件和服务端口填写。

对于容器镜像模式,需要至少指定:

  • 启动端口(镜像内应用监听的端口)

启动命令一般由镜像内 Dockerfile 决定(CMD 或 ENTRYPOINT),不在平台侧配置。

资源配置

资源配置用于控制 Agent 实例的资源规格和并发行为,包括:

  • CPU(核数):为单个实例分配的 CPU 核数;

  • 内存(MB):为单个实例分配的内存;

  • 单实例并发会话数上限:每个实例允许并行处理的会话数量;

  • 会话空闲超时时间(秒):当实例上最后一个会话结束后,如果空闲时间超过该值,实例会自动销毁。

合理配置这些参数可以在性能和成本之间取得平衡。

高级配置

高级配置包含运行时环境相关的选项,例如:

  • 环境变量(如模型名称、业务配置等)

  • VPC 网络配置(接入内网资源)

  • 执行角色(访问模型、Sandbox、OSS 等资源的权限)

  • 访问凭证(与 AgentRun 凭证管理集成)

  • 健康检查配置(用于判定实例是否可用)

这些配置决定了 Agent 在运行时能访问哪些资源以及如何访问。

可观测性

支持一键开通智能体可观测,用于观测和分析 Agent 的运行情况:

  • 了解调用量、响应时间、错误率等运行指标;

  • 通过日志排查问题和还原故障现场;

  • 分析模型调用与 Token 消耗,进行成本优化;

  • 在复杂链路中定位性能瓶颈和异常节点。

操作指南

准备工作

  1. 准备代码工程

    • 已有可运行的服务代码(官方示例代码包下载地址:官方示例代码包),本文后续的操作步骤均以官方示例代码包为例。

      说明

      代码包也可以在快速创建Agent后,将Agent转换为代码模式得到,转换成功后,可以在Agent页面左侧目录中选择代码与调试,即可查看和下载。

    • 本地可以打包为 zip,或已有对应容器镜像 / OSS 代码包;

    • 确认暴露的服务入口(启动命令、监听端口)。

  • 准备运行时依赖

    • 确定使用的运行时语言版本(如 Python 3.10、Python 3.12、Node.js 18/20、Java 8/11/17 等);

      官方示例代码使用的运行时为Python3.10
    • 如果使用“代码包”模式:

      • 将代码与依赖一并打包为 zip;

      • 对 Python 项目,建议将依赖放到 /python 或 /code/python 等约定目录;

    • 如果使用“容器镜像”模式:

      • 在镜像中包含完整运行环境和依赖;

      • 在 Dockerfile 中正确配置入口命令和监听端口。

  • 准备模型、工具与沙箱

步骤1:进入代码创建Agent页面

  1. 进入AgentRun运行时与沙箱页面;

  2. 点击创建Agent,在弹出的窗口中选择通过代码创建

  3. 输入Agent名称功能描述,建议使用有意义的名称,便于后续管理和识别;

步骤2:代码配置

  1. 选择代码来源

    上传代码包
    1. 点击上传文件,选择本地 zip;

    2. 确保包内结构符合运行时规范(入口文件位置、依赖目录等);

    3. 如基于官方示例,可先下载模板,填入必要配置(如 system_prompt),再打包上传。

      说明

      示例代码中的MODEL_NAMESANDBOX_NAME会从运行时环境变量中读取,此处无需修改。

    OSS获取代码包
    1. 代码来源选择OSS 对象存储

    2. 选择 OSS 中的代码包所在的Bucket名称OSS目录

    3. 确保执行角色具备读取该 OSS 对象的权限。

    使用容器镜像部署
    1. 代码来源选择容器镜像

    2. 选择镜像实例与镜像仓库

      说明
      • 支持自定义镜像阿里云容器镜像服务(个人版/企业版)

      • 当容器镜像实例选择自定义镜像时,可以直接配置自定义镜像地址

    3. 选择镜像版本

    在线编写和调试代码

    选择在线编码方式,会在在线代码编辑器中自动加载官方示例代码,您可以直接进行代码业务逻辑实现和修改。

  2. 启动配置

    上传代码包/OSS对象存储/在线编辑模式
    • 启动命令:例如

      • python3 main.py

      • node app.js

      • java -jar app.jar

    • 启动端口:例如 9000,需与代码中服务监听端口一致。

    如果使用官方模板(如上述 Python 示例),一般默认:
    容器镜像模式
    • 启动命令通常由镜像内 Dockerfile 的 CMD/ENTRYPOINT 决定;

    • 需要在配置中指定 启动端口,与容器内应用监听端口一致。

步骤3:资源配置、环境变量与高级配置

资源配置高级配置中设置运行参数。

  1. 计算资源

    • CPU(核)内存:为每个 Agent 实例分配的计算资源。资源越多,处理复杂任务的速度越快,但成本也相应增加。

    • 单实例并发会话数上限:单个 Agent 实例能同时处理的会话数量。提高此值可以降低所需实例数,从而节约成本,但需确保您的代码是线程安全的,且单个实例的 CPU/内存足以支撑。

    • 会话空闲超时时间(秒):实例上最后一个会话结束后,空闲超过该时间即自动释放实例。

  2. 环境变量:

    为 Agent 配置运行时环境变量,用于向代码按需传递参数,如使用官方示例时,需要配置如下环境变量:

    • MODEL_NAME:必选,需填写模型管理中对应的已创建模型名称;

    • SANDBOX_NAME:可选,对应已创建的 Sandbox 名称;

  3. 网络配置

    • 允许访问VPC:如Agent需要访问VPC内的云资源,如RDS、OSS等;

    • 允许默认网卡访问公网

  4. 日志配置

    开启日志功能,可以将Agent的运行日志保存在日志服务中,可以指定日志项目(Project)与日志库(Logstore),也可以选择自动配置自定义配置中的一件配置功能,使用默认值。

  5. 健康检查配置

    启用健康检查,可以配置健康检查路径(如 /health)、检查间隔(秒)超时时间(秒)失败阈值,系统将定期向指定路径发送HTTP请求检查服务状态,连续失败达到阈值时将自动重启服务实例,有助于提高服务可用性和自动故障恢复。

步骤4:按需配置执行角色

此配置旨在授予您的 Agent 代码访问其他云资源(如模型服务、OSS)的权限。AgentRun 通过 执行角色(一个 RAM 角色)来管理权限,您的代码在运行时会扮演此角色,从而获得相应的操作权限。

授权主体:函数计算服务(fc.aliyuncs.com)

需要的权限:根据实际使用的服务添加相应策略

常用策略:AliyunOSSFullAccess、AliyunVPCFullAccess

操作:执行角色ARN中选择角色,如果没有符合要求的角色,可以参考如下步骤进行添加。

  1. 单击执行角色ARN下拉框右侧的添加按钮image,进入RAM访问控制>角色列表;

  2. 点击创建角色

  3. 创建角色页面,信任主体类型选择云服务

  4. 信任主体名称选择函数计算/FC;

  5. 点击确定,输入角色名称,点击确定,并按照提示完成安全验证;

  6. 创建成功后,会进入到角色详情页,点击新增授权

  7. 根据实际使用的服务添加相应策略,常用策略示例

    • AliyunOSSFullAccess:如Agent需要使用OSS中的资源,需配置管理对象存储服务(OSS)权限;

    • AliyunVPCFullAccess:管理专有网络(VPC)的权限,如在网络配置中配置了允许访问VPC,此策略必选;

    • AliyunAgentRunFullAccess:如果使用官方示例进行创建,必须配置管理 AgentRun 服务的权限;

    • AliyunDevsFullAccess:管理Serverless开发平台(Devs)的权限。

步骤5:配置访问凭证

为 Agent 配置访问入口的凭证(例如 API Key 等),用于保护您的 Agent,防止未经授权的调用。凭证由 AgentRun 的凭证管理统一管理和注入。

  1. 访问凭证模块,点击入站:访问凭证

  2. 选择凭证模式:

    • 不使用凭证(不推荐):Agent 的调用地址可被公网匿名访问,存在安全风险。此模式仅适用于功能测试,严禁用于生产环境。

    • 使用已有凭证(推荐):为了保障 Agent 安全,建议选择此项。如果您还没有凭证,可以选择已有的凭证,可以点击image参考凭证管理进行创建。

步骤6:完成配置并测试

完成上述步骤后,单击右上角开始部署,即可完成创建。并自动跳转至Agent详情页,选择代码与调试,在调试工具中进行测试。

步骤7:发布版本并进行灰度

AgentRun 支持版本管理与灰度发布。在对 Agent 的提示词、工具或模型进行变更后,建议先 发布版本,然后通过 创建Endpoint启用次要版本(灰度发布),将一小部分 流量分配 给新版本。在监控确认新版本稳定可靠后,再逐步增加流量比例,最终完成全量上线。

  1. 在左侧目录中选择版本与灰度

  2. 发布当前版本:点击发布版本,并输入版本描述,描述此版本主要变更和功能后,点击发布版本

  3. 创建Endpoint

    1. 输入Endpoint名称主要版本下拉框中选择上一步中发布的当前版本号;

    2. 启用次要版本(灰度发布):勾选启用次要版本(灰度发布),选择次要版本,并为主要版本和次要版本配置流量分配百分比;

      image

后续步骤

在应用中集成Agent

在左侧集成与发布模块参考Agent集成与发布文档,将开发的 agent 快速集成到您的前端网页、后端应用等,支持UI集成代码集成生态集成三种方式。

开通智能体可观测

Agent创建后,你可以按需为 Agent 配置可观测能力,便于后续调试和运维。

  1. 查看基础监控:默认开启。在左侧目录选择可观测性>基础监控页面,可直接查看

    • 调用次数、成功率、平均/最大延迟;

    • 最近一段时间的调用趋势与延迟曲线。

  2. 开启日志采集(推荐)

    • 在 Agent 详情页左侧选择可观测性>日志

    • 首次进入时会提示日志未开启点击开通日志

    • 选择配置方式:

      • 自动配置:一键创建默认的 SLS Project 和 Logstore,适合快速接入;

      • 自定义配置:选择已有 Project / Logstore,适合企业统一日志管理。

    • 保存后,Agent 的运行日志会自动写入对应 Logstore,可在 SLS 控制台进行检索、分析和告警。

  3. 接入应用监控链路追踪(进阶,可选)

    • 首次进入需开通ARMS服务,在可观测性>应用监控(或链路追踪)页面,点击一键开通;

    • 按提示或参考智能体大模型可观测文档,在你的 Agent 代码中引入应用监控,即可进行应用监控与链路追踪:

    • 完成配置后即可在应用监控面板中查看业务指标和趋势(如token 消耗分析、性能分析),在链路追踪面板中查看每次请求的 Span 详情和调用拓扑,快速定位慢请求和异常节点。

      image

常见问题与故障排查

Q1: 启动 Agent 时,日志提示 ModuleNotFoundError: No module named 'xxx'

A: 这是典型的 Python 依赖缺失问题。请检查:

  1. 在使用 上传代码包 模式时,您是否已遵循准备工作准备运行时依赖 的指导,将所有依赖库打包到代码包的 /python 目录下。

  2. 如果依赖包含 C/C++ 扩展且编译环境复杂,建议切换到容器镜像模式。

Q2: Agent 启动失败,日志显示端口监听错误或超时。

A: 请检查您的代码:

  1. Web 服务是否监听在 0.0.0.0 而不是 127.0.0.1

  2. 代码中监听的端口号是否与您在控制台 启动端口 中配置的一致。最佳实践是从 AGENT_PORT 环境变量动态获取端口号。

Q3: 只有 Python 3.10 提供官方模板吗?其他语言如何开始?

A: 是的,目前官方提供的 LangChain 示例模板仅支持 Python 3.10。对于其他运行时(如 Node.js, Java),您需要选择 高代码模式 并上传您自己的自定义代码包或使用自定义镜像。您可以参考官方代码的Python示例,将其逻辑迁移到您选择的语言和框架中,核心是实现一个符合规范的HTTP 服务。