人與人最大的差距就是勇氣和執行力,也是唯一的差距
????????????????????????????????????????????????????????????????????????????????—— 25.4.16
一、Agent 相關工作
二、Agent 特點
核心特征:
????????1.專有場景(針對某個垂直領域)
????????2.保留記憶(以一個特定順序做一些特定任務,記憶當前任務的前后信息)
????????3.任務規劃(根據任務,制定計劃,把大任務拆分為小任務,分為多步進行)
????????4.使用工具(查找本地知識庫、調用API、執行代碼、操作頁面)
聯網搜索的RAG也可以看作是一種Agent(由模型自己判斷是否使用RAG可以看作是一種簡單的規劃)?
三、Agent之間協作
????????多個Agent之間互相合作/討論,進行解決一個問題;可以有多個Agent,不同的Agent負責不同板塊的功能,Agent之間合作的方式可以是串行的,也可以是并行的執行任務;不同的Agent可以是同一個大語言模型,只是傳入他們的提示詞不同
? ? ? ? Agent還可以與人、環境進行交互?
四、Agent應用示例
1.Agents模仿人類社群
核心設計理念:
? ? ? ? 用Agents模仿人類社群,設置一個虛擬場景,在場景中放置一些人物,以提示詞的方式給人物一些背景設定;將這些所謂的虛擬人物扔在我們設置的這個虛擬場景中,讓人物在這個虛擬場景內做一定的任務,不同的人物可以看作是不同的Agent,不同人物通過環境的改變,修改提示詞,然后由大語言模型執行對應的動作
????????項目旨在借助生成式智能體技術,創造能模擬可信人類行為的計算智能體,構建虛擬人類社群。通過賦予智能體記憶、反思和計劃能力,使其在虛擬環境中的互動和行為更接近真實人類,提升人工智能交互的真實感和沉浸感。
核心技術與方法:
????????智能體模型整合了記憶流、反思機制和計劃生成功能。記憶流記錄智能體經歷,反思機制將短期記憶整理為長期記憶并形成見解,計劃生成功能依據記憶和目標制定行動。大語言模型(LLMs)是智能體的決策和對話基礎,通過特定提示工程,讓智能體基于自身知識和記憶回答問題、規劃行動。對智能體角色進行明確分工,不同角色專注特定領域任務,提升大模型輸出質量;
項目地址:https://github.com/joonspk-research/generative_agents
2.AutoGPT:幫你在線完成任務
工作原理:
????????用戶輸入目標后,AutoGPT 將其分解為子任務,為每個子任務生成提示并執行。在執行過程中,不斷根據結果反饋調整策略,直至完成目標。期間會利用自身的短期和長期記憶(借助向量數據庫實現)來存儲和調用信息,還可通過插件訪問網絡和其他應用獲取實時數據 。
功能特性:
????????高度自主性:能根據設定目標自動規劃執行步驟,在任務執行中動態調整行為,無需外部干預。例如設定 “制定一個一周的健身計劃”,它可自主收集信息、規劃每天的鍛煉內容和時間安排。
????????任務分解與執行:將復雜任務拆解為多個子任務,逐個執行并根據反饋優化操作,以此處理多步驟復雜任務。如生成一份市場調研報告時,會依次完成確定調研主題、收集數據、分析數據、撰寫報告等子任務 。
????????自我反饋優化:執行任務時評估當前結果,據此調整后續行動,逐步提升任務處理表現,使任務執行更高效準確。
????????多任務處理能力:支持同時處理多個獨立任務,具備良好的上下文切換能力。比如同時進行文案創作和數據分析任務。
????????自然語言交互:支持自然語言輸入,用戶可用日常語言描述需求,它能理解并轉化為操作指令。
????????外部交互拓展:可通過 API 與外部系統交互,獲取數據、執行網絡查詢、調用其他應用等,拓展應用場景。例如訪問互聯網獲取實時信息,調用繪圖工具生成圖表 。
項目地址:https://github.com/Significant-Gravitas/AutoGPT
3.HuggingGPT:由agent根據任務決定去HuggingFace上使用哪個模型
工作原理:
????????利用大型語言模型(LLM)連接機器學習社區(如 HuggingFace)中各種 AI 模型,以解決復雜 AI 任務的系統。它以語言為通用接口,LLM 作為控制器,管理眾多專家模型協同工作。?
工作流程:
????????任務規劃:接收到用戶請求后,ChatGPT 等 LLM 解析請求,將其分解為多個子任務,并規劃任務順序和依賴關系。例如,若用戶請求 “分析一張圖片中不同物體,并生成一段描述”,ChatGPT 會將其分解為目標檢測、圖像描述等子任務,并確定目標檢測需先執行,因為圖像描述依賴檢測出的物體信息。
????????模型選擇:針對每個子任務,ChatGPT 根據 HuggingFace 中模型的功能描述,選擇合適的專家模型。例如,在目標檢測任務中,可能選擇在該領域表現出色的 YOLO 系列模型。
????????任務執行:被選定的專家模型在推理端點上執行分配到的任務,完成后將執行信息和推理結果記錄回 LLM。比如圖像描述模型完成對圖片的描述后,將結果反饋給 ChatGPT。
????????響應生成:ChatGPT 匯總執行過程日志和推理結果,整合成完整答案返回給用戶。例如,將目標檢測出的物體信息和圖像描述結合,形成符合用戶需求的回復。
項目地址:https://github.com/microsoft/JARVIS
4.MetaGPT:多agent協作代碼開發
核心技術與工作原理:
????????基于大語言模型(LLM)構建,模擬虛擬軟件團隊協作。框架包含產品經理、架構師、項目經理、工程師、質量工程師等多種角色智能體,每個智能體有各自的 LLM、觀察、思考、行動和記憶能力。借助標準作業程序(SOP),智能體明確分工與協作流程,保障系統有序高效運作。例如,接到軟件開發需求,產品經理智能體分析需求、撰寫產品需求文檔,架構師據此設計系統架構,工程師依架構編寫代碼 。
功能特點:
????????自然語言編程:允許用戶用自然語言描述任務,降低編程門檻,非專業人員也能實現軟件開發或數據處理。比如輸入 “開發一個簡單的待辦事項管理小程序”,MetaGPT 能理解并生成相應代碼。
????????多智能體協作:各智能體協同工作,依據 SOP 高效溝通,共同完成復雜任務,提高工作效率和準確性。在大型項目開發中,不同角色智能體各司其職,緊密配合。
????????數據解釋器:可自動解析自然語言指令,生成代碼或執行數據分析任務。用戶輸入 “分析銷售數據并生成趨勢圖”,它能快速處理 。
項目地址:https://github.com/geekan/MetaGPT/tree/main
5.Voyager:用agent學習玩Minecraft游戲
核心技術與運行機制自動課程生成:
????????設定 “盡可能發現更多不同事物” 為總體目標,由 GPT-4 基于游戲進程和智能體狀態生成自動課程。課程難度循序漸進,引導 Voyager 探索游戲世界。比如在游戲前期,會生成像 “收集木材”“建造簡單房屋” 這類基礎任務;隨著游戲進展,任務會逐漸變為 “開采鉆石”“建造紅石機關” 等更具挑戰性的內容。
技能庫構建與檢索:
????????Voyager 使用流行的 Javascript Minecraft 操作庫(Mineflayer),讓 GPT-4 根據任務需求生成游戲操作代碼,如 “combatZombie”(對抗僵尸)。每次 GPT-4 生成并驗證新技能代碼后,先用 GPT-3.5 為代碼生成詳細注釋,再將注釋做 Embedding 保存到向量數據庫 Chroma 中,形成不斷增長的技能庫。當接到新任務時,先由 GPT-3.5 根據游戲環境給出任務操作說明,再將其做 Embedding 去技能庫檢索前 5 個最匹配的操作代碼,最后由 GPT-4 決定是調用已有代碼還是編寫新代碼,以盡可能重用已有技能。
迭代提示機制:
????????執行生成的程序后,從游戲模擬中獲取觀察結果(如玩家的生命值、饑餓值、物品庫存、周圍環境信息等)和代碼執行錯誤信息;將這些反饋合并到 GPT-4 的提示中,進行新一輪代碼優化;不斷重復該過程,直到自我驗證模塊確認任務完成,此時將程序提交到技能庫。比如在嘗試制作鉆石鎬時,若代碼執行提示 “缺少鉆石材料”,則反饋給 GPT-4,讓其調整代碼,先去獲取鉆石。
項目地址:https://github.com/MineDojo/Voyager/tree/main
6.Character-LLM agent做角色扮演
可訓練角色扮演 Agent:區別于普通提示驅動的代理,Character-LLM 通過訓練學習特定角色的經歷、特征和情感,能以特定人物(如貝多芬、凱撒等)的身份進行對話,無需額外提示或參考文檔。
經驗重建數據生成:提出經驗重建(Experience Reconstruction)方法,生成詳細多樣的角色經驗數據用于訓練,涵蓋角色生活場景、對話等內容,讓模型學習角色的行為模式和知識體系。
項目地址:https://github.com/choosewhatulike/trainable-agents/
7.ChatDB Agent與數據庫交互
項目地址:https://github.com/huchenxucs/ChatDB
Character-LLM 是一個利用大語言模型(LLM)實現人類行為模擬的角色扮演項目,其核心在于讓 AI 模型基于人的記憶、反思和行動來扮演角色,在研究和應用領域有獨特價值。
項目核心思想與目標:
????????受到斯坦福小鎮的啟發,該項目旨在解決簡單的 LLM API 提示詞無法滿足涉及人類深層次思考和體驗的問題。它通過構建一套架構,讓 AI 模型模擬人類體驗時間、感受情感并記住與他人的互動,以此訓練角色代理(agent),進而實現更真實、深入的角色扮演。
項目實現流程
????????profile 收集:主要從維基百科等渠道收集人物資料,梳理出人物在特定時間段內發生的事件,為后續的角色塑造提供基礎信息。例如收集貝多芬的生平事跡,包括他師從哪些老師、何時發表第一部作品等。
????????場景提取:從給定的經驗描述中抽取多樣化、高質量的場景,涵蓋聊天、辯論、討論、演講等類型。場景描述簡潔且注重背景,像描述貝多芬與老師學習音樂的場景,會突出時間、地點和人物關系,略去細節 。
????????對話抽取:結合人物背景信息和提取的場景,借助大模型模擬編劇的角色,生成豐富的對話內容。在生成對話時,要求模型忠實于人物的愿望和要求,充分考慮角色的情感和思維能力,想象角色在特定場景下的言行。比如模擬貝多芬在獲得資助時與資助者的對話。
????????保護性經驗生成:為減少角色的幻覺現象,當遇到超出角色能力范圍的問題時,模型學會表示缺乏相關知識。通過這種方式,讓角色在面對特定問題時的表現更符合設定,避免出現不符合角色設定的回答。