博客 / 詳情

返回

多智能體設計模式和智能體框架,你會了麼?

一、新聞

先播放一條最新新聞,通義團隊官宣開源了兩個智能體Alias-AgentData-Juicer Agent

Alias-Agent提供了RaAct,Planner,DeepResearch三種模式,以實現靈活的任務執行

DataJuicer 智能體是一個數據專員,由數據處理智能體,代碼開發智能體,MCP 智能體,數據分析與可視化智能體,問答智能體五個智能體組成。



看到這裏已經相當炸裂了!可能很多夥伴對智能體(Agent)的範式不熟悉,還不理解ReAct、Planner、反思叭叭這些名詞。那你們就來對了地方,我用最容易理解的方式帶大家一起看下智能體內部是什麼樣子的。

在這裏插入圖片描述



產品化的智能體由多Agent,反思,計劃,推理與行動,記憶,RAG,工具,MCP組成的。首先聊下“Multi-Agent”,它非常好玩!



二、Multi-Agent 的7種設計模式

要讓AI代替人工作,現階段的單體智能體(僅通過系統提示詞賦能的LLM)是很難實現的。我們很快意識到,要構建高效的系統,需要多個專業化智能體協同工作、自主組織。為實現這一目標,AI 智能體領域已涌現出多種架構模式。多個智能體組成實現的,也就是Multi-Agent,發展到現在有7種實現方式。

1. 工作流模式

在這裏插入圖片描述

在《Agentic Design Patterns》中叫Prompt Chaining,每個智能體都逐步地完成輸出,比如一個生成代碼,另一個審核代碼,第三個部署代碼。每一步的輸出作為下一步的輸入。這種信息傳遞建立了依賴鏈,前序操作的上下文和結果會引導後續處理,使 LLM 能夠在前一步基礎上不斷完善理解,逐步逼近目標解。

他非常適合應用在工作流自動化、ETL和多步驟推理pipeline場景。



2. 路由模式

在這裏插入圖片描述

路由模式為智能體的操作框架引入了條件邏輯,使其從固定執行路徑轉變為動態評估標準,從一組可能的後續動作中進行選擇的模式,從而實現一套更靈活,並且具備上下文感知的。一個控制器智能體將任務分配給合適的專業智能體,這是上下文感知智能體路由的基礎,正如在MCP、A2A框架中所看到的那樣。

路由模式的實現有四種:

根據LLM路由,通過提示語言模型分析輸入,並輸出指示下一步或目標的標識符或指令。這裏有顯式路由和隱式路由兩類,顯示直接使用智能體的結構化輸出來確定將消息路由到哪個智能體。隱式路由是將下游智能體包裝成工具函數,這樣路由智能體就可以根據用户查詢決定調用哪個工具。

""" 偽代碼示例 """
router = ReActAgent(
    name="Router",
    sys_prompt="#角色#你是一個路由智能體。你的目標是將用户查詢路由到正確的後續任務,注意你不需要回答用户的問題。
                #任務#選擇正確的後續任務,如果任務太簡單或沒有合適的任務,則選擇 ``None``",
    model=ChatModel(
        model_name="gpt-4",
        api_key="",
        stream=False,
    )
)

根據Embedding路由,利用嵌入能力,將查詢路由到最相似的路徑上,適用於語義路由,即決策基於輸入的含義而非關鍵詞。

     """ 偽代碼示例 """
     def __init__(self):
        # 使用輕量級的句子編碼模型
        self.model = ChatModel( model_name="gpt-4", api_key="", stream=False, )
        
        # 定義不同的路由能力和對應的處理函數
        self.routes = {
            'code_help': {
                'description': '編程,代碼',
                'handler': self.handle_code_question
            },
            'general_chat': {
                'description': '聊天,日常對話',
                'handler': self.handle_general_chat
            }
        }
        
        # 預計算所有路由描述的嵌入向量
        self.route_embeddings = {}
        for route_name, route_info in self.routes.items():
            embedding = self.model.encode([route_info['description']])
            self.route_embeddings[route_name] = embedding
    
    def route_query(self, user_question):        
        # 1. 將用户問題轉換為嵌入向量
        question_embedding = self.model.encode([user_question])
        
        # 2. 使用餘弦計算與各個路由的相似度
        similarities = {}
        for route_name, route_embedding in self.route_embeddings.items():
            similarity = cosine_similarity(question_embedding, route_embedding)[0][0]
            similarities[route_name] = similarity
        
        # 3. 選擇相似度最高的路由
        best_route = max(similarities, key=similarities.get)
        best_score = similarities[best_route]
        
        # 4. 調用對應的處理器
        handler = self.routes[best_route]['handler']
        response = handler(user_question)
        
        return {
            'route': best_route,
            'confidence': best_score,
            'response': response
        }
        ....

根據定義規則路由, 硬編碼方式,根據關鍵詞、模式或結構化數據進行路由。此方法比 LLM 路由更快、更確定,但靈活性較低。

根據自訓小模型路由,採用如分類器等判別模型,在小規模標註數據集上專門訓練以實現路由任務。與向量嵌入方法類似,但其特點是監督微調過程,路由邏輯編碼在模型權重中。與 LLM 路由不同,決策組件不是推理時執行提示的生成模型,而是已微調的判別模型。LLM 可用於生成合成訓練數據,但不參與實時路由決策。



3. 並行模式

在這裏插入圖片描述

每個智能體負責處理不同的子任務,例如數據爬蟲、網絡檢索和摘要生成,它們的輸出會合併為一個單一結果。非常適合減少高吞吐量管道中的延遲。(如文檔解析或API編排)

4. 循環模式
在這裏插入圖片描述

智能體不斷優化自身輸出,直到達到預期質量。非常適合校對、報告生成或創意迭代,在這些場景中,系統會在確定最終結果前再次思考。反思就是在此模式上進行的優化。



5. 聚合模式

在這裏插入圖片描述

許多智能體生成部分結果,由主智能體將這些結果整合為一個最終輸出。因此,每個智能體都形成一個觀點,而一個Master智能體將這些觀點彙總成共識。在RAG的檢索融合、投票系統等場景中很常見。



6. 網絡模式

在這裏插入圖片描述

這裏沒有明確的層級結構,智能體之間可以自由交流,動態共享上下文。用於模擬、多智能體遊戲以及需要自由形式行為的集體推理系統中。agentscope-samples ,模擬了9個智能體的狼人殺遊戲。



7. 層級模式

在這裏插入圖片描述

一個頂級規劃智能體,將子任務分配給工作智能體,跟蹤它們的進度,並做出最終決策。這和經理及其團隊的工作方式完全一樣(很多中間件的架構也是類似這種模式如Redis、ES、Nocas)。意圖識別就是採用此模式。



小節:

我們一直在思考的一件事,不是哪種模式看起來最酷,而是哪種模式能最大限度地減少智能體之間的摩擦。啓動10個智能體並稱之為一個團隊很容易。難的是設計溝通流程,以確保:沒有兩個智能體會做重複工作。每個智能體都知道何時行動何時等待,使這個系統作為一個整體,比其任何單個部分都更智能。為此我們遵循 building-effective-agents 設計。



三、Multi-Agent 框架

多智能體模式將人工智能工作流構建為一個智能體團隊,它們相互協作,每個智能體都有明確的角色。每個智能體能夠感知輸入、進行推理(通過思維鏈)並執行操作以完成子任務。每個智能體通常都配置有特定角色,並且只能訪問該角色所需的工具或信息。例如,PM AGent負責需求判斷是否需要其他智能體參與,若需要技術決策則聯動Tech lead agent。智能體將循環進行思考(“思考……”)和行動(“行動……”),直到完成其工作部分的任務。如下圖

在這裏插入圖片描述



以上簡單介紹了多智能體的設計模式,那麼當下是不是已經有了成熟的架構供我們使用呢?答案是肯定的!



1.AutoGPT: Github 180k Star

2.Dify: Github 118k Star

3.AutoGen: Github 51.4k Star

4.CrewAI: Github 40.1k Star

5.LangGraph: Github 20.6k Star

在這裏插入圖片描述



為什麼需要使用Agent框架?

只要“問題不可完全窮舉、要跨多系統查證、並且需要在對話中澄清、協商、決策”,就更應該用 Agent 框架,而不是純 Workflow。

純 Workflow 的“天花板”

Workflow 在對話中的“澄清—再決策—再行動” 並不天然友好,需要把每一步提問、回答、重試都畫成節點,複雜而脆弱。

場景:用户發起:“我的包裹還沒到,怎麼辦?”

通過Workflow創建如下智能體:(先不期待GPT-6 會自主思考的智能體)

意圖識別智能體:識別用户訴求(查詢進度/催促/投訴/報損/退貨等)

物流狀態智能體:實時拉取承運商狀態,判斷包裹位置、異常

政策規則智能體:查詢當前時段政策(節假日、大促、平日),判斷是否特殊處理

用户畫像智能體:判斷用户等級、歷史行為、是否會員

異常檢測智能體:分析是否有報損、拒收、欺詐等信號

澄清與補充智能體:信息不全時自動向用户提問,補齊決策所需信息

解決方案生成智能體:綜合所有智能體結果,輸出最優處理方案(比如:建議等待/補發/賠償/升級處理/轉人工等)

智能體數量✖️物流狀態✖️用户等級✖️物流政策....你的分支會爆炸。所以需要用Dify這類的可以支持動態決策,動態推理和澄清的智能體框架。



Agent 框架解決的核心問題

以 AutoGen、CrewAI 這類 Agent 框架為例,它們把“在對話裏動態規劃與調用工具”作為第一性能力:

場景: 用户説“我10.1買的手機現在還沒到,給我退貨!另外,你們的運費險的保賬期是多久?”

一個合格的客服 Agent 團隊會做什麼?

沒有路由決策,首先會動態匹配所有Query,對Query進行改寫成“查詢用户的訂單”,“用户想要退貨”,“運費險的保賬範圍和條款”。

1.意圖識別 + 澄清

◦ Planner Agent:拆出多意圖(物流異常、退貨、計費異常、運費險條款),先問關鍵(訂單號、地址)。

2.跨系統取證

◦ OMS/物流工具:查軌跡與 SLA;

◦ 計費/支付工具:核對重複扣款交易;

◦ CRM:看是否 Plus、是否有歷史補償記錄;

◦保庫:查詢運費險

3.政策推理與合規

Policy Agent:套用“假期延誤 + Plus + 運費險”的組合條款,評估可給的補償區間、是否觸發風控人工複核。

這些動作裏,很多步驟無法事先“畫”成固定分支,需要在對話上下文裏做決策、需要跨工具動態組合、需要“問一句 → 查一下 → 再決定”, 這正是 Agent 的強項。



結尾:

以上是對多智能體的總結,你會了嗎?

user avatar u_13717764 頭像 u_15690955 頭像 u_16213656 頭像 mangrandedanche 頭像 fabarta 頭像 u_16213373 頭像 u_14256 頭像
7 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.