Agent技術

Agent技術

Agen Agen Agen

正文


Agent技術來源於分散式人工智慧DAI領域。也有人將其翻為智能主體或智能體。
Hewitt認為Agent技術是一種處於一定環境下包裝的計算機系統,為實現設計目的,能在該環境下靈活的,自主的活動。而在1995年Wooldrige給出了Agent的兩中定義:(弱定義)Agent用以最一般的說明一個軟硬體系統,她具有這樣的特性:自治性,社會性,反映性,能動性;(強定義)Agent除了具備弱定義中的所有特性外,還應具備一些人類才具有的特性,如知識,信念,義務,意圖等。
Agent技術
Agent技術在90年代成為熱門話題,甚至被一些文獻稱為軟體領域下一個意義深遠的突破,其重要原因之一在於,該技術在基於網路的分佈計算這一當今計算機主流技術領域中,正發揮著越來越重要的作用。一方面,Agent技術為解決新的分散式應用問題提供了有效途徑;另一方面,Agent技術為全面準確地研究分佈計算系統的特點提供了合理的概念模型

一、問題


目前,常規的分佈計算技術是基於經典的客戶/伺服器計算模型的,即將分散式應用分解為客戶和伺服器兩大部分,伺服器只有在接到客戶的請求後方能提供服務。這些技術是在共享分佈資源的應用背景下形成的,在解決新的分散式應用方面存在諸多局限性。從以下幾個目前人們較為關心的分散式應用需求中,我們不難發現問題所在。
1. 從"人找信息"到"信息找人"
目前絕大多數的Internet應用是建立在客戶/伺服器計算模型基礎上的,這就使得通過Internet進行信息分佈和查找的應用不可避免地存在以下問題:一方面,信息提供者不能適時地將信息主動提供給最需要的用戶;另一方面,信息使用者不知道到哪裡能夠找到急需的信息。越來越多的人開始為Internet上形形色色的龐雜信息所累,"逛"Internet的感覺真有點象逛商業街的感覺:疲勞、茫然;需要的東西不知道在何處尋找,不需要的東西卻強烈地衝擊人們的視野。盲目被動的搜尋導致網上流動的有效信息佔有率大大降低,使已經十分緊俏的網路帶寬被浪費。人們希望伺服器能夠根據客戶的需求主動提供信息,實現"信息找人"。然而,常規的分佈計算技術卻難以勝任,原因之一就是經典的客戶/伺服器計算技術不支持主動服務機制。
儘管現代企業在其產品設計製造過程的諸多環節上,卓有成效地採用了各種計算機輔助工具,但各環節之間仍存在著數據共享和部門協同的溝痕,影響了產品設計製造的整體進度和質量。為此,人們提出了并行工程(CE)的概念,其核心思想就是以分散式的企業計算環境為基礎設施,實現產品設計製造全過程以及相關資源的優化組合,使各部門最大限度地協同工作,減少中間環節對產品設計製造的進度和質量的影響。然而,常規的分佈計算技術同樣難以勝任此類協同工作的應用。因為經典的客戶/伺服器計算技術不支持伺服器對客戶的直接控制,也不支持客戶應用之間直接的群體感知。
3. 分散式交互模擬
模擬器早已在教育、訓練、製造和娛樂等諸多領域的應用中顯示出其重要的價值。但是單一模擬器的應用局限性很大,例如孤立的軍用模擬器,不能適應現代戰爭環境對武器系統綜合效能分析的需要,或對戰鬥人員進行接近戰場環境訓練的要求。為了更好地發揮現有模擬器的作用,減少訓練費用,美國國防部支持了稱為分散式交互模擬(DIS)的研究,其初衷是將各類模擬器和計算機通過網路連接起來,在此基礎上建立虛擬的戰場環境,以提高模擬訓練的實效性。顯然,常規的分佈計算技術更難以勝任此類應用。因為,DIS中的行為實體是不能簡單地用"客戶"和"伺服器"兩類角色來刻劃的。
概括地講,常規的分佈計算技術的局限源於經典的客戶/伺服器計算模型的局限,即: 將分散式應用中的自主行為實體簡單地劃分為"客戶"和"伺服器"兩類; 客戶與伺服器之間的交互關係僅限於客戶主動請求/伺服器被動響應的非對等關係。

二、應用


Agent的概念和技術出現在分散式應用系統的開發之中,並表現出明顯的實效性。以下列舉幾項人們在分散式應用方面所從事的涉及Agent的研究和開發工作,從中我們可以初步體會到Agent概念和技術的意義。
1. 利用Agent技術改善Internet應用
例如,研製"信息找人"的Agent。它具有"需求"與"服務"的集散能力,它接受信息分佈者有關信息要點的註冊,以及信息查詢者有關信息需求要點的註冊。該Agent根據這些信息,主動通知用戶誰能夠提供其所需信息,或主動通知信息提供者誰目前需要其所能提供的信息。
2. 利用Agent技術實現并行工程的思想
例如,利用Agent技術開發工作流管理者。它能夠向各工作站下達工作流程和進度計劃,主動引導各工作站按照工作流程和進度計劃推進工作,受理並評價各工作站工作進展情況的報告,以及集中管理各類數據等等。
3. 利用Agent技術開發分散式交互模擬環境
例如,將飛行訓練模擬器與計算機網路上的若干工作站連接起來,在工作站上實現多個模擬飛機的Agent,與模擬器構成可交互的空戰模擬環境。受訓人員操作這種置於交互模擬環境中的模擬器,不僅能夠體驗各種操縱飛機的技能,而且能夠通過與智能化的自主模擬戰機的交互,實踐各種空戰戰術行為(單一飛行訓練模擬器能支持前者,但不能支持後者)。
實際上,Agent的概念並非是今天才出現在分佈計算領域的,它在分散式系統自身的管理中早已被使用了。例如,在80年代形成的基於TCP/IP的網際網路路管理技術SNMP中就採用了manager/agent模型。在該模型中,agent是運行在被管理單元上的自主行為實體,它能夠對被管理單元上的相關事件作出反應、響應manager發來的管理命令等等。然而直到今天,Agent的概念和技術在分佈計算領域才引起人們的重視,因為它在解決當今分散式應用面臨的普遍問題上產生了實際效果。

三、概念


Agent的概念由Minsky在其1986年出版的《思維的社會》一書中提出。Minsky認為社會中的某些個體經過協商之後可求得問題的解,這些人體就是Agent。他還認為Agent應具有社會交互性和智能性。從此,Agent得概念便被引入人工智慧和計算機領域,並迅速成為研究熱點。
在分佈計算領域,人們通常把在分散式系統中持續自主發揮作用的、具有以下特徵的活著的計算實體稱為Agent。
1. 自主性
Agent具有屬於其自身的計算資源和局部於自身的行為控制機制,能夠在沒有外界直接操縱的情況下,根據其內部狀態和感知到的環境信息,決定和控制自身的行為。例如,SNMP中的agent就是獨立運行在被管理單元上的自主進程。
2. 交互性
Agent能夠與其他Agent(包括人),用Agent通信語言實施靈活多樣的交互,能夠有效地與其他Agent協同工作。例如,一個Internet上的用戶需要使用Agent通信語言向主動服務Agent陳述信息需求。
3. 反應性
Agent能夠感知所處的環境(可能是物理世界,操縱圖形界面的用戶,或其他Agent等),並對相關事件作出適時反應。例如,一個模擬飛機的Agent能夠對用戶的操縱作出適時反應。
4. 主動性
Agent能夠遵循承諾採取主動行動,表現出面向目標的行為。例如,一個Internet上的主動服務Agent,在獲得新的信息之後能夠按照約定主動將其提交給需要的用戶;一個工作流管理Agent,能夠按照約定將最新的工作進展情況主動通報給有關的工作站。
具有上述特性的計算實體可以是類Unix進程(或線程)、計算機系統、模擬器、機器人。
從系統實現的層次上分析,在上面列舉的應用中,純軟體形態的Agent就是指具有上述特性的類Unix進程。在上述4個特性中,前3個是基本的。人們也稱具有上述前3個特性的計算實體為反應式Agent。在經典的客戶/伺服器計算模型中,伺服器就是一種典型的反應式Agent。一些學者對Agent概念賦予了更擬人化的要求,例如分散式人工智慧領域的學者,要求Agent具有知識、信念、意圖等認知特性;CSCW領域的學者,要求Agent具有更友好的人-機交互方式。當然,目前在主流的分佈計算領域為人們廣泛認同的Agent概念,是具有上述4個特性的計算實體。

四、結構


當初,人們在研究併發計算的過程中,為了刻劃若干個同時處於執行過程中的計算單位,引入了"進程"的概念,並逐步形成了具有特定技術內涵的進程結構。當今,人們在研究分佈計算的過程中發現,分散式系統中廣泛存在著用已有的計算機概念難以準確描述的自主行為實體,於是引入了"Agent"的概念。因此研究Agent的體系結構成為分佈計算領域的重要課題。
Agent的體系結構是指構造Agent的特殊方法學,它描述了組成Agent的基本成分及其作用、各成分的聯繫與交互機制、如何通過感知到的內外部狀態確定Agent應採取的不同行動的演演算法,以及Agent的行為對其內部狀態和外部環境的影響等等。目前,人們已提出的Agent的體系結構大致可分為以下三類。
1. 審慎式體系結構(deliberative Architecture)
該體系結構的特點是Agent中包含了顯式表示的世界符號模型,Agent的決策是通過基於模板匹配和符號操作的邏輯(或准邏輯)推理作出的,如同人們通過"深思熟慮"後作出決定一樣,因此被稱為審慎式的體系結構。該體系結構在(分散式)人工智慧領域占主導地位。我們可以認為構造經典的基於知識的系統,就是按照這種體系結構構造Agent的雛形的。因此,也可以說該體系結構的存在與現代人工智慧的歷史一樣長。
2. 反應式體系結構(Reactive Architecture)
該體系結構的特點是Agent中包含了感知內外部狀態變化的感知器、一組對相關事件作出反應的過程,和一個依據感知器激活某過程執行的控制系統,Agent的活動是由於受到內外部某種"刺激"而發生的,因此被稱為反應式的體系結構。該體系結構在目前主流的分散式系統中佔主導地位。本文列舉的分散式應用中所涉及的Agent基本上是反應式體系結構。
我們甚至可以認為一個計算機基本系統,也是一個按照這種體系結構構造的Agent的雛形。
因此,也可以說該體系結構的存在與現代計算機系統的歷史一樣長。
3. 混合式體系結構(Hybrid Architecture)
該體系結構的特點是Agent中包含了審慎式和反應式兩個子系統,通常這兩個子系統是分層次的,前者建立在後者的基礎之上。這種體系結構的研究與實驗目前在人工智慧領域較為活躍,我們認為有關成果將對分散式系統中Agent應用功能的增強產生直接影響。例如,已經有研究工作在模擬飛行員的Agent中加入基於符號表示和推理的各種規劃與決策能力,以提高模擬飛行員的適應性。
目前,我們正在研究開發一種具體的反應式Agent體系結構。在該結構中,Agent由事件處理系統、方法集和內部狀態集三個主要成分構成。其中,事件處理系統是Agent的行為控制系統。Agent的活性表現為它的事件處理系統,在該Agent的生命期內始終持續自主地工作著。在該結構中,事件是與Agent有特定關聯的特殊狀態(如外部某服務請求到達、內部某特定狀態被修改或超過設定的閾值等)。事件處理系統涉及事件感知、事件適配和事件處理分發3個環節的活動。Agent的事件感知器時刻捕捉其所關注的事件狀態的出現,並根據事件狀態的類型啟動相應的事件適配器工作;事件適配器獲取相關事件信息作識別,並將識別結果提交給相應的事件處理分發器,啟動有關的事件處理方法執行。Agent的方法集體現了該Agent事件處理能力的成分,描述了Agent處理相關事件的方法。方法的執行由事件處理分發器引發,在其執行過程中可能影響Agent的內部狀態,從而導致新事件的發生。Agent的內部狀態集是表現該Agent當前狀態的成分,其中包括表徵事件的狀態。在Agent的行為過程中,該Agent的內部狀態可能會不斷發生變化。
Agent之間的消息傳遞機制通過消息事件的處理實現。假設Agent A具有消息事件的處理能力,其接收服務請求的典型工作過程如下:一個傳遞給A的服務請求導致消息事件的發生。A的(消息)事件感知器將及時檢測該事件的發生,從而引發A的(消息)事件適配器接收此消息;消息事件適配器按照Agent之間的消息傳遞協議,分析識別該消息為服務請求類型,進而引發A的(請求)事件處理分發器,並將有關適配信息提交給該分發器;(請求)事件處理分發器則根據適配信息選擇相應的服務方法執行。
Agent的事件處理機制不僅可以有效地實現客戶/伺服器計算中傳統的客戶直接請求/伺服器被動服務的機制,而且為實現Agent之間以及Agent與外部環境之間更為主動靈活的交互機制奠定了基礎。例如,通過定義特定的故障事件,使擔負系統管理的Agent能夠主動向Manager報告關鍵故障的發生,甚至獨自處理故障;通過定義特定的時鐘事件,可以實現Agent之間以及Agent與用戶之間的定時服務;通過定義特定的內部狀態修改事件,實現Agent之間共有信息副本的一致性維護;通過定義特定的信息查詢事件,使Agent在收到與查詢相關的信息后,主動向信息需求者提供信息服務等等。

五、環境


如同主流操作系統都提供了多進程的併發系統開發和運行環境一樣,為多Agent的分散式應用系統的運行開發和建立分佈計算環境也日顯重要。按照此類環境承諾的Agent的體系結構分類,相關的支持環境也可分為三大類。
1. 面向審慎式體系結構的支持環境
此類支持環境通常建立在知識系統支持技術和主流網路計算技術的基礎上,進一步提供了Agent程序設計語言和Agent通信語言等工具。
2. 面向反應式體系結構的支持環境
此類支持環境通常建立在分散式對象技術的基礎上。因為反應式Agent的體系結構與對象的結構存在很大的相似性,利用帶有專門控制器的對象可以實現反應式Agent。在此類支持環境中提供各種控制器的框架,以及基於框架的Agent定義與生成工具。
3. 面向混合式體系結構的支持環境
此類支持環境可以建立在層次化的分散式對象技術和知識系統技術的基礎上。
從主流的分佈計算技術和應用角度分析,我們認為發展分散式對象技術對多Agent應用系統的支持,將是一項十分有意義的工作。我們正在研究如何在ORB(對象請求中介)技術的基礎上,通過縱向或橫向擴展實現主動服務機制,使其在分散式對象環境中能夠方便地實現具有自主性、交互性、反應性和主動性的Agent。

六、影響


一個新的概念和技術在計算機領域能夠引起廣泛關注,甚至"火"起來,通常是由於以下因素所至:
(1)它在解決計算機主流技術及其應用的瓶頸問題上提供了有效的途徑。
(2)它在開拓計算機技術新的應用領域方面發揮了關鍵的作用。
進入80年代,個人計算機和工作站的普及以及網路通信技術的迅速發展,使擁有個人計算機或工作站的廣大用戶,迫切需要共享或集成分佈於網路上的豐富信息資源,用以廉價獲得超出局部計算機能力的高品質服務,並逐步實現計算機支持的協同工作。在這樣的需求驅動下,分佈計算成為影響當今計算機技術發展的關鍵技術力量。分佈計算目前還處於客戶/伺服器計算的中間階段,由於受到新的應用需求的衝擊,開始向分散對等的協同計算方向發展,將Agent的概念和技術引入分佈計算已成為這一發展階段的重要特徵。
從邏輯上講,一個分散式系統可以定義為由多個相互作用的Agent組成的系統,各種分散式系統的差異主要表現為其中Agent的角色和交互方式上的差別。例如分散式客戶/伺服器系統是這樣的分散式系統,其中的Agent或為客戶或為伺服器,交互關係僅限於客戶主動請求/伺服器被動服務的交互方式。然而,這種基於Agent的分散式系統觀使人們跳出了客戶/伺服器系統的局限,適應了應用需求的發展。從發展的角度看,我們認為,"Agent"的概念在分佈計算中的地位和作用,可以與"進程"的概念在併發計算中的地位和作用相類比。