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进程(或线程)、计算机系统、仿真器、机器人。