
(點擊上方圖片觀看本課程影片)
多代理設計模式
當你開始著手一個涉及多個代理的專案時,就必須考慮多代理設計模式。然而,何時切換到多代理,以及其優勢為何,可能不會立即明朗。
簡介
在本課程中,我們將嘗試回答以下問題:
- 多代理適用的場景有哪些?
- 使用多代理相較於單一代理執行多項任務的優勢是什麼?
- 實現多代理設計模式的構建要素有哪些?
- 我們如何掌握多個代理彼此互動的情況?
學習目標
完成本課程後,你應該能夠:
- 辨識多代理適用的場景
- 理解使用多代理相較於單一代理的優勢
- 理解實施多代理設計模式的構建要素
更大的圖景是什麼?
多代理是一種設計模式,允許多個代理共同合作以達成共同目標。
該模式在各種領域廣泛使用,包括機器人技術、自主系統及分散式計算。
多代理適用的場景
那麼,哪些場景適合使用多代理呢?答案是多個場景中使用多代理格外有益,特別是在以下情況:
- 大量工作負載:大型工作負載可拆分為較小任務並分配給不同代理,允許並行處理及更快完成。舉例來說,在大量資料處理任務中即是如此。
- 複雜任務:複雜任務如同大型工作負載,可以分拆為較小子任務,分派給各具專長的代理。例如自主車輛系統中,不同代理負責導航、障礙物偵測與與其他車輛通訊。
- 多元專長:不同代理具備多樣專長,使其比單一代理更有效處理任務的各個面向。舉例在醫療領域,不同代理負責診斷、治療計劃、以及病人監控。
使用多代理相較於單一代理的優勢
單一代理系統可用於簡單任務,但對於更複雜任務,使用多代理有幾個優點:
- 專業化:每個代理可專注於特定任務。單一代理缺乏專業化,可能在面對複雜任務時不知所措,甚至執行不適合的工作。
- 可擴展性:透過增加更多代理,更易擴展系統,而非負載過重的單一代理。
- 容錯性:一個代理失敗,其他代理仍可持續運行,確保系統可靠性。
舉一例子,替使用者預訂旅程。單一代理必須處理旅程預訂的所有面向,從尋找航班到預訂飯店與租車。要以單一代理完成,該代理需具備處理所有任務的工具,這將造成難以維護與擴展的複雜且單一龐大系統。反之,多代理系統可由專精尋找航班、預訂飯店和租車的代理分別負責,使系統更模組化、易於維護且具擴展性。
這可比擬於家庭式旅行社與連鎖加盟旅行社。家庭式旅行社由單一代理處理旅程訂位全部事項,而加盟店則由多個代理分別處理不同面向。
實現多代理設計模式的構建要素
在實施多代理設計模式前,你需理解構成該模式的要素。
讓我們再次以為使用者預訂旅程的例子來具體說明。該場景下的構建要素包括:
- 代理通信:尋找航班、預訂飯店和租車的代理需互通並共享使用者的偏好與限制資訊。你需決定通信的協議與方法。具體而言,尋找航班的代理需與預訂飯店的代理溝通,確保飯店訂在與航班相同日期。因此代理需分享使用者的出行日期資訊,也就是說你需決定哪些代理共享資訊及如何共享。
- 協調機制:代理需協調行動,確保滿足使用者的偏好與限制。範例中使用者偏好接近機場的飯店,但限制是租車僅能在機場取用。飯店預訂代理就需與租車代理協調,以符合需求。這表示你需決定代理如何協調行動。
- 代理架構:代理內部需具備決策與基於與使用者互動學習的結構。以尋找航班代理為例,它需能決定推薦哪些航班給使用者。你需決定代理如何做決策以及如何從互動中學習。例如,尋找航班代理可利用機器學習模型,基於過去偏好為使用者推薦航班。
- 多代理互動可視化:你需掌握多代理彼此互動的情況。這需要工具與技術,以追蹤代理活動與互動,可能包含紀錄與監控工具、視覺化工具與效能指標。
- 多代理模式:實現多代理系統有多種模式,如中央式、分散式與混合架構。你需選擇最適合使用案例的模式。
- 人類介入:在多數情況下,系統會有人類介入,你需指示代理何時請求人工干預。舉例,使用者可能會要求特定飯店或航班,代理未推薦時,或在預訂航班飯店前請求使用者確認。
多代理互動的可視化
掌握多個代理彼此如何互動非常重要。此種可視化對於除錯、優化及確保系統整體效能至關重要。為達成此目標,你需使用追蹤代理活動與互動的工具及技術,可能包括紀錄與監控工具、視覺化工具及效能指標。
例如,針對為使用者預訂旅程場景,你可以設置一個顯示每個代理狀態、使用者偏好與限制、代理間互動的儀表板。該儀表板會顯示使用者出行日期、航班代理推薦的航班、飯店代理推薦的飯店及租車代理推薦的租車資訊。讓你能清楚瞭解代理間互動,以及使用者偏好與限制是否被滿足。
讓我們更詳細檢視這些面向:
- 紀錄與監控工具:應為代理執行的每個動作進行紀錄。紀錄條目可存儲執行動作的代理、動作內容、執行時間及結果。這些資訊有助於除錯、優化等。
- 視覺化工具:視覺化可以更直觀地呈現代理間的互動。例如,可以有一張展示代理間資訊流向的圖表,幫助找出瓶頸、低效率及系統問題。
- 效能指標:可追蹤多代理系統的效能,如完成任務所需時間、單位時間內完成任務數量,及代理推薦精確度。這些資訊協助識別需改進領域並優化系統。
多代理模式
讓我們來探討幾個可用於創建多代理應用的具體模式。以下是值得考慮的幾種有趣模式:
群組聊天室
此模式適用於想建立多個代理可相互通信的群組聊天室應用。典型用途包含團隊協作、客服支援和社群網路。
在此模式中,每個代理代表群組聊天中的一個用戶,透過訊息協議代理彼此交換訊息。代理可以發送訊息進群組、接收來自群組的訊息,並回應其他代理的訊息。
此模式可用中央式架構實現,所有訊息經由中央伺服器轉送,或是用去中心化架構讓代理直接交換訊息。

任務交接
此模式適用於你想建立多個代理可相互交接任務的應用。
典型用途有客服支持、任務管理與工作流程自動化。
在此模式中,每個代理代表工作流程中的任務或步驟,代理可依預定規則將任務交給其他代理。

協同過濾
此模式適用於想建立多代理共同協作給予使用者推薦的應用。
多代理協作的原因是每個代理擁有不同專長,能以多種方式為推薦過程貢獻。
舉例,使用者想知道股市上最適合買進的股票。
- 產業專家:一個代理是特定產業的專家
- 技術分析:另一個代理擅長技術分析
- 基本分析:另一代理為基本分析專家。這些代理協同合作,可提供使用者更全面的推薦。

場景:退款流程
考慮一個顧客申請商品退款的場景,這過程中可能涉及許多代理,我們將其劃分為特定退款流程的代理,以及可用於其他流程的一般代理。
退款流程專屬代理:
以下為可能涉入退款流程的代理:
- 顧客代理:代表顧客,負責啟動退款程序
- 賣方代理:代表賣方,負責處理退款
- 付款代理:代表付款流程,負責退還顧客付款
- 調解代理:代表調解流程,負責解決退款流程中產生的問題
- 合規代理:代表合規流程,確保退款流程符合規範與政策
一般代理:
這些代理可應用於企業其他部分流程。
- 運輸代理:代表運輸流程,負責將商品寄回賣方。此代理可用於退款和購買後的商品運輸。
- 回饋代理:代表回饋流程,負責收集顧客意見。回饋可在任何時間收集,而非僅限退款流程。
- 升級代理:代表升級流程,負責將問題升級至更高級別支援。此代理適用於任何需升級問題的流程。
- 通知代理:代表通知流程,負責在退款流程各階段發送通知給顧客。
- 分析代理:代表分析流程,負責分析與退款流程相關的資料。
- 稽核代理:代表稽核流程,確保退款流程正確執行。
- 報告代理:代表報告流程,生成退款相關報告。
- 知識代理:代表知識管理,維護退款及企業其他業務相關的知識庫。
- 安全代理:代表安全流程,確保退款流程的安全。
- 品質代理:代表品質管理,確保退款流程的品質。
以上羅列了相當多的代理,包括專屬退款流程的以及可以用於企業其他部分的一般代理。希望這能幫助你理解如何決定在多代理系統中使用哪些代理。
作業
設計一套多代理系統以支持客服流程。識別參與此流程的代理、其角色職責,以及它們如何相互作用。考慮同時包含專屬客服流程的代理與可用於企業其他部分的一般代理。
請在閱讀以下解決方案之前先思考一下,您可能需要比想像中更多的代理人。
TIP:思考客戶支援流程的不同階段,並且也要考慮系統所需的代理人數量。
Solution
Solution
Knowledge checks
Question: 什麼時候應該考慮使用多代理人?
Solution quiz
Summary
在本課程中,我們探討了多代理人設計模式,包括適用多代理人的情況、使用多代理人相較於單一代理人的優勢、實作多代理人設計模式的基本構件,以及如何監控多個代理人彼此互動的情況。
對多代理人設計模式有更多疑問嗎?
加入 Microsoft Foundry Discord,與其他學習者交流、參加辦公時間並解答您的 AI 代理人相關問題。
Additional resources
Previous Lesson
Planning Design
Next Lesson
Metacognition in AI Agents
免責聲明:
本文件係使用 AI 翻譯服務 Co-op Translator 進行翻譯。雖然我們力求準確,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件之母語版本應視為權威資訊來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯所產生之任何誤解或誤譯承擔任何責任。