想像一個極為複雜的問題,沒有任何個人或大型單體程式能有效解決。現在想像有一支由高度專業的專家組成的團隊,每個人都擁有獨特的技能,他們流暢地協作、溝通意圖,並共同應對挑戰。這就是人工智慧中多代理系統 (MAS) 的本質。MAS 代表強大的典範轉移,從單一、全方位的 AI 解決方案,轉變為分散式、協作式智慧型代理網路。
多代理系統由多個自主運作的互動式運算實體 (稱為代理) 組成,這些代理位於共用環境中。這些代理會合作、協調,有時甚至會競爭,以達成個別或集體目標。與傳統的集中控制應用程式不同,MAS 通常具有分散式控制和決策機制。MAS 的集體行為可提升準確率、適應性和擴充性,因此能處理大規模複雜工作,這類工作可能需要數百甚至數千個代理。
多代理系統與單一代理系統的根本差異,在於解決問題的方法和互動範圍。
單一代理系統只有一個自主運作的實體,會在環境中獨立作業,達成特定目標,不會與其他代理直接互動。以獨立運作的西洋棋 AI 為例,這類 AI 會分析棋盤,並根據預先定義的規則或學到的策略做出決策。這類系統擅長處理定義明確的問題,且外部互動極少,集中控制效率高,例如推薦引擎或詐欺偵測。這類模型通常較容易開發,維護成本較低,且結果可預測。
相較之下,多代理系統的特徵是多個代理存在於共用環境中。這些代理會經常合作、競爭或協商,以達成個別或集體目標。這就像一個高效團隊,每個代理負責處理問題的一部分,並與其他代理溝通以達成共同目標。透過分散工作負載和專業性角色,MAS 可以處理複雜、動態或大規模的挑戰,這些挑戰會讓單一代理不堪重負。雖然需要完善的通訊和協調通訊協定,因此設計上較為複雜,但 MAS 具有更出色的彈性、穩定性和擴充性。
多代理系統會將工作和通訊分配給各個代理,讓它們在共用環境中合作達成目標。這個程序通常包括:
這種團隊合作讓多代理系統能夠適應並解決複雜問題。
多代理系統包含三個基本要素:代理、環境和互動機制。
這些是系統中主動做出決策的實體。每個代理都具備一定程度的自主性,也就是說,代理可以獨立運作、感知周遭環境,並根據目標和可用資訊做出選擇。代理可以是軟體程式、機器人、實體機器人、無人機、感應器,甚至是人類。這些是獨立的實體,各有特定角色和功能。
這是代理工作、感知和互動的共用空間。環境可以是虛擬的,例如模擬世界或網路,也可以是實體的,例如機器人代理的工廠。環境提供資源、設定限制,並做為間接溝通的媒介。
如要讓代理協同運作,必須讓它們彼此溝通。通訊協定是如何交換資訊的規則。包括訊息格式 (例如 JSON 或 XML) 和傳送方式 (例如 HTTP 或 MQTT)。代理通訊語言 (ACL),例如 FIPA ACL 和 KQML,提供代理互動和分享詳細資訊的標準方式。
多代理系統在各種領域都很有價值,因為解決複雜問題需要合作、適應性和韌性。
MAS 擅長將複雜的程序分解為較小的可管理工作,再將這些工作分配給專門的代理,並協調執行作業。
代理的分散式特性和自主性,讓多代理系統即使在不斷變化的環境中,也能運作良好。
MAS 是強大的工具,可模擬互動並瞭解複雜系統中產生的行為。
與單一代理或傳統系統相比,多代理系統具備多項潛在優勢:
更有效率地解決問題
MAS 可讓多個專精不同領域的代理協同合作,解決更困難的問題。每個代理都擁有獨特技能和觀點。
可擴充
您可以新增更多代理至 MAS,不會影響運作速度。這麼做有助於有效處理更多工作和大量資料。就像用樂高積木蓋房子,可以隨時新增積木,不必擔心破壞整體結構。
強大又可靠
如果其中一個代理停止運作,其他代理會接手,確保系統持續運作。因此 MAS 非常可靠,尤其是在重要時刻。
彈性且可調整
MAS 可根據新資訊或意外問題調整工作方式,無需人類持續協助。代理可根據新需求調整。
速度更快、效能更佳
MAS 可讓多個代理同時處理問題的不同部分,因此能更快解決問題,並更有效運用電腦資源。
團隊合作提升效能
代理可以分享所學、改進方法,並以團隊形式更有效地解決問題。這種團隊學習方式對需要不斷變更和改進的 AI 系統非常有幫助。
雖然多代理系統很有幫助,但也可能帶來一些潛在問題:
為了協助開發人員建構及管理多代理系統,許多框架提供工具,用於設計、協調及部署自動化代理。以下列舉一些熱門選項
框架名稱 | 框架總覽 | 應用實例範例 |
JADE (Java Agent Development Framework) | Java 程式,用於建構符合 FIPA 標準的代理系統。雖然這項技術是瞭解 LLM 時代前 MAS 核心概念的基礎,但較少用於現代生成式 AI 應用程式。 |
|
Mesa (Python) | 用於以代理為基礎的模型建立與模擬的 Python 程式庫。擅長建立複雜系統模型,主要目標是瞭解許多簡單代理 (在網格或網路中) 的湧現行為。 |
|
Ray (Python) | 開放原始碼的整合式運算框架,可擴充 AI 和 Python 應用程式。在 MAS 中,Ray 可將多個代理的工作負載分散至叢集,實現大規模平行處理,用於訓練或即時推論。 |
|
AutoGen (Microsoft) | 開放原始碼框架,可建構含多個「可對話」的 LLM 代理的應用程式,讓這些代理相互溝通以解決工作。擅長自動處理複雜的工作流程,包括生成程式碼、執行程式碼及收集人類意見回饋。 |
|
CrewAI | 這個框架旨在自動化調度管理角色扮演的自動化 AI 代理。可簡化協作代理團隊的建立作業 (例如「研究人員」、「作家」和「編輯」),讓團隊成員共同達成目標,且通常會與 LangChain 整合。 |
|
LangGraph | LangChain 的擴充功能,可讓您使用「圖表」結構,建構代理系統。這項功能非常適合建立週期性和有狀態的工作流程,讓代理能循環執行、自我修正,並根據程序目前的狀態做出決策,進而實現比簡單鏈結更複雜且穩健的互動。 |
|
LangChain | 這項基礎的開放原始碼框架可建構採用 LLM 的應用程式。它提供龐大的整合與元件生態系統,可建立內容認知應用程式,從簡單的檢索增強生成 (RAG) 管道,到做為核心工具包,用於建構 CrewAI 和 LangGraph 等更進階框架中使用的個別代理。 |
|
LlamaIndex | 開放原始碼資料框架,可將大型語言模型連結至自訂資料來源。雖然提供代理功能,但其核心優勢在於建構強大的 RAG 應用程式。其代理通常專門處理複雜的資料查詢和彙整工作。 |
|
框架名稱
框架總覽
應用實例範例
JADE (Java Agent Development Framework)
Java 程式,用於建構符合 FIPA 標準的代理系統。雖然這項技術是瞭解 LLM 時代前 MAS 核心概念的基礎,但較少用於現代生成式 AI 應用程式。
Mesa (Python)
用於以代理為基礎的模型建立與模擬的 Python 程式庫。擅長建立複雜系統模型,主要目標是瞭解許多簡單代理 (在網格或網路中) 的湧現行為。
Ray (Python)
開放原始碼的整合式運算框架,可擴充 AI 和 Python 應用程式。在 MAS 中,Ray 可將多個代理的工作負載分散至叢集,實現大規模平行處理,用於訓練或即時推論。
AutoGen (Microsoft)
開放原始碼框架,可建構含多個「可對話」的 LLM 代理的應用程式,讓這些代理相互溝通以解決工作。擅長自動處理複雜的工作流程,包括生成程式碼、執行程式碼及收集人類意見回饋。
CrewAI
這個框架旨在自動化調度管理角色扮演的自動化 AI 代理。可簡化協作代理團隊的建立作業 (例如「研究人員」、「作家」和「編輯」),讓團隊成員共同達成目標,且通常會與 LangChain 整合。
LangGraph
LangChain 的擴充功能,可讓您使用「圖表」結構,建構代理系統。這項功能非常適合建立週期性和有狀態的工作流程,讓代理能循環執行、自我修正,並根據程序目前的狀態做出決策,進而實現比簡單鏈結更複雜且穩健的互動。
LangChain
這項基礎的開放原始碼框架可建構採用 LLM 的應用程式。它提供龐大的整合與元件生態系統,可建立內容認知應用程式,從簡單的檢索增強生成 (RAG) 管道,到做為核心工具包,用於建構 CrewAI 和 LangGraph 等更進階框架中使用的個別代理。
LlamaIndex
開放原始碼資料框架,可將大型語言模型連結至自訂資料來源。雖然提供代理功能,但其核心優勢在於建構強大的 RAG 應用程式。其代理通常專門處理複雜的資料查詢和彙整工作。
實作多代理系統,從設計到部署需要完成多項重要步驟:
1. 定義問題和目標:清楚說明系統需要解決的問題,以及您希望整個系統和每個個別代理達成的目標。
2. 決定代理設計:
3. 模擬環境:建立代理將在其中運作的共用空間。包括功能、資源和規則。
4. 決定通訊方式:
5. 協調策略:制定方法,確保代理能順暢合作並解決衝突。這可能涉及一個主要控制代理、代理協商規則或自然協作。
6. 整合工具:讓代理存取執行任務所需的外部工具或程式,例如資料庫、其他服務或其他 AI 模型。
7. 程式碼:選擇程式設計語言 (例如 Python 或 Java) 和多代理框架 (例如 JADE、Mesa、Ray、AutoGen 或 CrewAI),建構代理並設定互動方式。
8. 測試及驗證:徹底測試系統,確保代理的行為符合預期、能順暢協同運作,並達成整體目標。由於代理可能出現非預期行為,這項工作會更加困難。
9. 部署及監控:將系統部署至合適的基礎架構,並設定監控機制,追蹤系統運作狀況、找出問題,確保系統持續正常運作。
Google Cloud 提供強大且可擴充的基礎架構,是開發、部署及管理多代理系統的理想平台。全套服務相當完整,可支援 MAS 中的各種元件和互動:
開發人員可運用這些 Google Cloud 服務,建構強大、可擴充的智慧型多代理系統,打造精密的 AI 應用程式,解決全球一些最複雜的難題。