概述
AgentLoop 控制台支援以內嵌方式整合到第三方系統中。接入方可以通過免登入連結開啟指定 AgentSpace 頁面,並通過 URL 參數控制左側導航、頁面 Header、AgentSpace 切換入口以及部分業務頁面的初始狀態。
推薦使用以下網域名稱作為內嵌訪問入口:
https://agentloop4service.console.alibabacloud.com請勿將普通控制台網域名稱與內嵌網域名稱混用。內嵌訪問應始終使用本文中的 4service 網域名稱,避免因登入態不一致導致頁面無法訪問。
頁面地址格式
AgentSpace 頁面地址格式如下:
https://agentloop4service.console.alibabacloud.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/{appPath}參數說明:
參數 | 說明 |
| AgentSpace 所在地區,例如 |
| AgentSpace 名稱 |
| 需要開啟的頁面路徑 |
樣本:
https://agentloop4service.console.alibabacloud.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.alibabacloud.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.alibabacloud.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.alibabacloud.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.alibabacloud.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.alibabacloud.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/agent-insight?embed=%7B%22header%22%3A%22hidden%22%7D禁止切換空間和返回首頁
https://agentloop4service.console.alibabacloud.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/agent-insight?hiddenSwitch=true&hiddenBackHome=true隱藏導航並預填評估任務參數
https://agentloop4service.console.alibabacloud.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.alibabacloud.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.alibabacloud.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.alibabacloud.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.alibabacloud.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.alibabacloud.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.alibabacloud.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/llm_agent/app-list?hiddenSwitch=true&hiddenBackHome=true開啟 Trace 詳情
傳入 traceId 時,頁面開啟對應 Trace 詳情。
https://agentloop4service.console.alibabacloud.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.alibabacloud.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.alibabacloud.com/agentloop/region/{regionId}/agentspace/{agentSpaceName}/app/integratingcenter可按需組合內嵌參數,例如:
https://agentloop4service.console.alibabacloud.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.alibabacloud.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 | 確認使用當前主入口 |
修改 |
|