生成式編排也支援多代理系統,即一個代理呼叫另一個代理。 將問題拆解成多個專門代理,能提升模組化、可擴展性與可管理性。
線上代理
內嵌代理,也稱為子代理,是同一代理內小型且可重複使用的工作流程。 它們通常只是主代理用作子程式的主題。 例如,主代理可以呼叫「翻譯文本」主題作為更大計畫中的一步。 內嵌代理會與主代理共享上下文,因此資料在兩者之間傳遞很簡單。
最佳實務:讓線上客服專注於單一責任並經過充分測試。
已連線的代理程式
連結代理是獨立的代理,擁有自己的編排、工具和知識。 主要代理人會將部分請求委派給兒童代理人。 例如,IT 客服打電話給銷售客服詢問價格。 連接代理實現模組化、領域分離,並能繞過計畫限制。 他們可能擁有不同的權限或知識,因此應應用治理與稽核控制。
然而,使用連網代理需要謹慎治理:
編排:母指揮者應有明確標準,決定何時交接給連接的代理。 當使用者的意圖與連接代理的網域相符時,通常會發生這種切換。 為協助此過程,請在父方配置中清楚描述已連接代理的用途。 從父方角度,將整個連接的代理人視為帶有描述的「工具」。
資料交接:你必須管理資料交接。 決定從母公司那裡傳遞什麼上下文給相關代理人。 Copilot Studio 會在一位客服人員打給另一位客服時,預設傳送通話紀錄,讓連線的客服人員知道已經討論過的內容。 但你可能還需要通過特定的參數。 例如,如果主客服已經知道之前的使用者名字,可能會把這個資料傳給連接的客服,以避免再次詢問。
安全性:連接的代理人可能擁有母代理人無法存取的權限。 確保撥打接通的客服不會無意中繞過限制。 例如,如果父代理不能刪除紀錄,但連結代理可以,那麼在可能刪除的情況下,母代理不應該在未經適當批准的情況下呼叫連結代理。 把連線中的代理通話當作其他強力行動來對待。 如果是做敏感操作,請通過必要的檢查或用戶同意。
審計與監控:記錄連線代理何時被呼叫及其執行的行為。 因為是獨立經紀人,你有不同的成績單。 除錯時,關聯父會話和連接會話很重要。 通常,遙測中的識別碼會將兩者連結起來。
何時分離代理人
不要為每個子任務建立獨立代理。 如果子任務:
- 複雜到需要擁有一套獨立的工具或知識(不同專業領域)
- 需要與主代理不同的治理規則或存取控制
- 你打算在多個不同的主要代理中重複使用這項功能(所以它就像服務代理一樣)。
如果以上條件都不適用,使用簡單的主題(內嵌)可能就足夠,而非完全連通的代理。 獨立代理會帶來額外負擔——由於上下文切換,執行時間稍長,且維護多個機器人的複雜度較高。 所以要謹慎使用它們。 實際做法是先用一個代理人,只有在明顯需要模組化或有界線時才拆分成多個代理人。