AgentLoop 控制台内嵌分享接入指南

更新时间:
复制 MD 格式

概述

AgentLoop 控制台支持以内嵌方式集成到第三方系统中。接入方可以通过免登录链接打开指定 AgentSpace 页面,并通过 URL 参数控制左侧导航、页面 Header、AgentSpace 切换入口以及部分业务页面的初始状态。

推荐使用以下域名作为内嵌访问入口:

https://agentloop4service.console.aliyun.com

请勿将普通控制台域名与内嵌域名混用。内嵌访问应始终使用本文中的 4service 域名,避免因登录态不一致导致页面无法访问。

页面地址格式

AgentSpace 页面地址格式如下:

https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/{appPath}

参数说明:

参数

说明

{regionId}

AgentSpace 所在地域,例如cn-hangzhou

{agentSpaceName}

AgentSpace 名称

{appPath}

需要打开的页面路径

示例:

https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/agent-insight

常见页面路径:

页面

appPath

说明

快速开始

quickstart

打开快速开始页面

Agent 洞察

agent-insight

打开 Agent 观测分析页面

Agent 对比

agent-comparison

打开 Agent 对比页面

AI Agent 可观测

llm_agent/app-list

打开 AI Agent 可观测主入口

仪表盘

dashboard

打开仪表盘页面

接入中心

integratingcenter

打开接入中心页面

Agent 轨迹

trajectory

打开 Agent 轨迹页面

评估任务

evaluate-task

打开评估任务页面

评估分析洞察

explorer

打开评估分析洞察页面

评估器

evaluator

打开评估器页面

实验计划

experiment-plan

打开实验计划页面

实验记录

experiment-record

打开实验记录页面

生成免登录链接

您可以参考阿里云控制台免登录链接生成方式,将 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 - 获取扮演角色的临时身份凭证

常用参数:

参数

说明

RoleArn

被扮演的 RAM 角色 ARN

RoleSessionName

会话名称,建议使用可审计的业务用户标识

DurationSeconds

临时身份有效期

Policy

可选,用于进一步收敛本次会话可访问的资源范围

请勿在浏览器前端保存或传输长期 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;
      };
    };
  };
}

参数说明:

参数

可选值

说明

embed.sidebar

hidden

隐藏 AgentSpace 左侧整个区域,包括 Logo、AgentSpace 选择器、菜单和折叠按钮,适合第三方系统自行提供导航的场景

embed.header

hidden

隐藏 AgentSpace 内容区 Header,包括页面标题、顶部页签和右侧操作区;不控制阿里云控制台最外层顶栏

embed.eval.dataSource

trace / atif / log / dataset

打开新建任务表单时,预填数据源类型

embed.eval.serviceName

服务名

打开新建任务表单时,预填 Trace 数据源的服务名

embed.eval.explorer.timePicker

hidden

隐藏评估分析洞察页面的时间选择器

embed.eval.explorer.topBar

hidden

隐藏评估分析洞察页面顶部的搜索、聚合和日志区域

embed.eval.explorer.filterSidebar

hidden

隐藏评估分析洞察页面的筛选侧栏

embed.eval.explorer.timeRange.from

秒级 Unix 时间戳

评估分析洞察页面的初始开始时间,必须小于 timeRange.to

embed.eval.explorer.timeRange.to

秒级 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%7D

hiddenSwitch

隐藏 AgentSpace 切换入口。

hiddenSwitch=true

如果第三方系统已经固定当前 AgentSpace,建议开启该参数,避免用户在内嵌页面中切换到其他空间。该参数按「是否存在」判断:即使传入 hiddenSwitch=false,只要参数出现在 URL 中,切换入口仍然隐藏。需要恢复切换入口时,从 URL 中删除该参数。

hiddenBackHome

禁止通过 AgentLoop Logo 返回首页。

hiddenBackHome=true

如果第三方系统只希望用户停留在指定 AgentSpace 页面,建议开启该参数。该参数同样按「是否存在」判断:传入 hiddenBackHome=false 不会恢复入口,需要从 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

同时隐藏左侧导航和页面 Header

可读形式:

?embed={"sidebar":"hidden","header":"hidden"}

URL 参数:

https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/agent-insight?embed=%7B%22sidebar%22%3A%22hidden%22%2C%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

参数

必填

可选值

说明

action

create

进入页面后自动打开新建任务表单

dataSource

trace / atif / log / dataset

预填数据源

datasetName

数据集名称

数据源为 dataset 时预填数据集

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());

页面消费这些一次性参数后,会从地址栏移除 actiondataSource 和 datasetName,避免刷新时重复触发。

打开任务编辑表单

https://agentloop4service.console.aliyun.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/evaluate-task?editTaskId={taskId}

editTaskId 被消费后同样会从地址栏移除。

打开评估任务详情

页面路径为 /app/evaluate-task-detail

参数

必填

说明

taskId

查看、复制或编辑已有任务时必填

评估任务 ID

type

取值为 addviewcopy 或 edit,默认 add

action

当前详情流程支持 start,用于定位运行策略区域

指定评估分析洞察初始状态

页面路径为 /app/explorer

参数

类型

默认值

说明

q

字符串

初始查询语句,必须进行 URL 编码

groupBy

字符串

none

初始主聚合维度,支持 dataItemevaluatortaskevaluationRunstatusagentdataset

subGroupBy

字符串

none

初始次聚合维度,可选值同 groupBy,但不能与主聚合维度相同

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

主入口按以下优先级决定打开哪个内层页面:

  1. 传入了 traceId:打开 Trace 详情。

  2. 未传 traceId,且 targetPage=session-explorer:打开 Session Explorer。

  3. 其他情况:打开 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

参数说明:

参数

必填

说明

traceId

Trace ID。主入口区分大小写,须使用 traceId 写法

startTime

查询开始时间,使用毫秒级 Unix 时间戳。未传时默认为当前时间前 1 小时

endTime

查询结束时间,使用毫秒级 Unix 时间戳。未传时默认为当前时间

spanIdinitialTabquerySourcesourcespanFiltersQuery 和 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());

参数说明:

参数

必填

说明

targetPage

固定取值 session-explorer

filters

Session/Trace 筛选表达式

queryString

查询语句,透传给内层查询页面

queryTimeType

内层页面的时间模式。当前 AgentLoop 内部深链将 99 与 startTimeendTime 一起传递

startTime

查询开始时间,Session 深链使用秒级 Unix 时间戳

endTime

查询结束时间,Session 深链使用秒级 Unix 时间戳

Session 深链的时间参数为秒级,Trace 深链的时间参数为毫秒级,拼接前需确认单位。

Trace 组件路由兼容参数

当部署的动态模块注册了 /app/llm_agent/trace-detail 时,该组件路由额外支持以下参数:

参数

必填

说明

traceId/traceid

Trace ID,组件路由兼容小写写法

startTime

查询开始时间,支持秒级或毫秒级时间戳

endTime

查询结束时间,支持秒级或毫秒级时间戳

spanId

指定 Span ID

initialTab

Trace 详情初始页签

querySource

Trace 查询来源标识

source

页面来源标识

spanFiltersQuery

Span 明细过滤条件

spanFiltersTimeSeriesQuery

Span 时序过滤条件

这组参数不会由 /app/llm_agent/app-list 主入口全部转发。需要统一稳定入口时,以主入口支持的 traceIdstartTime 和 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

接入建议

  1. 服务端生成免登录链接AssumeRoleGetSigninToken 和最终 Login URL 都应由服务端完成,浏览器前端只接收最终可访问的 iframe URL。

  2. 统一使用 4service 域名Destination 必须使用 agentloop4service.console.aliyun.com

  3. 正确处理 URL 编码Destination 本身可能包含 query 参数,写入 Login URL 时必须整体编码。建议使用 URL 和 URLSearchParams 生成。

  4. 按需隐藏控制台导航与页面 Header:如果外部系统已经提供导航和页面标题,建议组合使用 embed={"sidebar":"hidden","header":"hidden"}hiddenSwitch=truehiddenBackHome=true

  5. 控制免登录链接有效期:请在 SigninToken 失效前刷新免登录链接,避免 iframe 内页面因登录态过期无法访问。

  6. 最小权限授权:RAM 角色权限应按业务需要收敛到必要的 AgentLoop、日志和观测资源范围。

参数解析与兼容规则

  1. embed 必须是合法 JSON。解析失败时整个 embed 配置被忽略。

  2. embed 在当前页面生命周期内只解析一次。修改参数后需要重新加载页面才能生效。

  3. 未识别的 embed 字段不产生效果。

  4. AgentLoop 内部导航会保留 embedhiddenSwitch 和 hiddenBackHome

  5. URL 参数只控制展示和初始状态,不提供权限控制。隐藏菜单或 Header 不替代 RAM、AgentSpace 或数据权限校验。

  6. 服务名、数据集名、查询语句和筛选表达式等用户输入都应使用 URLSearchParams 编码后再拼接。

常见问题

问题

排查建议

iframe 中显示未登录

确认使用的是 agentloop4service.console.aliyun.com,且 Destination 已完整 URL 编码

iframe 中提示无权限

确认 RAM 角色权限覆盖目标 AgentSpace 及其关联资源

用户可以切换 AgentSpace

在 URL 中增加 hiddenSwitch=true

用户可以返回 AgentLoop 首页

在 URL 中增加 hiddenBackHome=true

左侧导航仍显示

确认 embed 参数已正确 URL 编码,并包含 {"sidebar":"hidden"}

页面 Header 仍显示

确认 embed 包含 {"header":"hidden"},不要使用 hideHeader=true

传入 hiddenSwitch=false 后切换入口仍隐藏

该参数按是否存在判断,从 URL 中删除该参数即可恢复入口

新建任务表单没有自动打开

使用 action=create 打开表单,embed.eval 只负责预填

评估新建任务未预填服务名

确认进入的是 app/evaluate-task 页面,并且 embed.eval.serviceName 对应的服务名存在

AI Agent 页面没有打开 Session

确认使用当前主入口 app/llm_agent/app-list,并传入 targetPage=session-explorer

修改 embed 后页面没有变化

embed 只在页面加载时解析一次,修改 URL 后需重新加载页面