動手學Agent:Agent設計模式——構建有效Agent的7種模型

Agent本身的定義也不是絕對的,從LLM到最高等級的Agent,中間是有大量灰度地帶的,在Anthropic看來,Agent可以以多種方式定義,有些人將完全自主系統定義為Agent,而另一些團隊則將預定義的工作流程定義為Agent。在Anthropic,所有這些變種都定義為Agent系統(Agentic System)。

Workflow和Agents的區別:

  • Workflow:LLMs和工具通過預定義的代碼路徑編排的系統,也就是用戶輸入后,它的執行路徑,是能夠提前預料的,是有人工構建的,像基于Coze、Dify、n8n等平臺搭建的應用,絕大多數屬于這一類
  • Agents:LLMs動態指導自己的流程和工具使用,典型的,比如Cursor、Windsur、Claude Code這種編程智能體,你發送指令后,后續它會先向你做一些澄清、幫你開始編寫一份技術文檔還是調用MCP工具來獲取一些API使用說明等,沒人能確切地知道其執行路徑

為什么上一篇介紹完“正統”的Agent設計模式后,這一篇還要介紹一些Workflow呢?這是因為當前落地的絕大多數Agent仍以Workflow形式為主,它有三大顯著的優勢:

  • 上手很快,門檻比較低,即使沒有學過編程,也能拖拽出一個可以用的應用
  • 不同場景有自己固定的成熟流程,使用Workflow是將這些流程融入AI非常低成本的方式
  • 試錯成本低,熟悉基本概念后,對于一個不太復雜的場景,一兩天就能用Coze、Dify之類的搭建出看起來像樣的應用,而構建高度自主化的Agent,則周期長、成本高

Anthropic在原文的多個地方強調尋找盡可能簡單的解決方案,這也確實是一個非常務實的建議,畢竟,在沒有清晰實現路徑的情況下,小步快跑才是更優選擇。

1 何時該使用與不該使用Agents

使用LLMs構建應用程序時,建議盡可能找簡單的解決方案,僅在需要時增加復雜性。這意味著可能根本不需要構建Agent。Agent系統通常以高延遲和高成本為代價來獲得更好的任務性能。

當需要更高的復雜性時,Workflow為定義明確的任務提供可預測性和一致性,當需要大規模的靈活性和模型驅動的決策時,Agents是更好的選擇。但是,對于大多數應用,使用檢索和In-Context樣例優化單個LLM就足夠了。

2 代理系統的常見模式

這部分從基礎構建塊——增強LLM開始,逐步增加復雜性,從簡單組合的工作流到自主代理。

2.1 增強LLM

通過檢索、工具、記憶等模塊來增強LLM

img
在這里插入圖片描述

2.2 鏈式調用

這種模式由一系列Prompt + LLM串聯成鏈式結構組成,鏈可以將任務分解為一系列步驟,每個LLM調用都會處理前一個調用的輸出,可以對任何中間步驟添加檢查(下圖中的Gate)

img

適用模式的樣例:

  • 生成營銷副本,然后將其翻譯為不同的語言
  • 編寫文檔的大綱,檢查大綱是否滿足特定條件,然后根據大綱編寫文檔

2.3 路由模式

將輸入分類,然后將其定向到后續的任務。

對于有些輸入,優化一種類型的輸入可能會損害其他輸入的性能(蹺蹺板),這種情況適合使用這種模式。

img

適用這種模式的樣例:

  • 將不同類型的客戶服務查詢(一般問題、退款請求、技術支持)引導到不同的下游流程、提示和工具中
  • 將簡單/常見問題路由到較小的模型,將困難/不尋常的問題路由到更強大的模型,以優化成本和速度

2.4 并行化

這種模式適合同時處理多個任務,并以編程方式聚合其輸出。

img

當任務可以并行以提高速度時,或者需要多個視角或嘗試以更高的置信度結果時,這種方式比較有效。

對于有多個考慮因素的復雜任務,將每個考慮因素都由單獨的LLM處理時,通常效果會更好。

適用這種模式的樣例:

  • 聚合

    • 實施查詢護欄,其中一個模型實例處理用戶查詢,另一個檢查用戶輸入是否存在不當內容
    • 自動化評估,每個LLM調用評估模型在給定Prompt下性能的區別
  • 投票

    • 使用不同的Prompt檢查代碼是否存在漏洞
    • 評估給定的內容是否不合適,不同的Prompt評估不同的方面或者要求不同的投票閾值來平衡誤報和漏報

2.5 編排器-Worker

在這種模式下,中央LLM會動態分解任務,然后將其委派給worker LLMs,并合并結果。

這種Workflow適合無法預測所需子任務的復雜任務(例如,在編碼過程中,需要修改的文件數量和每個文件要修改的內容很可能依賴于任務)。

img

它和并行模式雖然在拓撲結構上類似,但主要的區別是靈活性——子任務不是預定義的,而是編排模塊根據特定輸入確定的。

適用這種模式的樣例:

  • 每次對多個文件進行復雜更改的編碼產品
  • 涉及從多個來源收集和分析信息以查找可能的相關信息的搜索任務

2.6 評估-優化模式

在這種工作流中,一個LLM調用負責生成,而另一個LLM調用在循環中提供評估和反饋。

img

當有明確的評估標準,并且迭代優化提供可衡量的價值時,此工作流特別有效,這種模式已經有自主Agent的雛形了,把Evaluator部分加上環境反饋,這基本上就跟上篇文章介紹的ReAct很像了。

適用這種模式有兩個判斷標準:

  • 反饋可以由人類清晰表述時,LLM的輸出根據反饋可以明顯得到改善
  • LLM可以提供這樣的反饋

這類似人類作家在制作精美的文檔時可能經歷的迭代協作過程。

適用這種模式的樣例:

  • 文學翻譯,其中有細微的差別,翻譯LLM最初可能無法捕獲到,但評估LLM可以提供有用的批評
  • 復雜的搜索任務,需要多輪搜索和分析以收集全面的信息,評估LLM可以決定是否需要進一步搜索

下面是使用Dify搭建的一個反思翻譯的流程,也就是吳恩達之前開源的反思翻譯項目的Dify實現:

img

下面是實際翻譯效果,從翻譯結果來看,反思翻譯質量明顯是高于初始翻譯的。

img

2.7 Agents

隨著 LLM 在關鍵能力(理解復雜輸入、參與推理和規劃、可靠地使用工具以及從錯誤中恢復)方面的成熟,人工智能正在生產中嶄露頭角。Agents通過人類用戶的命令或與人類用戶的互動討論開始工作。一旦任務明確,Agents就會獨立進行規劃和操作,并有可能返回人類獲取進一步的信息或判斷。在執行過程中,Agents從環境中獲取每一步的 “基本事實”(如工具調用結果或代碼執行情況)以評估其進度至關重要。然后,代理可以在檢查點或遇到阻礙時暫停,以獲得人工反饋。任務通常會在完成后終止,但通常也會包含停止條件(如迭代的最大次數)以保持控制。

代理可以處理復雜的任務,但它們的實現通常很簡單。它們通常只是基于環境反饋循環使用工具的 LLM。因此,清晰周到地設計工具集及其文檔至關重要。

img

何時使用Agents:agents通常用于難以或不可能預測所需步驟以及無法固定路徑進行硬編碼的開放問題。LLM可能會運行多個回合,并且用戶需要對其決策有一定程度的信任。Agents的自主性使得它成為可信環境中擴展任務的理想選擇。

agents的自主性意味著更高的成本,并且可能會使錯誤復雜化。建議在沙盒環境中進行廣泛測試,并使用適當的防護機制。

適用這種模式的樣例:

(例來自Anthropic)

  • 解決SWE-bench任務,該任務涉及根據任務描述對許多文件進行編輯
  • computer use參考實現,其中Claude使用計算機完成任務

img

3 模式的組合

上面這7種模式可以看作是原子模塊,可以根據實際情況修改和組合以適應不同場景。

和任何LLM功能一樣,成功的關鍵是衡量在實際場景中的效果,并要切記:只有在能夠明顯改善結果時才應考慮增加復雜性。

最后

選擇AI大模型就是選擇未來!最近兩年,大家都可以看到AI的發展有多快,我國超10億參數的大模型,在短短一年之內,已經超過了100個,現在還在不斷的發掘中,時代在瞬息萬變,我們又為何不給自己多一個選擇,多一個出路,多一個可能呢?

與其在傳統行業里停滯不前,不如嘗試一下新興行業,而AI大模型恰恰是這兩年的大風口,整體AI領域2025年預計缺口1000萬人,人才需求急為緊迫!

由于文章篇幅有限,在這里我就不一一向大家展示了,學習AI大模型是一項系統工程,需要時間和持續的努力。但隨著技術的發展和在線資源的豐富,零基礎的小白也有很好的機會逐步學習和掌握。

【2025最新】AI大模型全套學習籽料(可白嫖):LLM面試題+AI大模型學習路線+大模型PDF書籍+640套AI大模型報告等等,從入門到進階再到精通,超全面存下吧!

獲取方式:有需要的小伙伴,可以微信掃描下方CSDN官方認證二維碼免費領取【保證100%免費】
包括:AI大模型學習路線、LLM面試寶典、0基礎教學視頻、大模型PDF書籍/筆記、大模型實戰案例合集、AI產品經理合集等等

在這里插入圖片描述
大模型學習之路,道阻且長,但只要你堅持下去,一定會有收獲。本學習路線圖為你提供了學習大模型的全面指南,從入門到進階,涵蓋理論到應用。在這里插入圖片描述
L1階段:啟航篇|大語言模型的基礎認知與核心原理

L2階段:攻堅篇|高頻場景:RAG認知與項目實踐

L3階段:躍迀篇|Agent智能體架構設計

L4階段:精進篇|模型微調與私有化部署

L5階段:專題篇|特訓集:A2A與MCP綜合應用 追蹤行業熱點(全新升級板塊)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
AI大模型全套學習資料【獲取方式】

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/97858.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/97858.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/97858.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Windows 下 .venv 激活腳本深度定制:同時注入 PyTorch 調試日志與國內網絡加速通道——從“能跑”到“好調”的完整工程化方案

Windows 下 .venv 激活腳本深度定制:同時注入 PyTorch 調試日志與國內網絡加速通道 ——從“能跑”到“好調”的完整工程化方案 一、為什么非得改激活腳本? 重復勞動最耗時 每次打開終端都要敲四五行 set/export,人腦就是不可靠的剪貼板。 環…

[BX]和loop指令,debug和masm匯編編譯器對指令的不同處理,循環,大小寄存器的包含關系,操作數據長度與寄存器的關系,段前綴

[bx]是什么[bx]這個表達方式和[0]很像,他們倆的功能也很像。之前就提到了,[0]表示一個內存單元,他的偏移地址是0。從這邊我們可以引出內存單元的定義:要有內存單元的地址,要有內存單元的長度(類型&#xff…

域格YM310 X09移芯CAT1模組HTTPS連接服務器

HTTPS連接服務器 本文檔介紹了HTTPS連接服務器的大致流程&#xff0c;測試服務器為httpbin.org。 HTTPS連接服務器流程 創建證書文件 創建一個文件 ATFSCREATE<filename>參數&#xff1a;<filename> 文件名 寫入CA證書 ATFSWRITE<filename>,<mode&…

【ManiSkill】常見envs學習筆記

1. StackCube-v1 用于模擬機器人在桌面場景中將紅色立方體&#xff08;cubeA&#xff09;堆疊到綠色立方體&#xff08;cubeB&#xff09;上的操作。該任務強調精確抓取、放置和穩定性控制。成功條件包括紅色立方體穩定堆疊在綠色立方體上且不被機器人抓取。 參數 (Arguments…

Java 網絡編程全解析

前言&#xff1a;網絡編程的意義與價值 前言&#xff1a;網絡編程的意義與價值 在當今互聯網時代&#xff0c;網絡編程是軟件開發的核心技能之一。無論是桌面應用、移動應用還是企業級系統&#xff0c;幾乎都需要與網絡交互。Java 作為一門跨平臺的編程語言&#xff0c;提供了完…

HarmonyOS應用拉起系列(三):如何直接拉起騰訊/百度/高德地圖進行導航

在鴻蒙應用開發中&#xff0c;經常需要跳轉第三方地圖應用&#xff08;如 騰訊地圖、百度地圖、高德地圖&#xff09;進行導航。無論是出行類 App、物流類 App&#xff0c;還是線下活動類應用&#xff0c;都存在“跳轉地圖導航”的實際需求。寫完HarmonyOS應用拉起系列一和二后…

PCGrad解決多任務沖突

論文解讀&#xff1a;"Gradient Surgery for Multi-Task Learning" 1. 論文標題直譯 Gradient Surgery: 梯度手術for Multi-Task Learning: 應用于多任務學習 合在一起就是&#xff1a;為多任務學習量身定制的梯度手術。這個名字非常形象地概括了它的核心思想。 …

Nvidia顯卡架構解析與cuda應用生態淺析

文章目錄 0. Nvidia顯卡簡介 一、主要顯卡系列 二、主要GPU架構與代表產品 1.main 1.1 CUDA 13.0 的重大變化 1.2 V100 的硬件短板已顯現 1.3 這意味著什么? 1.4 寫在后面 彩蛋:V100 0. Nvidia顯卡簡介 一、主要顯卡系列 GeForce 系列(消費級) 用途:游戲、創作、日常圖形…

開發指南:使用 MQTTNet 庫構建 .Net 物聯網 MQTT 應用程序

一、背景介紹 隨著物聯網的興起&#xff0c;.Net 框架在構建物聯網應用程序方面變得越來越流行。微軟的 .Net Core 和 .Net 框架為開發人員提供了一組工具和庫&#xff0c;以構建可以在 Raspberry Pi、HummingBoard、BeagleBoard、Pine A64 等平臺上運行的物聯網應用程序。 MQT…

突破性能瓶頸:基于騰訊云EdgeOne的AI圖片生成器全球加速實踐

1. 項目背景與挑戰 1.1 開發背景 隨著AIGC技術爆發&#xff0c;我們團隊決定開發一款多模型支持的AI圖片生成器&#xff0c;主要解決以下痛點&#xff1a; 不同AI模型的參數規范不統一生成結果難以系統化管理缺乏企業級的安全水印方案全球用戶訪問延遲高&#xff0c;中國用戶…

一、Java 基礎入門:從 0 到 1 認識 Java(詳細筆記)

1.1 Java 語言簡介與發展歷程 Java 是一門面向對象的高級編程語言&#xff0c;以“跨平臺、安全、穩定”為核心特性&#xff0c;自誕生以來長期占據編程語言排行榜前列&#xff0c;廣泛應用于后端開發、移動端開發、大數據等領域。 1.1.1 起源與核心人物 起源背景&#xff1…

uniapp:根據目的地經緯度,名稱,喚起高德/百度地圖來導航,兼容App,H5,小程序

1、需要自行申請高德地圖的key,配置manifest.json 2、MapSelector選擇組件封裝 <template><view><u-action-sheet :list="mapList" v-model="show" @click="changeMap"></u-action-sheet></view> </template&…

我對 WPF 動搖時的選擇:.NET Framework 4.6.2+WPF+Islands+UWP+CompostionApi

目錄 NET Framework 4.6.2的最大亮點 為什么固守462不升級 WPF-開發體驗的巔峰 為什么對WPF動搖了 基于IslandsUWP的濾鏡嘗試 總結 NET Framework 4.6.2的最大亮點 安全性能大提升&#xff1a; 默認啟用TLS1.2協議&#xff0c;更安全&#xff0c;它為后續的版本提供了重…

SpringBoot大文件下載失敗解決方案

SpringBoot大文件下載失敗解決方案 后端以文件流方式給前端接收下載文件,文件過大時出現下載失敗的情況或者打開后提示文件損壞,實際是字節未完全讀取寫入。 針對大文件下載失敗的情況,以下是詳細的解決方案: 大文件下載失敗的主要原因 內存溢出:一次性加載大文件到內存…

torch.gather

torch.gather 介紹 torch.gather(input, dim, index, *, sparse_gradFalse, outNone) → Tensor 沿由 dim 指定的軸收集值。 對于三維張量&#xff0c;輸出按如下方式確定&#xff1a; out[i][j][k] input[index[i][j][k]][j][k] # 如果 dim 0 out[i][j][k] input[i][i…

Golang | http/server Gin框架簡述

http/server http指的是Golang中的net/http包&#xff0c;這里用的是1.23.10。 概覽 http包的作用文檔里寫的很簡明&#xff1a;Package http provides HTTP client and server implementations. 主要是提供http的客戶端和服務端&#xff0c;也就是能作為客戶端發http請求&a…

Vision Transformer (ViT) :Transformer在computer vision領域的應用(三)

Experiment 上來的一段話就概括了整章的內容。 We evaluate the representation learning capabilities of ResNet, Vision Transformer (ViT), and the hybrid. 章節的一開頭就說明了,對比的模型就是 ResNet,CNN領域中的代碼模型。 ViT。 上一篇中提到的Hybrid模型,也就是…

5-12 WPS JS宏 Range數組規范性測試

Range()數組是JS宏中不缺少的組成部分,了解Range()數組的特性必不可少,下面我們一起測試一下各種Range()數組。 1.Range()數組特性 單元格區域:Range("a2:m2")與Range("a2","m2")的類型都是:Range/Object,功能都為單元格區域,功能…

uniapp微信小程序保存海報到手機相冊canvas

在uniapp中實現微信小程序保存海報到手機相冊&#xff0c;主要涉及Canvas繪制和圖片保存。以下是關鍵步驟和代碼示例&#xff1a; 一、關鍵代碼展示&#xff1a; 1. 模板配置&#xff1a;頁面展示該海報&#xff0c;可直接查看&#xff0c;也可下載保存到手機相冊&#xff0c;h…

glib2-2.62.5-7.ky10.x86_64.rpm怎么安裝?Kylin Linux RPM包安裝詳細步驟

一、準備工作 ?確認系統版本? 這個包是 ky10的&#xff08;也就是 openEuler 20.03 LTS SP3 或類似版本&#xff09;&#xff0c;而且是 ?x86_64 架構&#xff08;就是常見的64位電腦&#xff09;?。 你要先確認你的系統是不是這個版本&#xff0c;不然可能裝不上或者出問題…