托管 Harness Agent 使用指南

更新时间:
复制 MD 格式

使用 AgentCore 托管 Harness 创建和运行 Agent,无需自行编写 Agent Loop 或管理 Harness 进程。本篇介绍 QwenPaw 和 Qoder 两种 Harness 的能力边界,并说明如何创建 Agent、通过 AG-UI(应用与 Agent 交互的协议)发起对话、管理配置与 Session,以及接入外部访问渠道。

托管 Harness 的工作方式

Harness 是执行 Agent Loop 的引擎,负责调用模型、执行工具,并根据执行结果决定下一步操作。AgentCore 提供 QwenPaw 和 Qoder 两种托管 Harness;创建 Agent 时,可配置模型、角色、工具和 Skill。外部应用通过 AG-UI 协议调用 Agent,应用将请求发送到 Endpoint,Agent 的回复通过 SSE(Server-Sent Events)逐条返回。本篇按以下顺序展开:

  • “快速开始”:创建一个 QwenPaw 问答 Agent,并完成首次 AG-UI 对话。

  • “配置 Agent”:各配置区域的用途和限制。

  • “Session 管理”:实例、Session 与上下文的关系,以及并发、扩缩容和回收行为。

  • “外部访问”:直接访问、IM 渠道和团队协作的接入方式。

  • “能力支持范围”:QwenPaw 与 Qoder 的能力清单。

选择 Harness

QwenPaw 与 Qoder 的差异集中在模型来源和上下文压缩机制两项:

能力项

QwenPaw

Qoder

模型选择与提供方支持

可通过平台配置切换模型及提供方;暂不支持调整模型参数。

支持配置 Qoder 原生模型;暂不支持调整模型参数,不支持通用模型提供方或 BYOK(Bring Your Own Key)。

上下文管理与压缩

使用 QwenPaw 原生机制。

使用 Qoder 原生机制。

需要在平台侧切换模型或模型提供方时选择 QwenPaw,使用 Qoder 原生模型时选择 Qoder。其余能力的支持范围两者一致,详见“能力支持范围”。

快速开始:创建 QwenPaw 问答 Agent 并通过 AG-UI 对话

本节以 QwenPaw 为例,创建一个中文问答 Agent,并从应用服务端通过 AG-UI 接收 SSE 流式回复。Qoder 的创建流程相同,区别在于模型来源,参见“选择 Harness”。

准备工作

开始前需满足以下条件:

  • 已创建 Workspace,且具备创建 Agent 的权限。

  • 已按管理模型配置可用的模型连接和模型。

  • 本地已安装 curl。

创建 Agent

  1. 登录 AgentCore 控制台,进入目标 Workspace,打开 Agent 创建 页面并选择 托管 Harness。

  2. 在 基本信息 区域完成以下配置。

    配置项

    配置值

    Harness

    QwenPaw

    Agent 模板

    不使用模板

    Agent 名称

    quickstart-assistant

    模型连接

    已验证可用的连接

    模型

    该连接下的模型

    Token 配额

    暂不启用

    描述

    留空

  3. 在 文件配置 区域,将以下内容填写为系统提示词。

    你是一个中文问答助手,帮助用户解答问题、整理信息和撰写文案。请用简洁、准确的中文回答;用户要求列举时,使用编号列表。
  4. 在 Agent 资产配置 区域暂不添加资产。

  5. 在 资源配置 区域选择实例规格,保留预填的 实例最大 Session 数 和 Session TTL,并关闭 自动扩缩容。

  6. 在 网络配置 区域开启 允许默认网卡访问公网;本示例不开启 允许访问 VPC,即不接入专有网络 VPC。在 存储配置 区域不添加对象存储 OSS 挂载。

  7. 单击 提交创建。进入详情页后打开 实例与 Session,等待实例和 Session 就绪后再发起对话。

通过 AG-UI 发起对话

  1. 在 Agent 详情页中依次打开 外部渠道配置 和 直接访问,获取 Endpoint 与 API Key。

  2. 在应用服务端设置 AGENTCORE_ENDPOINT 和 AGENTCORE_ENDPOINT_API_KEY。AGENTCORE_ENDPOINT 不包含 /ag-ui/agent 路径。

    重要

    API Key 只能保存在应用服务端,不要写入前端代码或前端配置。

    export AGENTCORE_ENDPOINT="<Endpoint>"
    export AGENTCORE_ENDPOINT_API_KEY="<API Key>"
  3. 使用以下命令发起对话。

    curl --no-buffer --request POST "${AGENTCORE_ENDPOINT%/}/ag-ui/agent" \
      --header "x-api-key: ${AGENTCORE_ENDPOINT_API_KEY}" \
      --header 'Content-Type: application/json' \
      --header 'Accept: text/event-stream' \
      --data '{"threadId":"session-001","runId":"run-001","messages":[{"id":"message-001","role":"user","content":"请用三个要点介绍你的功能。"}],"state":{},"tools":[],"context":[],"forwardedProps":{}}'

判断对话结果

SSE 事件中的 TEXT_MESSAGE_CONTENT 事件,其 delta 字段为回复文本。可根据以下事件判断本次调用的状态:

事件或条件

含义

RUN_STARTED

对话开始。

TEXT_MESSAGE_CONTENT

返回文本片段。

RUN_FINISHED 且 outcome.type=success

对话成功结束。

RUN_ERROR

对话失败或被取消。

连接关闭但未收到结束事件

本次对话中断。

续聊时保持 threadId 不变,并使用新的 runId 和消息 ID。

配置 Agent

在 Agent 详情页中单击 编辑配置,完成修改后单击 保存。以下说明各配置区域的用途和限制。

基本信息

配置项

说明

Harness

选择 QwenPaw 或 Qoder,选择依据参见“选择 Harness”。

Agent 模板

可选,用于复用角色文件和资产配置。

Agent 名称

Agent 的显示名称。

模型连接

选择已按管理模型配置完成的提供方连接。

模型

选择连接下的模型;Qoder 使用原生模型。

Token 配额

可选,设置日或月用量上限,取正整数。

描述

可选。

文件配置

未使用模板时,直接在 文件配置 区域填写系统提示词;使用模板时,角色文件由模板提供,无需自行准备 SOUL.md 或 AGENTS.md。模板的管理方法参见管理 Agent 模板。

Agent 资产配置

在 Agent 资产配置 区域可配置以下资产:

资产

配置方式和限制

Skill

从可用 Skill 中选择并添加,管理方法参见管理 Skill。

Subagent

配置名称、角色和职责。

工具

绑定 MCP(Model Context Protocol)服务,管理方法参见管理 MCP 服务。

知识库

暂不支持。

凭证

绑定外部系统凭证,配置方法参见凭证管理。

内置 Shell 和文件工具无需额外添加。使用模板时可以额外添加 Skill,但 Skill 名称不能重复;模板或 Skill 发布新版本后,需要核对已绑定的版本。

资源配置

配置项

说明

规格

定义单实例的 CPU 和内存。

实例最大 Session 数

每个实例可承载的最大 Session 数,取正整数。

Session TTL(秒)

请求结束后,空闲 Session 的保留时长,取正整数。

说明

取值决定空闲 Session 的回收时机并影响缩容节奏,详见“空闲回收与缩容”。

自动扩缩容

按需启用,启用后需设置 最小实例数 和 最大实例数,且最小实例数不得大于最大实例数。

重要

所有实例达到上限后,新的 Session 申请会返回容量不足。

网络配置

网络配置 控制 Agent 对外部服务的访问能力。允许默认网卡访问公网 用于访问公网网站、下载资源或调用公网服务;允许访问 VPC 用于访问 Workspace 关联的 VPC,目标服务也需要允许访问。外部应用调用 Agent 的方式参见“外部访问”。

存储配置

启用 OSS 挂载后,Agent 可通过本地路径访问 OSS。配置挂载前需要获得相应授权。

重要

最多可添加 10 个挂载点。

配置项

说明

OSS Bucket

选择已获访问权限的 Bucket。

Bucket 内目录

填写非空相对目录,例如 reports/input。

挂载路径

填写 /mnt/oss/ 下的子目录,例如 /mnt/oss/reports;同一 Agent 内的挂载路径不能重复。

只读

仅需读取时启用;需要写入时关闭,并确保已授予写入权限。

修改配置后的生效方式

模型、提示词、Skill、Subagent、MCP 和凭证的修改支持热更新,无需重启。实例规格、镜像和挂载点的修改需要重启后生效,涉及重启的配置建议在任务结束后修改。

Session 管理

实例、Session 与上下文

实例是运行 Agent 的计算环境。Session(会话)是一组连续交互,具有独立 ID。上下文是 Agent 处理请求时参考的信息,包含此前的对话和工具执行结果。一个 Agent 可以运行多个实例,一个实例可以承载多个 Session;同一实例中的 Session 共享 CPU 和内存,因此提高 实例最大 Session 数 不会增加计算资源。

查看实例与 Session

在 Agent 详情页打开 实例与 Session,可查看实例状态和 Session 数,按实例 ID 或 Session ID 搜索,并查看单个 Session 的详情。创建 Agent 后,也在该页面确认实例和 Session 是否就绪。

Session 的来源与分配

Session 可从直接访问 Endpoint 调用、钉钉、飞书或企业微信渠道,以及协作实例聊天和协作实例 Task 创建;已有 Session 会继续使用原实例。启用 自动扩缩容 后,新 Session 优先分配给已就绪且未达到上限的实例,存在多个可选实例时优先选择已有 Session 更多的实例。容量不足时,平台会按配置新增实例,新 Session 在实例就绪后执行。

并发与自动扩缩容

同一 Session 同时只能处理一个请求,后续请求会排队;不同 Session 可以并发处理。启用 自动扩缩容 后,平台根据 Session 数和 实例最大 Session 数 计算所需实例数,以 最小实例数 为下限,以 最大实例数 为上限。计入容量的 Session 数包含尚未回收的 Session 和正在申请的新 Session;请求结束后,Session 仍会保留一段时间并占用容量。例如,每实例支持 5 个 Session、最小实例数 为 1、最大实例数 为 3 时:

Session 数

所需实例数

0~5

1

6~10

2

11~15

3

所有实例达到上限后,新的 Session 申请会返回容量不足。新实例需要启动时间;关闭 自动扩缩容 后,平台不会自动增加实例。

空闲回收与缩容

存在请求处理或排队的 Session 不会因空闲超时而回收。Session TTL 决定请求结束后空闲 Session 的保留时间,例如 600 表示空闲 10 分钟后回收。Session 回收后不再占用容量;使用原 Session ID 再次请求时,会重新分配实例。

启用 自动扩缩容 后,平台只回收无 Session 的多余实例,并保留 最小实例数。Session 分散在多个实例时不会集中迁移,而是在 Session 回收后再缩容。TTL 较长会使 Session 保留更久、缩容更晚;TTL 较短可更快释放容量,但更可能发生实例重新分配。

上下文、历史与工作文件

对话较长时,Harness 会压缩历史上下文以腾出空间,QwenPaw 和 Qoder 分别使用各自的原生机制;压缩后可能不会保留全部原始对话内容。

原生 Session 会定期备份,并在启动时恢复。原 Session ID 可以参考已保存的历史;TTL 不决定历史保存时长,Session 回收也不会删除历史。恢复不会自动续接已中断的请求或工具操作。

警告

异常中断时,最近 5 秒内尚未备份的内容可能丢失。

每个 Session 都有独立工作目录,同一 Agent 的不同 Session 可通过 shared/ 目录共享文件。工作文件不属于对话历史备份范围,需要持久化时应通过 OSS 挂载路径保存。

外部访问

直接访问

直接访问用于从应用服务端调用 Agent:服务端通过 AG-UI 协议发送请求,并将 SSE 返回的文本展示给客户端。Endpoint 与 API Key 的获取方式、调用示例和事件判断方法参见“通过 AG-UI 发起对话”和“判断对话结果”。

接入 IM 渠道

可将 Agent 接入钉钉、飞书或企业微信:

  1. 在目标 IM 平台创建机器人并获取凭证。

  2. 在 Agent 的 外部渠道配置 区域选择对应渠道,绑定 Endpoint 并填写凭证。

  3. 保存配置后,在测试群中 @ 机器人验证对话。

    完整配置说明参见将 Agent 接入 IM 渠道。

使用团队协作

加入 Team 后,可参与聊天、任务和子任务;协作实例聊天和协作实例 Task 也会创建 Session,参见“Session 的来源与分配”。

能力支持范围

除模型来源与上下文压缩机制(参见“选择 Harness”)外,QwenPaw 与 Qoder 的能力支持范围一致,如下表所示。表中“暂不支持”表示当前不可用,各项能力的配置方式和限制参见对应章节。

一级分类

能力项

支持情况

Agent 定义

Agent 身份与角色设定

支持自定义 Agent 身份,并结合 Harness 内置提示词执行。

Agent 定义

工具与 MCP 能力

支持 Shell 命令执行、文件读取与修改、预装 Chromium,以及通过 mcporter 调用 MCP;内置搜索提供免费额度,生产使用需要额外配置;暂不支持工具审批与人工交互。

Agent 定义

Subagent 调用

支持定义子 Agent 角色。

Agent 定义

Skill 加载使用

支持加载已配置的 Skill。

Agent 定义

知识库

暂不支持。

Agent 定义

长期记忆

暂不支持。

Agent 定义

多模态

支持输入图片 URL 或 Base64、输入文件附件,以及输出文件 OSS 下载链接。

Agent 定义

身份与凭证

支持工具调用凭证注入,凭证在 Agent 资产配置 区域绑定。

Agent 定义

配置更新及生效方式

模型、提示词、Skill、Subagent、MCP 和凭证支持热更新;规格、镜像和挂载点重启后生效。

Agent 定义

版本管理与发布

编辑 Agent 定义后自动升级。

外部访问

公网 API 和 AG-UI

支持通过 AG-UI 协议调用,并以 SSE 流式返回。

外部访问

IM Channel

支持通过渠道连接器接入钉钉、飞书和企业微信。

Session 管理

多轮对话

同一 Session 可延续对话。

Session 管理

历史 Session 保存与恢复

原生 Session 定期备份,并在启动时恢复。

Session 管理

Session 工作目录

每个 Session 使用独立工作目录;同一 Agent 的 Session 可通过 shared/ 目录共享文件。

运行环境

实例规格

支持多种标准规格。

运行环境

并发与配额

不同 Session 可并发;同一 Session 的请求排队,且受运行配额限制。

运行环境

环境变量

暂不支持。

运行环境

外部存储挂载

支持平台或私有 OSS 持久化,并可挂载自定义目录。

运行环境

VPC 网络接入

支持开启 允许访问 VPC。

可观测性

AgentLoop Trace

支持查看执行过程。

后续步骤

完成快速开始后,可按以下方向继续完善 Agent:

  • 添加 Skill、Subagent、MCP 工具和外部系统凭证,扩展 Agent 的能力范围,配置方式参见“Agent 资产配置”。

  • 挂载 OSS 目录并开启 允许访问 VPC,使 Agent 能读写持久化文件、访问 Workspace 关联的 VPC,配置方式参见“存储配置”和“网络配置”。

  • 按并发需求调整 实例最大 Session 数、Session TTL 和 自动扩缩容,避免新的 Session 申请返回容量不足,计算规则参见“并发与自动扩缩容”。

  • 将 Agent 接入钉钉、飞书或企业微信渠道,或加入 Team 参与协作,参见“外部访问”。