AI 代理(AI Agent),代替人類處理一連串的動作以完成目標(目標導向),稱之為AI代理,也有人把它稱為智能體,但智能體這個詞更抽象些,因此我還是習慣叫做AI代理。
讓我們先回想一下,目前多數在使用生成式 AI 應用時,通常操作上是人類給予一個 Prompt ,接著 LLM 模型生成回應,然後如果我們不滿意就會再持續給予 Prompt,然後 LLM 模型再生成修正後的回應,持續經過幾輪之後,直到我們得到一個滿意的生成式內容。
相較於上述的流程,AI Agent 是以模擬更趨近人類的行為的一種概念,以任務目標為導向。有了具體目標,實行目標的過程是自動決策的,經由分析建立實現這個目標的計劃,將具體的實現步驟拆解成小型的子任務,依計劃展開工作流程(Workflow),整個工作流程結束後便表示任務已完成。
AI Agent 與 Function Calling 的關係
AI Agent 在執行過程中,對於外部系統連結、取得延伸資料(例如RAG)等需求,同樣依賴工具來實現,因此在設計 AI Agent 時往往也伴隨著 Function Calling 的機制,讓 AI Agent 具有更強大的能力。
AI Agent 與 LLM 模型的關係
AI Agent 以任務目標為導向,依賴思考的過程拆解目標任務,生成工作流程計劃,而這時候的思考靠的就是 LLM 模型來實現。
行動辦公助理
一個行動辦公助理,掛載以下工具
行事曆工具
客戶資料查詢工具
發送電子郵件通知工具
會議安排
User : 幫我安排明天的工作日程,與李小姐電話會議 1 小時。
AI Agent : 好的,已為你安排在明天下午2點到3點,與李小姐電話會議 1 小時。
分析:AI Agent 根據高層次任務「幫我安排明天的工作日程,與李小姐電話會議 1 小時」,自動調用行事曆工具取得明天的行程資料。接著進一步根據行程資料安排最合適時間,進行會議安排。
通知發送
User : OK,寄個電話會議通知給李小姐
AI Agent : 好的,已為您發送電子郵件通知。
分析:AI Agent 根據「聯絡李小姐並發送會議邀請」的需求,自動調用客戶資料查詢工具取得李小姐連絡資訊。接著調用郵件發送工具,將會議邀發送給李小姐,並通知你邀請已寄出。
根據上述的 AI Agent場景,首先需要 LLM 模型(還不能太笨的),能具體進行任務分析,接著需要設計周圍的工具(Function Calling),此外連結對話需要具有記憶模組,以實現上下文關係性。因此 AI Agent 組成元素便如下圖所示的概念
(來源:https://lilianweng.github.io/posts/2023-06-23-agent/ )
相較於前面文章談到的 LLM 應用,包含結合 Plugins ,本篇談的 AI Agent 算是比較新的概念,而各種對於 AI Agent 的定義其實滿多樣的,因此本篇文章我試圖用比較簡單的方式來勾勒我對 AI Agent 的理解,並搭配圖解及場景案例說明,希望能將比較抽象化的 AI Agent 概念分享給大家。而 AI Agent 的設計有著不同的架構方式,從簡單的單一個 AI Agent 到複雜的 Multi AI Agent 協作,在接下來的文章裡,我會使用 Semantic Kernel 來示範關於 AI Agent 的實作。
終於有看到AI Agent 與 Function Calling
Ian大, 能借我引用在Copilot Studio的介紹嗎?
沒問題