托管 Harness Agent 使用指南
使用 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
登录 AgentCore 控制台,进入目标 Workspace,打开 Agent 创建 页面并选择 托管 Harness。
在 基本信息 区域完成以下配置。
配置项
配置值
Harness
QwenPaw
Agent 模板
不使用模板
Agent 名称
quickstart-assistant模型连接
已验证可用的连接
模型
该连接下的模型
Token 配额
暂不启用
描述
留空
在 文件配置 区域,将以下内容填写为系统提示词。
你是一个中文问答助手,帮助用户解答问题、整理信息和撰写文案。请用简洁、准确的中文回答;用户要求列举时,使用编号列表。
在 Agent 资产配置 区域暂不添加资产。
在 资源配置 区域选择实例规格,保留预填的 实例最大 Session 数 和 Session TTL,并关闭 自动扩缩容。
在 网络配置 区域开启 允许默认网卡访问公网;本示例不开启 允许访问 VPC,即不接入专有网络 VPC。在 存储配置 区域不添加对象存储 OSS 挂载。
单击 提交创建。进入详情页后打开 实例与 Session,等待实例和 Session 就绪后再发起对话。
通过 AG-UI 发起对话
在 Agent 详情页中依次打开 外部渠道配置 和 直接访问,获取 Endpoint 与 API Key。
在应用服务端设置
AGENTCORE_ENDPOINT和AGENTCORE_ENDPOINT_API_KEY。AGENTCORE_ENDPOINT不包含/ag-ui/agent路径。重要API Key 只能保存在应用服务端,不要写入前端代码或前端配置。
export AGENTCORE_ENDPOINT="<Endpoint>" export AGENTCORE_ENDPOINT_API_KEY="<API Key>"使用以下命令发起对话。
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 字段为回复文本。可根据以下事件判断本次调用的状态:
事件或条件 | 含义 |
| 对话开始。 |
| 返回文本片段。 |
| 对话成功结束。 |
| 对话失败或被取消。 |
连接关闭但未收到结束事件 | 本次对话中断。 |
续聊时保持 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 内目录 | 填写非空相对目录,例如 |
挂载路径 | 填写 |
只读 | 仅需读取时启用;需要写入时关闭,并确保已授予写入权限。 |
修改配置后的生效方式
模型、提示词、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 接入钉钉、飞书或企业微信:
在目标 IM 平台创建机器人并获取凭证。
在 Agent 的 外部渠道配置 区域选择对应渠道,绑定 Endpoint 并填写凭证。
保存配置后,在测试群中
@机器人验证对话。完整配置说明参见将 Agent 接入 IM 渠道。
使用团队协作
加入 Team 后,可参与聊天、任务和子任务;协作实例聊天和协作实例 Task 也会创建 Session,参见“Session 的来源与分配”。
能力支持范围
除模型来源与上下文压缩机制(参见“选择 Harness”)外,QwenPaw 与 Qoder 的能力支持范围一致,如下表所示。表中“暂不支持”表示当前不可用,各项能力的配置方式和限制参见对应章节。
一级分类 | 能力项 | 支持情况 |
Agent 定义 | Agent 身份与角色设定 | 支持自定义 Agent 身份,并结合 Harness 内置提示词执行。 |
Agent 定义 | 工具与 MCP 能力 | 支持 Shell 命令执行、文件读取与修改、预装 Chromium,以及通过 |
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 可通过 |
运行环境 | 实例规格 | 支持多种标准规格。 |
运行环境 | 并发与配额 | 不同 Session 可并发;同一 Session 的请求排队,且受运行配额限制。 |
运行环境 | 环境变量 | 暂不支持。 |
运行环境 | 外部存储挂载 | 支持平台或私有 OSS 持久化,并可挂载自定义目录。 |
运行环境 | VPC 网络接入 | 支持开启 允许访问 VPC。 |
可观测性 | AgentLoop Trace | 支持查看执行过程。 |
后续步骤
完成快速开始后,可按以下方向继续完善 Agent:
添加 Skill、Subagent、MCP 工具和外部系统凭证,扩展 Agent 的能力范围,配置方式参见“Agent 资产配置”。
挂载 OSS 目录并开启 允许访问 VPC,使 Agent 能读写持久化文件、访问 Workspace 关联的 VPC,配置方式参见“存储配置”和“网络配置”。
按并发需求调整 实例最大 Session 数、Session TTL 和 自动扩缩容,避免新的 Session 申请返回容量不足,计算规则参见“并发与自动扩缩容”。
将 Agent 接入钉钉、飞书或企业微信渠道,或加入 Team 参与协作,参见“外部访问”。