想像一位廚師,最初只能依靠一本厚重的食譜,逐字逐行地按步驟烹飪;而隨著技術與經驗的累積,他終於能自由搭配食材,依據情境即興創作。
AI的演化過程,正像這位廚師的成長。
一開始的AI發展受限於算力不足,加上學術研究尚未如今日豐富。
那時的AI主要基於簡單的專家規則系統。隨著半導體技術的進步帶來算力提升,以及AI學術的突破,我們見證了從專家規則到機器學習的轉變。
機器學習通過解決特定領域的特徵值來建立模型,之後發展出模仿人類腦細胞神經元的深度學習,再到現在的生成式AI。
生成式AI的發展漸漸達到不僅能模擬人類思維,更在圖像、語音、文本等多領域展現卓越表現。 這些進步促使企業思考,是否能將部分重複性高、耗時的工作交由 AI 代理執行,進而催生出「Agent」的概念。(1)(2)
然而,要真正讓Agent能完成人類的繁瑣工作,關鍵在於如何透過軟體與生成式AI模型協同設計良好的溝通演算法。這也讓軟體工程的重要性日益凸顯。
軟體發展歷經了從簡單函式組成的系統,到將系統視為積木組合的物件導向方式,如今更進一步朝向如何將Agent概念整合到軟體基礎架構中。
實際上,我們可以透過在物件導向架構中融入生成式AI模型,賦予物件特定智能,使其演化成具有自主決策與感知能力的Agent。(3)
從函式到Agent:軟體工程的演化:
軟體工程的發展歷程與AI的演化有著驚人的相似性。
讓我們通過一個繪圖系統的例子來說明這一演化過程:
1. 函式式程式設計階段
在最初的階段,程式主要是一步一步執行的指令集:
// 函式繪圖程式
函式 畫矩形(x座標, y座標, 寬度, 高度, 顏色)
在畫布上從(x座標, y座標)
開始畫一個寬度為「寬度」高度為「高度」顏色為「顏色」的矩形
回傳 完成
// 主程式
函式 主程式()
取得用戶請求
如果 用戶請求.形狀 等於 "矩形" 則
畫矩形(
用戶請求.x座標,
用戶請求.y座標,
用戶請求.寬度,
用戶請求.高度,
用戶請求.顏色)
結束如果
這種方式就像是按照食譜一步步做菜,簡單直接,但缺乏靈活性。當系統變得複雜時,就像是一本太厚的食譜,很難找到每個步驟之間的關聯。(4)
2. 物件導向程式設計階段
隨著軟體複雜度增加,物件導向程式設計成為主流,將相關的數據和行為打包在一起:
// 物件導向繪圖程式
類別 形狀
屬性: x座標, y座標, 顏色
函式 初始化(x座標, y座標, 顏色)
設定 this.x座標 = x座標
設定 this.y座標 = y座標
設定 this.顏色 = 顏色
函式 繪製()
// 這是一個抽象方法,由子類實現
類別 矩形 繼承自 形狀
屬性: 寬度, 高度
函式 初始化(x座標, y座標, 寬度, 高度, 顏色)
呼叫父類初始化(x座標, y座標, 顏色)
設定 this.寬度 = 寬度
設定 this.高度 = 高度
函式 繪製()
在畫布上從(this.x座標, this.y座標)
開始畫一個
寬度為this.寬度
高度為this.高度
顏色為this.顏色的矩形
回傳 完成
// 主程式
函式 主程式()
取得用戶請求
如果 用戶請求.形狀 等於 "矩形" 則
創建一個新矩形(
用戶請求.x座標,
用戶請求.y座標,
用戶請求.寬度,
用戶請求.高度,
用戶請求.顏色)
呼叫 新矩形.繪製()
結束如果
物件導向方法就像是把相關的工具和材料放在同一個工具箱裡,提高了整理和使用的效率。然而,它仍然只能按照預先設定的方式工作,缺乏自己思考的能力。(5)
3. AI Agent系統階段
接著,演化到Agent時代, 我們可以將AI嵌入到系統中,創建具有思考能力的智能Agent:
// 基於AI的智能繪圖Agent系統
// 創建繪圖專家Agent
創建 繪圖專家 = 新Agent(
角色 = "繪圖專家",
目標 = "根據用戶需求和環境條件創建最佳的視覺效果",
背景故事 = "我是一位經驗豐富的視覺設計師,
專精於根據情境創建最適合的視覺元素",
使用的AI模型 = "本地輕量級AI模型",
可用工具 = [繪圖工具集]
)
// 創建UI/UX專家Agent
創建 用戶體驗專家 = 新Agent(
角色 = "UI/UX專家",
目標 = "確保視覺元素符合用戶體驗最佳實踐",
背景故事 = "我專注於優化用戶界面和用戶體驗,
確保視覺元素既美觀又實用",
使用的AI模型 = "本地輕量級AI模型",
可用工具 = [用戶體驗分析工具集]
)
// 定義繪製矩形的任務
創建 繪製矩形任務 = 新Task(
描述 = "分析用戶請求和當前環境,
決定最適合的矩形參數,然後繪製最適合的矩形",
負責Agent = 繪圖專家,
預期輸出 = "完成的矩形元素及其參數的詳細說明"
)
// 定義評估任務
創建 評估矩形任務 = 新Task(
描述 = "評估繪製的矩形是否符合UI/UX最佳實踐,
如有必要,提出調整建議",
負責Agent = 用戶體驗專家,
預期輸出 = "矩形的UI/UX評估報告和改進建議"
)
// 創建Agent團隊
創建 設計團隊 = 新Crew(
成員 = [繪圖專家, 用戶體驗專家],
任務 = [繪製矩形任務, 評估矩形任務]
)
// 主程式
函式 主程式()
取得用戶請求
// 將請求轉換為任務上下文
創建 上下文 = {
"用戶請求": 用戶請求,
"畫布狀態": 獲取當前畫布狀態(),
"環境數據": 獲取環境數據()
}
// 執行Agent團隊
結果 = 設計團隊.開始工作(輸入 = 上下文)
// 根據結果執行最終繪製
最終矩形 = 解析繪圖指令(結果)
繪製最終矩形(最終矩形)
在這種架構下,系統已不再僅是靜態執行指令,而是像一個智慧團隊般,根據環境條件、用戶需求、設計準則等多重因素,動態討論、協作與創造最佳解。(6)
就像是從「依照食譜做菜」進化到「一個專業廚師團隊根據食材與顧客需求即興發揮」,極大地提升了靈活性與創造力。
從智慧居家到智慧國家:
以智慧房子為例,我們可以設計多個專門的代理:門禁代理、空氣溫濕度代理、燈光適應調控代理、防盜代理等。每個代理可以由專門的AI來扮演特定角色,執行相應功能。這些代理系統的執行,可以通過物件加上合適的生成AI來解決現場狀況變化。(7)
智慧房子由這些各個代理系統像積木一樣組成整個智慧居家代理團隊,再由每一個智慧居家代理團隊組成整個代理組織社區,進而擴展到代理鎮、代理縣,最終形成智慧代理國家。(8)
從中我們可以看到,從居家的物聯網開始,通過代理的方式以邊緣運算Edge AI硬體設備來實現,最終發展出整個智慧代理國家,實現了從IOT(Internet of things)物聯網到IOI(Internet of intelligence)萬物皆可智慧聯網的物智網。
台灣的機會:
這樣不只可以把訓練好的AI完全落地運用,也可以讓世界更好更進步。這時也是更需要台灣本身在資訊半導體科技的強項,讓產官學界在資訊半導體科技研發的需求與學理的進步與龐大的經濟供需需求,再造台灣更多護國神山,讓世界人民更需要台灣。
結論:
軟體驅動世界的進程,從一開始的函式到物件導向, 到今天的Agent,好比一場音樂會演奏的進程: (1)從一開始的樂手獨自演出(函式) (2)到後面的樂團依照排好的流程演出(物件導向) (3)最後則是整個樂團即興演出,甚至應觀眾要求演出符合觀眾的多變口味(Agent)
參考資料:
(1) "The History of AI: From Rules-based Algorithms to Generative Models",
Lanternstudios.com
<https://lanternstudios.com/insights/blog/the-history-of-ai-from-rules-based-algorithms-to-generative-models/>
(2) "CrewAI - Multi-Agent Platform",
CrewAI Official Website,
<https://www.crewai.com/>
(3) "Building a multi agent system using CrewAI",
Medium by Vishnu Sivan,
<https://medium.com/pythoneers/building-a-multi-agent-system-using-crewai-a7305450253e>
(4) "Pseudocode Basics for Programming Beginners",
RealNewbie,
<https://realnewbie.com/basic-concent/pseudo-code/>
(5) "Object-Oriented Programming Concepts",
Mozilla Developer Network,
<https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object-oriented_programming>
(6) "Multi AI Agent Systems with crewAI",
DeepLearning.AI,
<https://www.deeplearning.ai/short-courses/multi-ai-agent-systems-with-crewai/>
(7) "Multi-Agent System — Crew.AI",
Medium by A B Vijay Kumar,
<https://abvijaykumar.medium.com/multi-agent-system-crew-ai-3773356b8c3e>
(8) "From Smart Homes to Smart Cities: The Role of IoT",
IEEE Internet of Things Journal,
<https://ieeexplore.ieee.org/document/8932761>