更新时间:2026-09-16 GMT+08:00
分享

调用概述

运行时部署成功后,开发者即可通过AgentArts提供的RESTful API与该运行时进行交互。AgentArts的运行时调用能力不仅限于向Agent发送消息获取回复,还涵盖了在会话隔离沙箱中动态执行系统命令、在本地与运行时沙箱环境之间进行大文件传输,以及调用用户在镜像中定义的自定义前缀接口。

运行时API一览

调用运行时不仅仅是向智能体发一条消息、拿到一段回复。AgentArts运行时提供了一套规范的RESTful API,覆盖智能体交互中的常见操作:

表1 运行时API

功能

API标识

接口

说明

向智能体发送并获取消息

ExecuteRuntime

POST /runtimes/{runtime_name}/invocations

最核心的调用接口。将用户输入发送给 Agent,获取 Agent 的回复。

创建会话

StartRuntimeSession

POST /runtimes/{runtime_name}/sessions-start

创建一个独立的会话实例。执行命令、文件上传下载等操作依赖会话提供的沙箱环境。

停止会话

StopRuntimeSession

POST /runtimes/{runtime_name}/sessions-stop

销毁会话实例并释放资源。会话内的文件会被自动清除。

在会话中执行Shell命令

ExecuteRuntimeCommands

POST /runtimes/{runtime_name}/commands

在会话沙箱内执行命令,返回标准输出和错误输出。

上传文件到会话

ExecuteRuntimeUploadFiles

POST /runtimes/{runtime_name}/upload-files

将本地文件上传到会话沙箱的文件系统中。

从会话下载文件

ExecuteRuntimeDownloadFiles

GET /runtimes/{runtime_name}/download-files

将会话沙箱中的文件下载到本地。

调用自定义路径接口

ExecuteRuntimeWithPrefix

任意 /runtimes/{runtime_name}/invocations/{custom_path}

当Agent暴露了自定义路由时,通过此接口访问非标准路径。该接口支持所有HTTP方法(包括但不限于POST、GET、DELETE、PUT等)。

请求体由您的Agent代码决定

您的 Agent 代码定义了它接收什么字段、返回什么字段,平台网关只做鉴权和路由,不对请求体做任何修改。您在调用 API 时传入的 JSON Body,会被原样转发到您的 Agent 容器中。

这意味着:

  • 请求体中应该包含哪些字段,完全取决于您编写的 Agent 代码中定义的接收逻辑。
  • 响应体的结构也完全由您的 Agent 代码返回值决定。

举例说明,假设您的 Agent 代码如下:

@app.invocation_handler
def handle_invocation(request: dict) -> dict:
    user_msg = request.get("message", "")   # 您的代码读取 "message" 字段
    # ... 业务处理 ...
    return {"reply": result, "status": "success"}  # 您的代码返回这两个字段

将该智能体打包成镜像,部署到AgentArts运行时后,调用API时,那么调用时就必须传 "message" 字段,收到的响应就是 "reply" 和 "status" 字段。如果API参数填写为其他参数,运行时接口虽然能调用,但会因为message实际传参为空,导致智能体无法正常回答问题。

  • 如果您团队中的不同Agent使用了不同的字段名(例如有的用message,有的用query),调用方需要分别适配。
  • 调用前请与Agent开发者确认接口约定。
  • 本文档示例统一使用message作为请求字段名、reply作为响应字段名,仅作演示用途。实际调用时请以您的Agent代码为准。

典型调用场景

根据业务场景的不同,AgentArts运行时支持以下几种典型交互场景:

场景一:基础对话

最简单的场景:向智能体发消息,拿到回复。

调用智能体(ExecuteRuntime)
 → 发送 {"message": "你好"}
 ← 收到 {"reply": "你好!有什么可以帮助你的?"}

基础对话场景下,您只需直接调用ExecuteRuntime接口即可。在请求头中携带X-Hw-Agentarts-Session-Id,同一个Session ID的多次调用在Agent侧可以关联上下文,实现多轮对话。

场景二:涉及文件处理

当您需要让Agent处理本地文件(如分析CSV数据),流程为:

① 创建会话(StartRuntimeSession)      → 获取沙箱环境
② 上传文件(ExecuteRuntimeUploadFiles) → 文件进入沙箱
③ 调用智能体(ExecuteRuntime)           → Agent 读取并处理文件
④ 下载文件(ExecuteRuntimeDownloadFiles)→ 取回处理结果
⑤ 停止会话(StopRuntimeSession)        → 释放资源

必须先通过StartRuntimeSession创建会话来初始化沙箱环境,上传下载文件才有目标容器可操作。

创建运行时过程中需要开启“文件上传下载”功能。

场景三:涉及命令执行

当您需要在 Agent 的沙箱环境中直接执行 Shell 命令(如运行脚本、安装依赖、检查环境),流程为:

① 创建会话(StartRuntimeSession)      → 获取沙箱环境
② 调用智能体(ExecuteRuntime)           → Agent 推理决策
③ 执行命令(ExecuteRuntimeCommands)    → 运行 Agent 决策的脚本
④ 调用智能体(ExecuteRuntime)           → Agent 基于命令结果继续推理
⑤ 停止会话(StopRuntimeSession)        → 释放资源

步骤②③④可以多次循环,形成“推理 → 执行 → 再推理”的闭环。

前置条件与调用依赖

在开始调用运行时之前,请确保已完成以下准备:

  • 运行时已部署且状态为“正常”。您可以在AgentArts控制台的“智能体运行时”列表中查看运行时状态。
  • 已获取“运行时接口”。在运行时详情页的“基本信息”区域可以找到接口地址。
    图1 获取运行时接口
  • 已配置身份认证凭据。根据创建运行时选择的入站认证方式(IAM认证、API Key认证或OAuth 2.0),准备好对应的认证信息。
  • 如需进行文件上传或下载操作,在托管智能体,创建运行时过程中需要开启“文件上传下载”功能。如果创建时未开启,后续将无法使用文件传输能力。
    图2 文件上传下载

关于身份认证

每一个调用请求的Authorization请求头都必须携带有效的身份认证凭据。AgentArts运行时支持三种入站认证方式:

表2 入站身份认证

认证方式

Authorization 格式

使用复杂度

适用场景

API Key

Bearer {api_key}

低,直接在请求头中写入固定凭证。

快速验证、开发调试、内部测试。

IAM 认证(AK/SK)

由签名 SDK 自动生成

高,需要使用签名SDK对请求进行V11-HMAC-SHA256签名。

生产环境、企业级集成。

OAuth 2.0

Bearer {OAuth_Token}

高,需要先通过OAuth流程获取Token。

第三方应用集成。

认证方式在部署运行时时选定。本章节的示例以API Key认证为主(最简单直观),IAM认证的签名流程请参见使用API调用运行时接口(IAM认证)。

相关文档