串接 MaiGPT:選對 Agent、補齊能力
把 MaiGPT 串進自家系統:釐清 MaiGPT 產品與 MaiGPT 視窗模式的差別、給客戶用就自建 Agent 補齊生圖等工具、給組織成員用就以成員身分嵌入 MaiGPT 產品
「MaiGPT」在 MaiAgent 平台上指兩件不同的東西,串接前先分清楚,可以省掉大部分的來回:
MaiGPT 產品(組織內建 Agent)
MaiGPT 視窗模式(Web Chat SDK 的一種佈局)
是什麼
每個組織自動配備一個、由 MaiAgent 統一維護的企業 AI 工作台,內建 AI 生圖、Deep Research、連接器等能力,見什麼是 MaiGPT?
enabledWindowModes: ['maigpt'] 開啟的類 ChatGPT 完整介面(側欄對話歷史、搜尋、設定),純前端呈現
能不能嵌進您的系統
只能給組織成員用:建立對話時要求成員身分且具備 maigpt_access 權限,直接用其 Web Chat ID 嵌入會得到 400 您沒有權限使用 MaiGPT。;要嵌給成員用,走成員身分嵌入由您的後端換發成員 token
能:本頁第二、三節講的就是這件事
能不能客製化
不能:指令、模型、工具、技能皆由平台統一設定,組織端只能透過角色權限收窄
能:介面下面掛的是您自己建立的 AI Agent,指令、模型、工具、知識庫全由您決定
結論:分兩種需求。給自家客戶、非組織成員用,做法是自己建立一個 AI Agent,補上需要的工具,再用 MaiGPT 視窗模式嵌入(第二、三節)。給組織成員用、而且就是要 MaiGPT 產品本身的能力(生圖、Deep Research、連接器、角色權限),走成員身分嵌入(第五節),由您的後端替成員換發短效 token。
一、常見症狀對照
介面長得像 MaiGPT,但問答像一般 Chat,要求生圖時 AI 回「我無法生成圖片」
嵌入的是一般 AI Agent,且(1)回答模式不是 Agent 模式,或(2)沒有掛上圖片生成等工具
依第二節切換 Agent 模式並加上工具
聊天視窗打不開,顯示「建立對話失敗(HTTP 400)」,API 回 您沒有權限使用 MaiGPT。
嵌入的 Web Chat ID 屬於組織內建的 MaiGPT 產品,而訪客沒有成員身分
後台的 AI Agent 列表 API 找不到 MaiGPT
GET /api/v1/chatbots/ 只列出組織自建的 Agent,MaiGPT 產品不在其中
這是預期行為;串接一律以自建 Agent 為對象

二、建立能生圖、能用工具的 AI Agent
以下用「AI 生圖」為例,其他能力(網頁搜尋、網頁讀取、MCP 工具、您自家的 API 工具)加法相同。
建立 AI Agent
後台「AI 功能 → AI 助理」建立一個新的 AI Agent,填好角色指令與模型。操作見使用者手冊建立 Agent。
加上工具
進入該 Agent 的「工具」頁,點「選擇工具」,勾選需要的內建工具,例如:
圖片生成:
Global_Image_Tool_OpenAI_GPT_Image_2、Global_Image_Tool_Gemini_3等(勾一個即可;模型差異見內建 AI 圖像生成工具)網頁搜尋:
Global_Tavily_Search_Tool網頁讀取:
Global_Web_Fetch_Tool您自家系統的 API 工具或 MCP 工具
完整操作見使用者手冊為 Agent 配置工具。
建立 Web Chat 對話平台
「客服對話 → 對話平台」為這個 Agent 新增一個 Web Chat,取得 webChatId。操作見串接對話平台:網站。
用 API 自動化(ISV 代客建置時)
以上四步都有對應 API,適合軟體廠商在為每個客戶開通時以程式完成。認證方式與 API Key 取得見快速上手。
既有 Agent 改模式或補工具用
PATCH /api/v1/chatbots/{id}/,tools傳完整的工具 id 陣列(整份取代)theme與darkTheme為必填,欄位清單可先GET /api/v1/web-chats/{既有 webChatId}/取一份現成的複製Web Chat 一定要透過
POST /api/v1/inboxes/連同收件匣一起建立;直接POST /api/v1/web-chats/會建出沒有收件匣的孤兒 Web Chat,嵌入時回 404
三、用 MaiGPT 視窗模式嵌入
拿第二節的 webChatId,照 MaiGPT 模式嵌入的嵌入碼放進您的頁面:
要讓 Agent 認得登入使用者、以其權限呼叫您的 API,再依軟體廠商整合指南加上 contactId 或 auth。
驗證:同一段嵌入碼,補齊能力前後
下面兩張圖是同一個 AI Agent、同一段嵌入碼,只差「回答模式+工具」的設定:


四、什麼時候該用 MaiGPT 產品本身
如果需求是「讓我們公司的員工有一個 ChatGPT 等級的內部 Agent」,而不是「嵌進自家產品給自家客戶用」,直接用 MaiGPT 產品最省事:
員工以組織成員身分登入平台即可使用,入口有網頁版、iOS App、LINE、Microsoft Teams
生圖、Deep Research、連接器、技能都已內建,管理員只需用角色使用權限決定誰能用什麼
想加公司專屬知識:把知識庫掛給成員可見的範圍即可,不需要另建 Agent
「嵌到自家系統但使用者是組織成員」→ 走第五節的成員身分嵌入。只要出現「給非成員(客戶、會員)用」「要加自家 API 工具」「要改指令或模型」其中任何一項,就走第二、三節的自建 Agent 路線。
五、成員身分嵌入:把 MaiGPT 產品嵌進自家系統給組織成員
適用情境:您的系統使用者同時是 MaiAgent 組織的成員(例如企業入口網站、員工工作台、ISV 代管的企業內部系統),而且要的就是 MaiGPT 產品本身,不想另建 Agent。做法是由您的後端以組織 API Key 替登入中的成員換一顆短效 token,前端用 SDK 既有的成員注入設定嵌入 MaiGPT 的 Web Chat。
前置條件
一把組織 API Key,且持有者是組織擁有者或角色具「組織總覽」管理權限——只有能管理成員的人發的 Key 才能代表成員換發。API Key 取得見快速上手
要嵌入的使用者已是該組織成員,且角色具 MaiGPT 使用權限(MaiGPT 角色使用權限);成員不存在時換發會回 404,不會自動開通。人員怎麼變成成員(SCIM 開通 API、後台邀請、SSO)見成員開通,ISV 代管的標準接法是 SCIM 建成員+本節換發 token
MaiGPT 的 Web Chat ID:
GET /api/v1/web-chats/回傳中名稱為MaiGPT、accessType為web的那一筆
步驟一:後端換發成員 token
在您的後端開一支只給登入使用者呼叫的端點(例如 GET /maigpt-token),內部轉呼叫 MaiAgent;前端的 SDK 會在需要時打它:
email 與 memberId 二擇一(memberId 為 MaiAgent 成員 ID)。成功回 201(expiresAt 為 epoch 毫秒):
400
email 與 memberId 兩個都給或都沒給
401
沒有以 Api-Key 認證(成員登入 token、匿名都會被拒)
403
API Key 持有者不是組織擁有者、也沒有組織管理權限
404
指定的成員不存在、已停用、或不屬於這把 Key 的組織
token 規則:效期固定 15 分鐘、不發 refresh token、不可延長;同一成員可重複換發,舊 token 到期前仍有效。這顆 token 只能用於 Web Chat 對話(建立對話、送訊息、交接續談三個呼叫),拿去呼叫 /api/v1/ 任何端點、其他對話管理動作或 WebSocket 一律 401。每次換發都會留在組織的 API 請求紀錄中供稽核(回應中的 token 不會被記錄)。
步驟二:前端給 SDK 一個取 token 的函式
嵌入設定與第三節相同,多一個 auth.getToken;webChatId 換成 MaiGPT 的 Web Chat ID:
getToken 回傳的物件欄位:
accessToken
✅
步驟一回應的 accessToken
organizationId
✅
步驟一回應的 organizationId
sourceId
建議
步驟一回應的 member.userId;也可以改寫在 auth.sourceId,兩處都給時以 auth.sourceId 為準
auth 必須寫在 maiagentChatbotConfig 裡,SDK 建立聊天視窗時才知道要先等成員身分注入完成再建立第一則對話;改在 SDK 載入後才呼叫 MaiAgent.auth.setup() 的話,第一則對話可能在身分注入前就以匿名建立而被拒。
sourceId 必須是回應中的 member.userId,不是 member.id、也不是您系統的使用者編號。MaiGPT 以它把對話對應到成員;填錯會變成匿名對話、看不到該成員的 MaiGPT 歷史。
到期與續期怎麼運作
token 效期 15 分鐘。iframe 會在到期前 60 秒通知 SDK,SDK 再呼叫一次
getToken取新 token 並重新注入,同一則對話直接續用,不重載頁面或 iframe,使用者無感。getToken每次都必須向 MaiAgent 換發新 token,不可回傳快取值:SDK 依 token 自身的存活時間排程下一次續期;回傳與上一顆相同的 token 會被視為失敗,走下一條的重試流程。getToken失敗(例如您的使用者已登出、後端回 401)時 SDK 會在 30 秒、60 秒、120 秒後各重試一次,仍失敗就停止並在 console 記錄錯誤;token 到期後下一則訊息會送出失敗並顯示既有的錯誤提示,對話與已送出的訊息不會消失。使用者登出您的系統時呼叫
MaiAgent.auth.signOut(),SDK 會清掉身分並停止續期;已發出的 token 最多再存活 15 分鐘。換另一位使用者登入時直接再呼叫一次MaiAgent.auth.setup()即可,前一位使用者進行中的續期會被作廢。該 Web Chat 若開啟了 Source ID 簽章驗證:簽章是一次性的,SDK 續期時不會重用第一次的
ts/sig,請讓getToken的回傳值連新簽章一起帶回({ accessToken, ts, sig })。若您不用
getToken、改直接給靜態的auth.accessToken,SDK 不會續期,15 分鐘後要自己重新呼叫MaiAgent.auth.setup()。
這條路與自建 Agent 怎麼選
使用者
必須是組織成員
任何人(客戶、會員、匿名)
能力
MaiGPT 全套:生圖、Deep Research、連接器、技能,依角色權限
您勾選的工具與知識庫
客製指令/模型
不能(平台統一)
能
後端工作
一支轉呼叫換發 API 的端點
零(可選加聯絡人身分同步)
計費歸屬
該成員的額度
該 Agent/Web Chat
六、常見問題
最後更新於
這有幫助嗎?