Skip to the content.

前言

歡迎來到「代理設計模式:建構智慧系統的實踐指南」。當我們縱觀現代人工智慧的前景時,我們看到從簡單的反應性程序到複雜的自主實體的明顯演變,這些實體能夠理解上下文、做出決策並與環境和其他系統動態互動。這些是智慧代理及其組成的代理系統。

強大的大型語言模型(LLM)的出現為理解和生成文字和媒體等類人內容提供了前所未有的能力,成為許多此類代理的認知引擎。然而,將這些功能編排到能夠可靠地實現複雜目標的系統中需要的不僅僅是一個強大的模型。它需要結構、設計和深思熟慮的方法來了解代理如何感知、計劃、行動和互動。

將建構智慧系統視為在畫布上創造複雜的藝術品或工程作品。該畫布不是空白的視覺空間,而是為代理存在和操作提供環境和工具的底層基礎設施和框架。它是您建立智慧應用程式、管理狀態、通訊、工具存取和邏輯流的基礎。

在這個代理畫布上有效地構建需要的不僅僅是將組件組合在一起。它需要了解經過驗證的技術 - 模式 - 解決設計和實施代理行為時的常見挑戰。就像架構模式指導建築物的建造或設計模式結構軟體一樣,代理設計模式為您在選擇的畫布上實現智慧代理時遇到的重複出現的問題提供了可重用的解決方案。

什麼是代理系統?

從本質上講,代理系統是一個計算實體,旨在感知其環境(數位環境和潛在的物理環境),根據這些感知和一組預先定義或學習的目標做出明智的決策,並自主執行操作以實現這些目標。與遵循嚴格的分步指令的傳統軟體不同,代理表現出一定程度的靈活性和主動性。

想像一下,您需要一個系統來管理客戶查詢。傳統系統可能遵循固定的腳本。然而,代理系統可以感知客戶查詢的細微差別,存取知識庫,與其他內部系統(如訂單管理)交互,可能提出澄清問題,並主動解決問題,甚至可能預測未來的需求。這些代理在應用程式基礎架構的畫布上運行,利用可用的服務和資料。

代理系統通常具有諸如「自主性」等特徵,允許它們在沒有持續人類監督的情況下運作; 主動性,為實現目標採取行動; 反應性,有效地應對環境的變化。他們從根本上以目標為導向,不斷地朝著目標努力。一項關鍵功能是工具使用,使他們能夠與外部 API、資料庫或服務進行互動 - 有效地超越其直接畫布。它們擁有記憶,在互動過程中保留訊息,並且可以與使用者、其他系統甚至在相同或連接的畫布上運行的其他代理進行通訊

有效地實現這些特性會帶來極大的複雜性。代理如何在畫布上的多個步驟中維護狀態?它如何決定“何時”和“如何”使用工具?如何管理不同代理之間的通訊?如何在系統中建立彈性來處理意外結果或錯誤?

為什麼設計模式對代理開發很重要

這種複雜性正是代理設計模式不可或缺的原因。它們不是嚴格的規則,而是經過考驗的模板或藍圖,為代理領域的標準設計和實施挑戰提供了經過驗證的方法。透過認識和應用這些設計模式,您可以獲得增強在畫布上建立的代理的結構、可維護性、可靠性和效率的解決方案。

使用設計模式可以幫助您避免為管理會話流程、整合外部功能或協調多個代理操作等任務重新設計基本解決方案。它們提供了一種通用的語言和結構,使您的代理的邏輯更加清晰,並且更易於其他人(以及將來的您自己)理解和維護。實現為錯誤處理或狀態管理而設計的模式直接有助於建立更健全和可靠的系統。利用這些已建立的方法可以加速您的開發流程,使您能夠專注於應用程式的獨特方面,而不是代理行為的基本機制。

本書提取了 21 個關鍵設計模式,它們代表了在各種技術畫布上建立複雜代理的基本構建塊和技術。理解和應用這些模式將顯著提高您有效設計和實施智慧系統的能力。

本書概覽與使用方式

這本書《代理設計模式:建構智慧系統的實踐指南》旨在成為一本實用且易於理解的資源。它的主要重點是清楚地解釋每個代理模式並提供具體的、可運行的程式碼範例來演示其實現。在 21 個專門章節中,我們將探索各種設計模式,從建立順序操作(提示鏈)和外部互動(工具使用)等基本概念到協作工作(多代理協作)和自我改進(自我糾正)等更高級的主題。

本書按章組織,每一章都深入研究一個單一的代理模式。在每一章中,您都會發現:

雖然各章是按順序逐步建立概念的,但您可以隨意使用本書作為參考,跳到解決您在自己的代理開發專案中面臨的特定挑戰的章節。附錄全面介紹了先進的提示技術、在現實環境中應用人工智慧代理的原則,以及基本代理框架的概述。為了補充這一點,還包括實用的線上教程,提供有關使用 AgentSpace 等特定平台和命令列介面建立代理的逐步指導。貫穿始終的重點是實際應用;我們強烈鼓勵您運行程式碼範例,進行試驗,並調整它們以在您選擇的畫布上建立您自己的智慧系統。

我聽到的一個很好的問題是,「人工智慧變化如此之快,為什麼要寫一本可能很快就會過時的書?」我的動機實際上是相反的。正是因為事情發展得如此之快,我們需要退後一步,找出正在鞏固的基本原則。 檢索增強生成(RAG)、反思、路由、記憶體等模式以及我討論的其他模式正在成為基本構建塊。本書邀請人們反思這些核心思想,它們為我們提供了發展所需的基礎。人類需要對基礎模式進行反思

所使用框架簡介

為了為我們的程式碼範例提供有形的「畫布」(另請參見附錄),我們將主要利用三個著名的代理開發框架。 LangChain 及其有狀態擴展 LangGraph 提供了一種將語言模型和其他元件連結在一起的靈活方法,為建立複雜的序列和操作圖提供了強大的畫布。 Crew AI 提供了一個專門為編排多個 AI 代理、角色和任務而設計的結構化框架,充當特別適合協作代理系統的畫布。 Google 代理 開發工具包 (Google ADK) 提供用於建置、評估和部署代理的工具和元件,提供另一個有價值的畫布,通常與 Google 的 AI 基礎設施整合。

這些框架代表了代理開發畫布的不同方面,每個方面都有其優勢。透過展示這些工具的範例,您將更廣泛地了解如何應用這些模式,無論您為代理系統選擇何種特定技術環境。這些範例旨在清楚說明模式的核心邏輯及其在框架畫布上的實現,並專注於清晰度和實用性。

讀完本書後,您不僅將了解 21 種基本代理模式背後的基本概念,還將掌握有效應用它們的實踐知識和程式碼範例,使您能夠在您選擇的開發畫布上建立更智慧、更強大、更自治的系統。讓我們開始這個實踐之旅吧!