概述
AgentLoop 控制台支持以内嵌方式集成到第三方系统中。接入方可以通过免登录链接打开指定 AgentSpace 页面,并通过 URL 参数控制左侧导航、页面 Header、AgentSpace 切换入口以及部分业务页面的初始状态。
推荐使用以下域名作为内嵌访问入口:
https://agentloop4service.console.aliyun.com请勿将普通控制台域名与内嵌域名混用。内嵌访问应始终使用本文中的 4service 域名,避免因登录态不一致导致页面无法访问。
页面地址格式
AgentSpace 页面地址格式如下:
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/{appPath}参数说明:
参数 | 说明 |
| AgentSpace 所在地域,例如 |
| AgentSpace 名称 |
| 需要打开的页面路径 |
示例:
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/agent-insight常见页面路径:
页面 |
| 说明 |
快速开始 |
| 打开快速开始页面 |
Agent 洞察 |
| 打开 Agent 观测分析页面 |
Agent 对比 |
| 打开 Agent 对比页面 |
AI Agent 可观测 |
| 打开 AI Agent 可观测主入口 |
仪表盘 |
| 打开仪表盘页面 |
接入中心 |
| 打开接入中心页面 |
Agent 轨迹 |
| 打开 Agent 轨迹页面 |
评估任务 |
| 打开评估任务页面 |
评估分析洞察 |
| 打开评估分析洞察页面 |
评估器 |
| 打开评估器页面 |
实验计划 |
| 打开实验计划页面 |
实验记录 |
| 打开实验记录页面 |
生成免登录链接
您可以参考阿里云控制台免登录链接生成方式,将 AgentLoop 目标页面作为 Destination,生成可放入 iframe 的免登录链接。
步骤一:生成 Destination
Destination 是用户免登录后最终打开的 AgentLoop 页面。
const destination = new URL(
'https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/evaluate-task'
);
destination.searchParams.set('hiddenSwitch', 'true');
destination.searchParams.set('hiddenBackHome', 'true');
destination.searchParams.set(
'embed',
JSON.stringify({
sidebar: 'hidden',
header: 'hidden',
eval: {
dataSource: 'trace',
serviceName: '{serviceName}',
},
})
);步骤二:获取临时身份
第三方系统服务端调用 STS AssumeRole,获取临时身份。建议按用户、租户或业务资源范围配置最小权限。一个Token只能使用一次,详情可参考AssumeRole - 获取扮演角色的临时身份凭证。
常用参数:
参数 | 说明 |
| 被扮演的 RAM 角色 ARN |
| 会话名称,建议使用可审计的业务用户标识 |
| 临时身份有效期 |
| 可选,用于进一步收敛本次会话可访问的资源范围 |
请勿在浏览器前端保存或传输长期 AccessKey。
步骤三:获取 SigninToken
调用RAM单点登录SSO,获取SigninToken。拼接链接的形式如下。注意:TicketType必须指定为mini。
http://signin.aliyun.com/federation?Action=GetSigninToken
&AccessKeyId=<STS返回的临时AK>
&AccessKeySecret=<STS返回的临时Secret>
&SecurityToken=<STS返回的安全Token>
&TicketType=mini为避免泄露敏感信息,GetSigninToken 应仅在服务端调用,不要在浏览器前端拼接或暴露临时密钥。步骤四:生成免登录链接
将返回的SigninToken拼接到准备好的链接中,生成免密访问链接。
const loginUrl = new URL('https://signin.aliyun.com/federation');
loginUrl.searchParams.set('Action', 'Login');
loginUrl.searchParams.set('LoginUrl', 'https://{your-domain}/login-expired');
loginUrl.searchParams.set('Destination', destination.toString());
loginUrl.searchParams.set('SigninToken', signinToken);
console.log(loginUrl.toString());最终 URL 形态:
http://signin.aliyun.com/federation?Action=Login
&LoginUrl=<登录失效跳转的地址,一般配置为自建Web配置302跳转的URL。需要使用encodeURL对LoginUrl进行转码。>
&Destination=<实际访问页面。如果有参数,则需要使用encodeURL对参数进行转码。>
&SigninToken=<获取的登录Token,需要使用encodeURL对Token进行转码。>iframe 示例:
<iframe
src="{loginUrl}"
width="100%"
height="100%"
frameborder="0"
allowfullscreen
></iframe>内嵌参数
AgentLoop 支持以下 URL 参数控制内嵌页面展示和行为。
embed
embed 用于传递结构化内嵌配置,值为 JSON 字符串。实际拼接到 URL 时,需要进行 URL 编码。
可读形式:
?embed={"sidebar":"hidden","header":"hidden","eval":{"dataSource":"trace","serviceName":"{serviceName}"}}结构说明:
interface EmbedConfig {
sidebar?: 'hidden';
header?: 'hidden';
eval?: {
dataSource?: 'trace' | 'atif' | 'log' | 'dataset';
serviceName?: string;
explorer?: {
timePicker?: 'hidden';
topBar?: 'hidden';
filterSidebar?: 'hidden';
timeRange?: {
from: number;
to: number;
};
};
};
}参数说明:
参数 | 可选值 | 说明 |
|
| 隐藏 AgentSpace 左侧整个区域,包括 Logo、AgentSpace 选择器、菜单和折叠按钮,适合第三方系统自行提供导航的场景 |
| 隐藏 AgentSpace 内容区 Header,包括页面标题、顶部页签和右侧操作区;不控制阿里云控制台最外层顶栏 | |
|
| 打开新建任务表单时,预填数据源类型 |
| 服务名 | 打开新建任务表单时,预填 Trace 数据源的服务名 |
| 隐藏评估分析洞察页面的时间选择器 | |
| 隐藏评估分析洞察页面顶部的搜索、聚合和日志区域 | |
| 秒级 Unix 时间戳 | 评估分析洞察页面的初始开始时间,必须小于 |
| 秒级 Unix 时间戳 | 评估分析洞察页面的初始结束时间 |
embed.eval 只在用户打开新建任务表单时生效预填,不会自动打开表单。需要进入页面即打开表单时,使用「评估页面参数」中的 action=create。
生成示例:
const targetUrl = new URL(
'https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/evaluate-task'
);
targetUrl.searchParams.set(
'embed',
JSON.stringify({
sidebar: 'hidden',
header: 'hidden',
eval: {
dataSource: 'trace',
serviceName: '{serviceName}',
},
})
);
console.log(targetUrl.toString());使用 URL 和 URLSearchParams 生成地址,可以避免手工处理 JSON、中文、空格和引号带来的编码错误。生成后的 URL 示例:
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/evaluate-task?embed=%7B%22sidebar%22%3A%22hidden%22%2C%22header%22%3A%22hidden%22%2C%22eval%22%3A%7B%22dataSource%22%3A%22trace%22%2C%22serviceName%22%3A%22%7BserviceName%7D%22%7D%7DhiddenSwitch
隐藏 AgentSpace 切换入口。
hiddenSwitch=true如果第三方系统已经固定当前 AgentSpace,建议开启该参数,避免用户在内嵌页面中切换到其他空间。该参数按「是否存在」判断:即使传入 ,只要参数出现在 URL 中,切换入口仍然隐藏。需要恢复切换入口时,从 URL 中删除该参数。
hiddenBackHome
禁止通过 AgentLoop Logo 返回首页。
hiddenBackHome=true如果第三方系统只希望用户停留在指定 AgentSpace 页面,建议开启该参数。该参数同样按「是否存在」判断:传入 不会恢复入口,需要从 URL 中删除该参数。
推荐参数组合
隐藏左侧导航
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/agent-insight?embed=%7B%22sidebar%22%3A%22hidden%22%7D只隐藏页面 Header
可读形式:
?embed={"header":"hidden"}URL 参数:
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/agent-insight?embed=%7B%22header%22%3A%22hidden%22%7D禁止切换空间和返回首页
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/agent-insight?hiddenSwitch=true&hiddenBackHome=true隐藏导航并预填评估任务参数
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/evaluate-task?hiddenSwitch=true&hiddenBackHome=true&embed=%7B%22sidebar%22%3A%22hidden%22%2C%22eval%22%3A%7B%22dataSource%22%3A%22trace%22%2C%22serviceName%22%3A%22%7BserviceName%7D%22%7D%7D精简评估分析洞察页面
内嵌评估分析洞察页面时,如果第三方系统自行提供搜索和筛选能力,可以隐藏页面自带的时间选择器、顶部区域和筛选侧栏,并指定初始时间范围:
const targetUrl = new URL(
'https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/explorer'
);
targetUrl.searchParams.set(
'embed',
JSON.stringify({
sidebar: 'hidden',
header: 'hidden',
eval: {
explorer: {
timePicker: 'hidden',
topBar: 'hidden',
filterSidebar: 'hidden',
timeRange: {
from: 1785427200,
to: 1785513600,
},
},
},
})
);
console.log(targetUrl.toString());timeRange.from 和 timeRange.to 都使用秒级 Unix 时间戳,且 from 必须小于 to。
评估页面参数
除 embed 之外,评估相关页面还支持通过 URL 参数直达具体表单或指定初始状态。
自动打开新建任务表单
页面路径为 /app/evaluate-task。
参数 | 必填 | 可选值 | 说明 |
| 是 |
| 进入页面后自动打开新建任务表单 |
| 否 |
| 预填数据源 |
| 否 | 数据集名称 | 数据源为 |
const targetUrl = new URL(
'https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/evaluate-task'
);
targetUrl.searchParams.set('action', 'create');
targetUrl.searchParams.set('dataSource', 'dataset');
targetUrl.searchParams.set('datasetName', '{datasetName}');
console.log(targetUrl.toString());页面消费这些一次性参数后,会从地址栏移除 action、dataSource 和 datasetName,避免刷新时重复触发。
打开任务编辑表单
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/evaluate-task?editTaskId={taskId}editTaskId 被消费后同样会从地址栏移除。
打开评估任务详情
页面路径为 /app/evaluate-task-detail。
参数 | 必填 | 说明 |
| 查看、复制或编辑已有任务时必填 | 评估任务 ID |
| 否 | 取值为 |
| 否 | 当前详情流程支持 |
指定评估分析洞察初始状态
页面路径为 /app/explorer。
参数 | 类型 | 默认值 | 说明 |
| 字符串 | 空 | 初始查询语句,必须进行 URL 编码 |
| 字符串 |
| 初始主聚合维度,支持 |
| 字符串 |
| 初始次聚合维度,可选值同 |
const targetUrl = new URL(
'https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/explorer'
);
targetUrl.searchParams.set('q', 'status: success');
targetUrl.searchParams.set('groupBy', 'evaluator');
console.log(targetUrl.toString());无聚合需求时不传 groupBy 和 subGroupBy,或将其设置为 none。
AI Agent 可观测页面
AI Agent 可观测的当前主入口路径为:
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/llm_agent/app-list主入口按以下优先级决定打开哪个内层页面:
传入了
traceId:打开 Trace 详情。未传
traceId,且targetPage=session-explorer:打开 Session Explorer。其他情况:打开 AI 应用列表。
打开应用列表
不传 traceId,也不传 targetPage 时,页面默认打开 AI 应用列表。
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/llm_agent/app-list?hiddenSwitch=true&hiddenBackHome=true打开 Trace 详情
传入 traceId 时,页面打开对应 Trace 详情。
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/llm_agent/app-list?traceId={traceId}&startTime={startTime}&endTime={endTime}&hiddenSwitch=true&hiddenBackHome=true参数说明:
参数 | 必填 | 说明 |
| 是 | Trace ID。主入口区分大小写,须使用 |
| 否 | 查询开始时间,使用毫秒级 Unix 时间戳。未传时默认为当前时间前 1 小时 |
| 否 | 查询结束时间,使用毫秒级 Unix 时间戳。未传时默认为当前时间 |
spanId、initialTab、querySource、source、spanFiltersQuery 和 spanFiltersTimeSeriesQuery 不由主入口转发,仅在 Trace 组件路由下可用,参见「Trace 组件路由兼容参数」。
打开 Session Explorer
需要从第三方系统直达某个会话时,传入 targetPage=session-explorer 并携带筛选条件:
const targetUrl = new URL(
'https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/llm_agent/app-list'
);
targetUrl.searchParams.set('targetPage', 'session-explorer');
targetUrl.searchParams.set(
'filters',
'attributes.gen_ai.session.id: "{sessionId}"'
);
targetUrl.searchParams.set('queryTimeType', '99');
targetUrl.searchParams.set('startTime', '{startTime}');
targetUrl.searchParams.set('endTime', '{endTime}');
console.log(targetUrl.toString());参数说明:
参数 | 必填 | 说明 |
| 是 | 固定取值 |
| 否 | Session/Trace 筛选表达式 |
| 否 | 查询语句,透传给内层查询页面 |
| 否 | 内层页面的时间模式。当前 AgentLoop 内部深链将 |
| 否 | 查询开始时间,Session 深链使用秒级 Unix 时间戳 |
| 否 | 查询结束时间,Session 深链使用秒级 Unix 时间戳 |
Session 深链的时间参数为秒级,Trace 深链的时间参数为毫秒级,拼接前需确认单位。
Trace 组件路由兼容参数
当部署的动态模块注册了 /app/llm_agent/trace-detail 时,该组件路由额外支持以下参数:
参数 | 必填 | 说明 |
| 是 | Trace ID,组件路由兼容小写写法 |
| 否 | 查询开始时间,支持秒级或毫秒级时间戳 |
| 否 | 查询结束时间,支持秒级或毫秒级时间戳 |
| 否 | 指定 Span ID |
| 否 | Trace 详情初始页签 |
| 否 | Trace 查询来源标识 |
| 否 | 页面来源标识 |
| 否 | Span 明细过滤条件 |
| 否 | Span 时序过滤条件 |
这组参数不会由 /app/llm_agent/app-list 主入口全部转发。需要统一稳定入口时,以主入口支持的 traceId、startTime 和 endTime 为准。
接入中心页面
接入中心页面路径为:
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/integratingcenter可按需组合内嵌参数,例如:
https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/integratingcenter?hiddenSwitch=true&hiddenBackHome=true&embed=%7B%22sidebar%22%3A%22hidden%22%2C%22header%22%3A%22hidden%22%7D接入建议
服务端生成免登录链接:
AssumeRole、GetSigninToken和最终 Login URL 都应由服务端完成,浏览器前端只接收最终可访问的 iframe URL。统一使用 4service 域名:
Destination必须使用agentloop4service.console.aliyun.com。正确处理 URL 编码:
Destination本身可能包含 query 参数,写入 Login URL 时必须整体编码。建议使用URL和URLSearchParams生成。按需隐藏控制台导航与页面 Header:如果外部系统已经提供导航和页面标题,建议组合使用
embed={"sidebar":"hidden","header":"hidden"}、hiddenSwitch=true、hiddenBackHome=true。控制免登录链接有效期:请在
SigninToken失效前刷新免登录链接,避免 iframe 内页面因登录态过期无法访问。最小权限授权:RAM 角色权限应按业务需要收敛到必要的 AgentLoop、日志和观测资源范围。
参数解析与兼容规则
embed必须是合法 JSON。解析失败时整个embed配置被忽略。embed在当前页面生命周期内只解析一次。修改参数后需要重新加载页面才能生效。未识别的
embed字段不产生效果。AgentLoop 内部导航会保留
embed、 和 。URL 参数只控制展示和初始状态,不提供权限控制。隐藏菜单或 Header 不替代 RAM、AgentSpace 或数据权限校验。
服务名、数据集名、查询语句和筛选表达式等用户输入都应使用
URLSearchParams编码后再拼接。
常见问题
问题 | 排查建议 |
iframe 中显示未登录 | 确认使用的是 |
iframe 中提示无权限 | 确认 RAM 角色权限覆盖目标 AgentSpace 及其关联资源 |
用户可以切换 AgentSpace | 在 URL 中增加 |
用户可以返回 AgentLoop 首页 | 在 URL 中增加 |
左侧导航仍显示 | 确认 |
页面 Header 仍显示 | 确认 |
新建任务表单没有自动打开 | 使用 |
评估新建任务未预填服务名 | 确认进入的是 |
AI Agent 页面没有打开 Session | 确认使用当前主入口 |
修改 |
|