如果阿里雲百鍊提供的官方外掛程式不能滿足業務需求,比如您想要在大模型應用中調用個人化開發的外掛程式、第三方平台的API,那麼您可以在建立自訂外掛程式,以便整合所需的API並進行線上調試。
建立與調用個人化開發的外掛程式或第三方平台的API
步驟一:建立外掛程式
在外掛程式頁面,單擊新增自訂外掛程式。

填寫外掛程式資訊。

參數
說明
外掛程式名稱
建議您輸入具有語義的名稱,中英文不限。
外掛程式描述
請輸入外掛程式描述,協助使用者更好地理解外掛程式功能和使用情境。
外掛程式URL
外掛程式的訪問地址。同一個HTTP請求下,不同的路徑被拆分成了不同的API(即下方建立工具中的工具路徑)。同一外掛程式下的不同工具使用相同的網域名稱,每個工具的工具路徑對應一個獨立的API。
例如:xx外掛程式下包含兩個API:
查詢:https://xxx.com/query
刪除:https://xxx.com/delete
在這個樣本中,
https://xxx.com對應外掛程式URL,/query和/delete對應下方建立工具中的工具路徑。這表明該外掛程式下包含兩個工具。Header列表
(可選)需要鑒權時,可以通過自訂Header傳遞鑒權資訊。
是否鑒權
(可選)當阿里雲百鍊應用調用您的自訂外掛程式時是否需要鑒權。此處是否需要鑒權主要取決於API提供方的安全性原則。
:無鑒權。
:開啟鑒權。鑒權類型
鑒權包括服務級鑒權和使用者級鑒權兩種方式。
如果選擇服務級鑒權,那麼調用外掛程式時不需要傳入Token,統一使用配置外掛程式時填寫的Token。
如果選擇使用者級鑒權,那麼每次調用外掛程式時都需要傳入Token。
服務級鑒權
位置:支援將鑒權資訊放在Header或Query中。
Header:將鑒權資訊放在HTTP要求標頭的Authorization欄位中,這些資訊在URL中不可見。
Query:將鑒權資訊放在URL中,例如https://example.com?api_key=123456。
參數名:如果將鑒權資訊放在Query中需填寫鑒權時使用的參數,如“api_key”。如果將鑒權資訊放在Header中將預設此參數為“Authorization”。
Type:
basic:不會在您提供的Token前加任何內容。
bearer:會在Token前增加“Bearer”。
appcode:會在Token前增加“APPCODE”。
兩種type都會放在鑒權參數欄位中。例如:選擇bearer,則調用外掛程式時會變成(“Authorization”: “Bearer <YOUR_TOKEN>”)。
Token:從API提供方擷取的鑒權Token,如API Key。
使用者級鑒權
位置:支援將鑒權資訊放在Header或Query中。
Header:將鑒權資訊放在HTTP要求標頭的Authorization欄位中,這些資訊在URL中不可見。
Query:將鑒權資訊放在URL中,例如https://example.com?api_key=123456。
參數名:如果將鑒權資訊放在Query中需填寫鑒權時使用的參數,如“api_key”。如果將鑒權資訊放在Header中將預設此參數為“Authorization”。
Type:
basic:不會在您提供的Token前加任何內容。
bearer:會在Token前增加“Bearer”。
appcode:會在Token前增加“APPCODE”。
兩種type都會放在鑒權參數欄位中。例如:選擇bearer,則調用外掛程式時會變成(“Authorization”: “Bearer <YOUR_TOKEN>”)。
使用DashScope SDK或HTTP介面調用應用時,通過參數
biz_params和user_defined_tokens將外掛程式中的使用者級鑒權資訊透傳給應用,其中user_token傳遞的值為該外掛程式需要的鑒權資訊。具體請參見通過API傳遞外掛程式參數。填寫完成後單擊或單擊繼續添加工具。
步驟二:建立工具
填寫工具資訊、配置輸入/輸出參數以及進階配置。

參數
說明
工具名稱
建議您輸入具有語義的名稱,中英文不限。
工具名稱能夠協助大模型判斷當前任務是否需要調用該工具。
工具描述
工具描述能協助大模型更好的理解工具功能和使用情境。請使用自然語言進行描述,盡量給出使用樣本。例如:“此工具用於擷取指定時間和指定地點的天氣和溫度。例如‘查詢杭州明天的天氣和溫度’”。
工具描述能夠協助大模型判斷當前任務是否需要調用該工具。
工具路徑
指向外掛程式URL的相對路徑。欄位名必須以正斜杠(/)開頭。此路徑將拼接到外掛程式URL上,以構建完整的URL。
要求方法
您可以根據需求選擇使用GET或POST等HTTP方法來操作API介面。
提交方式
請求或響應的編碼類別型。
application/json:表示請求或響應的主體內容是以JSON格式編碼的資料。
application/x-www-form-urlencoded:用於在 HTTP 要求中編碼錶單資料。這種編碼方式主要用於 POST 請求,將表單資料編碼為索引值對,並通過 URL 編碼傳輸。多個索引值對之間用 & 分隔,每個鍵和值之間用 = 分隔。URL 編碼會將特殊字元轉換為 % 後跟兩位十六進位數的形式。例如,空格會被編碼為 %20,& 會被編碼為 %26,= 會被編碼為 %3D,表單資料 name=John Doe&age=25 會被編碼為 name=John%20Doe&age=25。
配置輸入參數
單擊增加入參,配置參數資訊,所有參數均為必填項。
參數名稱儘可能帶有含義,可以協助大模型理解當前需要識別的參數資訊是什麼。例如
city這種有含義的詞。參數描述是對該入參的功能描述,要簡練且準確,協助大模型進一步理解取參的方式。例如,date,描述為日期的同時,可以再進一步描述date的形式,比如yyyy-MM-dd。
類型指參數類型。如需在Object類型下新增參數,請單擊Object行末的
表徵圖進行新增。
傳參方式要設定準確。
大模型識別:表示該參數的值需要大模型從使用者輸入中提取。
業務透傳:表示該參數的值從外部主動透傳,傳遞過程中不對資料進行處理或修改。使用DashScope SDK或HTTP介面調用應用時,通過參數
biz_params和user_defined_params將外掛程式中的業務透傳參數資訊透傳給應用。具體請參見通過API傳遞外掛程式參數。
配置輸出參數
單擊增加出參,配置參數資訊,所有參數均為必填項。
大模型會根據出參的定義,再結合使用者的問題,對API返回的結果進行篩選、重新組合,作為最終的答案返回給使用者。因此,出參與入參一樣,需要儘可能精簡和準確描述,嵌套的層級也儘可能少。
進階配置
(可選)為大模型增加調用樣本,減少漏召回和誤召回的情況。通常用於入參比較複雜,模型構造容易出錯的情境,通過提供一些範例,提升大模型調用外掛程式的準確性。
Value表示使用者輸入當前的Query時,期望大模型構造出的調用入參。
配置完成後單擊儲存草稿。
線上調試工具API能否調通。
單擊測試載入器,輸入鑒權資訊(開啟鑒權時填寫)及入參的值,單擊開始運行。
如果運行失敗,請根據運行結果中的報錯資訊對配置進行調整,並重新進行測試,直至成功運行。

入參的值可以手動輸入,也可以通過代碼輸入。對於入參較為複雜的情況,建議採用代碼模式編輯。您可以在代碼編輯器中提交完整的JSON格式的入參及其相應的值。

測試通過後單擊發布。只有發行的工具才能在應用中被調用。
步驟三:調用外掛程式
調用外掛程式
方式一:在工具列表中,將發行的工具添加到智能體應用中。
工具只能與位於相同的業務空間裡的智能體應用關聯。
在工具所在行,單擊添加至應用,按照介面提示將外掛程式添加到智能體應用中。

在應用詳情頁面,您可以看到工具已經自動添加。
您也可以單擊選擇外掛程式,繼續添加其他工具。最多支援添加10個工具。智能體應用會根據輸入選擇調用一個或多個工具。

測試外掛程式的使用效果是否符合預期。
無鑒權:您可以在輸入框中與大模型進行對話,測試外掛程式使用效果。
使用者級鑒權、服務級鑒權:您需要在開啟對話前,單擊
配置需要傳入的鑒權Token。如果不離開當前頁面,可以只配置一次。
工具入參的傳參方式選擇了業務透傳:您需要在開啟對話前,單擊
配置需要傳入的變數值。如果不離開當前頁面,可以只輸入一次。
測試完成後,發布應用。
方式二:在外掛程式列表中,將外掛程式下的工具添加到智能體應用中。
找到目標外掛程式,單擊添加到智能體,按照介面提示將外掛程式添加到智能體應用中。
工具只能與位於相同的業務空間裡的智能體應用關聯。
預設僅添加發行的工具,最多可選擇10個發行的工具添加至智能體應用中。

參考方式一的操作,在應用詳情頁面,測試外掛程式使用效果,並發布應用。
方式三:在阿里雲百鍊應用中將工具添加至智能體應用或工作流程應用,測試外掛程式使用效果,並發布應用。具體操作請參見外掛程式(Plug-in)、工作流程應用。
方式四:通過應用調用API使用外掛程式。當通過API調用應用時,如果應用中關聯的外掛程式存在業務透傳參數或開啟了使用者級鑒權,則需要通過參數
biz_params傳遞鑒權資訊或透傳參數資訊。具體操作請參見API參考。
擷取工具ID
工具ID用於標識具體的工具。通過API調用工具時,需要正確傳遞工具ID,以確保請求能夠被正確識別。
在外掛程式列表中,找到工具所屬的外掛程式,單擊查看詳情。
將滑鼠懸浮於工具名稱旁邊的
表徵圖上。單擊
表徵圖,複製工具ID。
管理自訂外掛程式與工具
常見問題
發布工具時的報錯資訊
錯誤碼 | 錯誤資訊 | 說明 |
130040 | xx缺少參數描述資訊 | xx參數的參數描述缺失。請您補充參數描述後重新發布工具。 |
