# 第二堂課: AI Agent ## 1. AI Agent 的核心概念 - **本課程定義**: - **傳統AI**: 人類給予**明確指令**,AI 一個口令一個動作。 - **AI Agent**: 人類只給予**最終目標**,AI 需自行思考、規劃、並執行一系列**多步驟**的行動來達成目標。 - **核心運作框架**: 1. **目標 (Goal)**: 由人類設定。 2. **觀察 (Observation)**: Agent 感知當前環境的狀態。 3. **行動 (Action)**: Agent 根據目標與觀察,決定要採取的行動。 4. **環境改變**: 行動會影響環境,產生新的狀態。 5. Agent 觀察到新的狀態,再次決定行動,此循環持續直到目標達成。 - **與傳統強化學習 (RL) 的區別**: - **RL Agent (如 AlphaGo)**: - 需要為**每一個特定任務**單獨訓練一個專門的模型。 - 目標需被轉換為量化的 **Reward**。 - **LLM-based Agent (本課焦點)**: - 使用一個**通用的、預訓練好的大型語言模型 (LLM)** 作為 Agent 的大腦。 - **目標**和**觀察**皆可用自然語言(文字)或圖片來描述。 - **行動**由 LLM 生成的文字來決定。 - 從 LLM 的角度看,這仍是其核心能力「**文字接龍**」的延伸,是一種**應用**而非全新技術。 ## 2. AI Agent 的關鍵能力 (三大面向) 這部分探討如何讓 LLM 作為 Agent 能運作得更順利,所有方法**皆不涉及重新訓練模型參數**。 ### 第一面向:從經驗中學習 (記憶 Memory) - **挑戰**: 若將所有過去的互動經驗都當作輸入,序列會過長,導致 AI Agent 像得了「**超憶症**」,被無關緊要的細節淹沒而無法做決策。 - **解決方案:建立記憶系統** (類似 RAG 的概念) - **Memory**: 一個長期記憶庫,儲存過去的經驗。 - **Write 模組**: 判斷哪些重要資訊才需要被寫入長期記憶。可以讓 Agent 自問:「這件事重要到該被記下來嗎?」 - **Read 模組**: 當需要決策時,從記憶庫中**檢索 (Retrieve)** 出與當前情境最相關的少數經驗。 - **Reflection (反思) 模組**: 對記憶進行更高層次的抽象、整理與歸納,產生新的見解或建立知識圖譜 (Knowledge Graph),幫助 Read 模組更有效地檢索。 - **重要發現**: - **正面回饋 > 負面回饋**: 與其告訴模型「不要做什麼」,不如直接給予「該怎麼做」的成功範例,效果更好。 - **實例**: ChatGPT 的個人化記憶功能,會儲存用戶的特定資訊,並在後續對話中應用。 ### 第二面向:使用工具 (Tools / Function Calling) - **概念**: Agent 可以呼叫外部工具(函式)來完成自身能力範圍外的事,而無需了解工具的內部原理。 - **常用工具**: - **搜尋引擎** (即 **RAG** 技術) - **程式碼直譯器** - **其他的 AI 模型** (例如,文字模型呼叫圖像模型來理解圖片) - **運作方式 (通用方法)**: 1. **System Prompt**: 在 Prompt 中定義可用的工具、功能與使用格式。 2. **LLM 生成指令**: 當 LLM 判斷需要使用工具時,它會生成一段特殊格式的文字(如 `Tool: search("問題")`)。 3. **外部執行**: 開發者需建立一個機制,解析這段文字並真正執行對應的函式。 4. **結果回傳**: 將工具執行的結果(如搜尋到的資料)以特殊格式(如 `Output: ...`)回傳,加到對話歷史中。 5. LLM 根據回傳的結果,繼續生成最終答案。 - **挑戰與進階應用**: - **工具過多**: 將所有工具說明放入一個「工具庫」,讓 Agent 在需要時自行檢索最合適的工具來使用。 - **自創工具**: Agent 可以自己**編寫程式碼 (Function)**,並將寫好的函式存入工具庫中供未來使用。 - **工具的不可靠性**: - Agent **不應完全相信**工具的輸出(如 "披薩加膠水" 的例子)。 - LLM 會在自身的**內部知識**與工具提供的**外部知識**之間進行權衡。 - **說服 AI 的關鍵**: 外部知識與 AI 內部信念差距越小,越容易被相信。AI 也傾向於相信其他 AI 寫的、或格式更清晰、發布日期更新的文章。 ### 第三面向:制定計畫 (Planning) - **挑戰**: 許多任務無法一步到位,需要預先規劃。但環境是不可預測的,固定的計畫很容易失敗。 - **解決方案**: 1. **Plan and Execute**: 讓 LLM 先生成一個多步驟的計畫,然後再依計畫執行。 2. **Re-planning**: 在每一步行動後,觀察新狀態,並**重新評估與修改**後續的計畫。 - **進階規劃方法**: - **Tree Search (與環境互動)**: - **概念**: 嘗試多種可能的行動路徑,並根據結果找出最佳方案。 - **缺點**: 現實世界中很多行動是**不可逆**的(如訂了就不能退的披薩),試錯成本太高。 - **在「夢境」中規劃 (模擬)**: - **概念**: 將 Tree Search 的過程放在**腦內小劇場**中進行模擬。 - Agent 需要一個 **World Model** 來預測「如果我採取某行動,環境可能會如何變化」。 - LLM 可以自己扮演 World Model,在內心進行多種路徑的推演,找出最佳解後,才在現實世界中執行第一步。 - **與 Reasoning 的關聯**: - 具備 **Reasoning** 能力的模型(如 DeepSeek),其「腦內小劇場」的過程,本質上就非常類似於在進行規劃與模擬。 - **風險**: **過度思考 (Overthinking)**,Agent 可能會陷入無盡的思考而不敢行動,或過早放棄。