建立 API 工具
本指南將引導您在平台中建立新的 API 工具。
API 工具用於整合外部服務、自動化操作流程。
本頁內容:什麼是 API?|快速建立 API 工具|在 Query 參數中引用 Agent 的參數|金鑰與憑證放哪裡|⚠️ 重要提醒
什麼是 API?
API(Application Programming Interface,應用程式介面) 是不同軟體系統之間溝通的橋樑。簡單來說,它就像是軟體世界的「服務員」,幫助不同的程式互相傳遞資訊和執行功能。
想像你在餐廳用餐:
你:需要食物的客戶(應用程式)
廚房:製作食物的地方(提供服務的系統)
服務員:在你和廚房之間傳遞訊息(API)
你不需要直接進廚房,只要告訴服務員你要什麼,服務員會把你的需求傳達給廚房,然後把做好的餐點送到你面前。

API 工具可以協助您自動操作標準化流程及設置特定的回傳格式,也可以協助您獲取您系統中的資訊如:
電商客服自動化
行銷活動管理
線上課程平台:
透過 API 工具,Agent 從單純的對話機器人,進化成能夠實際執行業務流程的智慧助理,大幅提升工作效率和自動化程度。
快速建立 API 工具
1. 進入工具管理介面
首先,請從左側選單進入 AI 功能 → 工具。進入工具列表頁面後,點選右上角的 新增工具 按鈕。
2. 選擇工具類型
工具類型,選擇 API。

3. 設定顯示名稱
為工具設定清晰的顯示名稱,這邊設為 google calendar。

用途:此名稱將會顯示在平台介面中,供所有用戶查看。
建議:選擇一個能清晰表達工具主要功能的名稱,方便用戶理解。此名稱沒有嚴格的格式限制。
4. 設定工具名稱
接下來是「工具名稱」欄位。
用途:此名稱是 Agent 在內部呼叫和識別此工具時使用的唯一標識符。
命名規則 (重要):
必須使用英文。
只能包含:
小寫英文字母 (a-z)
大寫英文字母 (A-Z)
數字 (0-9)
底線 (
_)連字符 (
-)
範例:
get_weather_forecast,database-query-tool
下圖設為 google_calendar_retriever

5. 撰寫工具描述
在「工具描述」欄位中,用戶可以提供清晰且詳細的工具說明。
重要性:良好的描述能幫助 Agent 更準確地理解:
工具的功能和目的。
何時應該使用這個工具。
如何解釋工具的輸出結果。
建議內容:說明工具做什麼、輸入什麼、輸出什麼,以及任何使用上的注意事項。
兩個說明欄位:表單裡的 「描述」 顯示在工具列表給成員看;「提示詞」 才是給 Agent 參考的使用方法、參數格式與注意事項。寫好描述後按旁邊的 「同步到提示詞」,會把描述複製到提示詞欄位作為起點(描述空白時提示「請先填寫描述內容」),再補上 Agent 需要的細節。

6. API 配置詳細設定
a. 🔗 API URL
填寫目標 API 端點的完整網址 (包含
http://或https://)。範例:
https://api.opencalendar.org/data/2.5貼 cURL 自動解析:欄位提示「可貼上從瀏覽器 DevTools 複製的 cURL」。在 DevTools 的 Network 面板對請求選「Copy as cURL」後直接貼進這個欄位,系統會解析出 URL、標頭與 HTTP 方法並自動填入對應欄位(提示「已從 cURL 解析出 URL、標頭與 HTTP 方法」);開啟新增工具視窗時,若剪貼簿裡已是 cURL 指令也會自動帶入(需瀏覽器允許讀取剪貼簿)。cURL 用到不支援的 HTTP 方法時,URL 與標頭仍會填入,請手動選擇方法;格式無法解析時提示「無法解析 cURL,請檢查格式是否正確」。貼入後請刪掉標頭裡的個人 Cookie 或一次性 token,再依金鑰與憑證放哪裡改用變數。

b. 📮 HTTP 方法
從下拉選單中選擇 API 服務要求的 HTTP 動詞:
GET:通常用於獲取資源。POST:通常用於創建新資源或提交數據。PUT:通常用於完整替換或更新資源。DELETE:通常用於刪除資源。

c. 📰 標頭 (Headers)
標頭就像是信件的「信封」,在看到實際的資料內容前,先告訴接收方一些重要的資訊,沒有正確的標頭,API 請求可能無法通過驗證,或者接收方無法正確解析資料。。
常見用途:
身分驗證 (
Authorization,X-API-Key)指定內容類型 (
Content-Type)指定接受的回應格式 (
Accept)
若要設定標頭,您需要:
在「標頭 (JSON)」欄位填入每次請求都要帶上的 HTTP 標頭。
格式:必須是有效的 JSON 物件,其中鍵 (Key) 是標頭名稱,值 (Value) 是標頭內容 (字串)。不需要額外標頭時維持
{}。金鑰請直接填實際的值:API Key、Token 等憑證請把服務商提供的值原樣填進標頭。平台不會代換自訂名稱的
{{…}},只有特定變數會在呼叫時代入,詳見 金鑰與憑證放哪裡。範例:
敏感 Header 名稱:工具的執行紀錄會留下每次請求的標頭。平台內建的敏感標頭(Authorization、Proxy-Authorization、X-API-Key、X-Auth-Token、Cookie、Set-Cookie,清單列在唯讀的 平台內建敏感 Headers)與憑證帶入的標頭一律以遮罩顯示;若您的 API 用其他自訂名稱帶金鑰(例如 X-Client-Secret),請在 敏感 Header 名稱 輸入名稱後按 Enter 加入,查看執行紀錄時這些標頭的值就會顯示為遮罩。名稱不分大小寫、需完全相符、只能用英文字母、數字與 - _ . ~,最多 50 個;設定會同時套用到既有紀錄,移除名稱後恢復顯示原值。
d. 🔎 Query 參數 (Query Params)
Query 參數是附加在網址問號後面的查詢字串(例如 ?format=json&limit=10),每次呼叫都會隨請求送出。適合放固定的查詢條件,或是只能透過 query string 傳遞的 API 金鑰。
點擊「可用的情境變數」可展開目前支援的變數清單(聯絡人 ID、對話 ID、收件匣 ID 等)。
格式:有效的 JSON 物件,鍵 (Key) 是參數名稱,值 (Value) 是參數內容(字串)。
值可以寫成固定文字,也可以用
{{參數名}}引用「參數結構」中宣告、由 Agent 在呼叫時填入的參數,讓「前半固定、後半由使用者提供」的查詢條件用設定就能完成,詳見下方 在 Query 參數中引用 Agent 的參數。服務商要求以 query string 傳遞 API 金鑰時,請把金鑰的實際值放在這裡,不要直接寫在 API URL 的
?後面。這裡設定的值不會出現在工具執行紀錄的「請求 URL」,詳見 誰看得到這些值。範例:

e. 🧩 參數結構 (Parameters Schema)
參數結構就像是「點餐單」,告訴 Agent 可以向 API 要求什麼資料,以及要怎麼要求。
核心設定:定義 Agent 在呼叫此工具時,可以或必須提供哪些參數(要傳遞給系統處理的內容),以及這些參數的格式。
格式:使用標準的 JSON Schema 格式。
關鍵元素:
type: "object":表示參數是一個物件。properties: 定義每個參數的物件。參數名稱 (例如
"search"):對應的物件包含該參數的細節。type: 參數的資料類型 (string,integer,number,boolean,array,object)。description: 對 Agent 的說明,解釋此參數的意義。default(可選): 參數的默認值。enum(可選): 如果參數值只能是特定幾個選項之一,在此列出。
required: 一個包含所有必填參數名稱的陣列。
不要放金鑰:參數結構(包含
default預設值)會作為工具定義提供給 AI 模型。API 金鑰請放在「標頭 (JSON)」或「Query 參數 (JSON)」。範例 (影音搜尋工具):
f. 路徑參數與參數位置
API URL 可以用 {參數名} 標出網址路徑中會變動的段落,例如 /users/{userId}/orders/{orderId}。要讓系統把 Agent 提供的值代入網址,必須在「參數結構」定義同名參數,並把該參數的位置設為「路徑」。送出請求前,系統會先將值做網址編碼再代入,例如 A/B 01 會變成 A%2FB%2001,不會因為值裡的斜線或空白而改變網址結構。
使用情境:客服主管小麥希望 Agent 依照客戶編號與訂單編號,向公司的訂單 API 查詢單筆訂單。她建立 API 工具、把兩個編號設為路徑參數,再將工具配置給 Agent。同事在對話中輸入「查詢客戶 customer-01 的訂單 order-25」,Agent 就把兩個編號放進網址的正確位置送出查詢;若少了訂單編號,工具會直接回報缺值,不會送出不完整的請求。
配置給 Agent 並驗收
依照 為 Agent 配置工具 把工具加入回答模式為 Agent 模式的 Agent。接著從左側導航列進入「Agent 市集」,切換到「組織自建」,點選該 Agent 並輸入「查詢客戶 customer-01 的訂單 order-25」。Agent 呼叫工具後,httpbin 會回傳實際收到的請求網址 https://httpbin.org/anything/users/customer-01/orders/order-25。

若要查看每次呼叫實際送出的網址,從左側導航列進入「AgentOps」→「工具執行紀錄」,點選該筆紀錄操作欄的眼睛圖示開啟「詳細」,在「請求資訊」查看「請求 URL」。下圖是客戶編號含斜線與空白(A/B 01)的呼叫,可以看到值已經過網址編碼。

練習完成後,把公開示範網址換成公司的訂單 API 網址即可。
參數位置選項
參數結構中的每個參數都可以設定位置,決定呼叫時把值放在請求的哪裡:
預設
維持原本行為:GET 放在查詢字串,POST、PUT、PATCH 放在本文。DELETE 不會自動帶入,需要傳值時請明確選擇位置
路徑
代入 API URL 中同名的 {參數名}
查詢
附加在網址問號後的查詢字串
本文
放在 JSON 本文中
標頭
以參數名稱作為 HTTP 標頭送出;若「標頭 (JSON)」已設定同名標頭(不分大小寫),以已設定的內容為準
未設定位置的既有工具行為不變。
缺少路徑參數值時不會送出請求
某次呼叫中,只要網址裡有任何一個路徑參數沒有值(Agent 沒有提供、值為空,或該參數位置不是「路徑」),工具會直接停止並回報「路徑參數 {orderId} 在本次呼叫中沒有值」,不會把含有 {orderId} 的網址送出。Agent 會在對話中說明查詢失敗的原因;在「工具執行紀錄」中,該筆紀錄的狀態為失敗,「請求資訊」沒有請求內容,「錯誤訊息」會指出缺值的參數。

網址寫法限制
路徑參數名稱只能使用英文字母、數字與底線,且不能以數字開頭,例如
{order_id};{order-id}這類名稱無法儲存。{參數名}請放在網址的路徑段落。需要放在查詢字串的值,請把參數位置設為「查詢」,或在 Query 參數 中用{{參數名}}引用。API URL 不能使用
{{變數}}雙大括號語法,儲存時會出現「錯誤提示」:「路徑參數必須使用 {identifier} 語法。」在 API 工具中,{{參數名}}請用在「標頭 (JSON)」與「Query 參數 (JSON)」。

Google Style REST 的自訂動作可以直接保留冒號後綴,例如 Google Weather 查詢:
7. 💾 儲存工具
確認所有設定無誤後,捲動到頁面底部,點擊「確認」按鈕。您的新工具就建立完成了!
在 Query 參數中引用 Agent 的參數
許多第三方 API 的查詢條件是「固定語法+使用者提供的值」組成的一整個字串,例如 OData 風格的 $filter=ProductName eq 'Chai',或搜尋類 API 的 q= 參數。這類 API 要的不是一個獨立的參數,而是把值嵌進固定的字串裡。
在「Query 參數」的值裡寫 {{參數名}},MaiAgent 會在 Agent 呼叫工具時,把「參數結構」中同名參數的值代入後再送出請求。設定者負責寫好固定的骨架,Agent 只負責填值,語法正確性不再交給模型判斷。
使用情境
採購部門想讓公司內部的 Agent 直接回答「某個產品目前的單價和庫存是多少」,資料來源是公司商品目錄系統提供的 OData 查詢服務。過去這類查詢必須為每一支 API 另外寫程式;現在採購專員只要建立一個 API 工具,把查詢條件寫成 ProductName eq '{{product_name}}',再把工具配置給 Agent。同事在對話中問「Chai 這個產品的單價和庫存是多少?」,Agent 會自動把 Chai 填進查詢條件、呼叫 API,並回覆產品名稱、單價與庫存。
設定步驟
以下用公開的 Northwind 示範資料服務(OData)示範,可直接照做:
配置給 Agent 並測試
依照 為 Agent 配置工具 把這個工具加入一個回答模式為 Agent 模式的 Agent 並儲存。接著從左側導航列進入「Agent 市集」,切換到「組織自建」,點選該 Agent 開始對話,輸入「請問 Chai 這個產品的單價和庫存是多少?」。Agent 會顯示「已使用工具」,並回覆 Chai 的單價與庫存。

代入規則
變數名稱必須與參數結構一致
{{product_name}} 對應「參數結構」中 properties 的參數名稱,大小寫需完全相符
只有值會代入
模板只作用在 Query 參數的值;鍵 (Key) 維持原樣,不做代入
值以原文代入
參數值一律以字面文字代入,不做數值轉換;例如統一編號 04595257 的前導零會保留
缺值即中止
Agent 這次呼叫沒有提供該參數(或值為空)時,工具會以錯誤中止並指出是哪個參數缺值,不會把 {{product_name}} 原樣送出去
情境變數優先
若參數名稱與情境變數(如 contact_id、conversation_id)相同,一律代入情境變數的值,Agent 提供的值不會覆蓋
被引用的參數仍會一併送出
被模板引用的參數仍會照原本的行為當成獨立的 query 參數一起送出(例如同時送出 product_name=Chai),多數 API 會忽略多餘的參數
參數名稱原樣保存
Query 參數的鍵含底線或大寫(例如 Business_Accounting_NO)會原樣保存,不會被系統改寫
不含 {{ }} 的既有工具設定完全不受影響。若舊工具的 Query 參數名稱曾被系統改寫(例如 Business_Accounting_NO 變成 business__accounting_no),重新開啟該工具、把名稱改回正確寫法並儲存即可。重新開啟編輯視窗時,Query 參數的值會以 **** 遮罩顯示,直接儲存不會遺失原值。
金鑰與憑證放哪裡
API 工具沒有獨立的密鑰保管欄位,也沒有可自訂名稱的密鑰變數。呼叫外部 API 需要的金鑰,請依「Agent 要用誰的身分呼叫」放在下列位置:
全組織共用一組固定的 API Key 或 Token
直接把實際的值填在工具的「標頭 (JSON)」;服務商只接受 query string 時,填在「Query 參數 (JSON)」
每位聯絡人使用自己的 API Key 或 Token
聯絡人的「API 憑證」分頁,見 每位聯絡人使用各自的金鑰
以 Keycloak 登入 Web Chat 的訪客本人身分
對話平台的 沿用 Keycloak 登入身分呼叫工具
服務只接受 OAuth 登入授權
API 工具沒有 OAuth 授權流程。若服務提供 MCP 伺服器,請改用 MCP 工具的 OAuth 連接器
在「API URL」貼上從瀏覽器複製的 cURL 指令時,指令中的標頭會一併帶入「標頭 (JSON)」,其中常含有您本人的 Cookie 或 Authorization。這些值會成為所有對話共用的固定憑證,儲存前請刪除,或換成服務商發給這個工具使用的金鑰。
會被代換的 {{…}} 變數
「標頭 (JSON)」與「Query 參數 (JSON)」的值可以使用 {{變數名稱}},系統會在每次呼叫時代換。只有下列名稱會被代換:
{{contact_id}}
聯絡人 ID
{{source_id}}
來源 ID
{{contact_name}}
聯絡人名稱
{{conversation_id}}
對話 ID
{{inbox_id}}
收件匣 ID
{{organization_id}}
組織 ID
{{agent_slug}}、{{agent_version}}
供官方內建 Agent 使用;組織自建的 Agent 呼叫時一律代入空字串
{{參數名}}
「參數結構」中宣告的參數,代入 Agent 這次呼叫提供的值,規則見 代入規則
變數名稱大小寫必須完全相同,大括號內不能有空白;
{{ contact_id }}不會被代換,會原樣送出。對話情境變數沒有對應值時代入空字串,例如對話沒有聯絡人時的
{{contact_id}}。其他名稱(例如自己取名的金鑰變數)不會被代換。儲存工具時會出現「包含未知的範本變數」錯誤;若舊工具仍留有這類寫法,請求會把
{{…}}原樣送給對方,導致驗證失敗。請改填實際的金鑰後重新儲存。「API URL」與「參數結構」不能使用
{{…}}。
每位聯絡人使用各自的金鑰
當每位聯絡人要用自己的帳號呼叫 API(例如查詢自己的訂單),請在工具的「標頭 (JSON)」只放共用的標頭,再為每位聯絡人設定各自的憑證:
進入「聯絡人」頁面,編輯該聯絡人(聯絡人需已建立並儲存)。
切換到「API 憑證」分頁,點擊工具右側的編輯按鈕。
在「Headers(JSON 格式)」填入這位聯絡人的標頭,例如
{"Authorization": "Bearer 這位聯絡人的 Token"},點擊「儲存」。
操作方式與 聯絡人 MCP 憑證設定 相同。呼叫時系統會先帶入工具的「標頭 (JSON)」,再以聯絡人設定的標頭覆蓋同名標頭(名稱大小寫需與工具設定一致);聯絡人沒有設定時,使用工具的標頭。聯絡人憑證的值會原樣送出,不做 {{…}} 代換。
誰看得到這些值
工具編輯視窗:儲存後,「標頭 (JSON)」與「Query 參數 (JSON)」的值不會再以明文顯示,包含建立者本人。重新開啟編輯視窗時,每個值只顯示前後各 4 個字元,中間以
****取代(8 個字元以內的值整個顯示為****)。直接儲存不會改變原值;要修改某一項時,請重新輸入該項的完整值,仍含遮罩值的項目無法儲存。AI 模型:標頭與 Query 參數的值不會提供給 AI 模型。AI 模型只看得到工具名稱、提示詞(或描述)與參數結構。
工具執行紀錄:在「AgentOps」→「工具執行紀錄」的「請求資訊」可以看到每次實際送出的「請求 URL」與「請求 Headers」:
名稱為
Authorization、Proxy-Authorization、Cookie、Set-Cookie、X-API-Key、Api-Key、X-Auth-Token、X-Access-Token(不分大小寫)的標頭,以及聯絡人「API 憑證」中設定的標頭,會顯示為***並標示「已遮罩」。其他名稱的標頭會以明文顯示。服務商允許時,請把金鑰放在上列名稱的標頭。
「Query 參數 (JSON)」設定的值不會出現在「請求 URL」;API 回應或錯誤訊息若回顯了這些值,也會被替換成
***。直接寫在「API URL」中的內容(包含
?後面的查詢字串)會原樣顯示在「請求 URL」,因此金鑰不要寫在 API URL。
⚠️ 重要提醒
連線測試
建立工具後,建議先測試 API 是否正常運作
可使用測試工具驗證工具功能,如:
POSTMAN
企業自己搭建的 API 測試請求平台
權限管理
定期檢查工具使用狀況及權限開放狀態
最後更新於
這有幫助嗎?


