两个Agent之间的通信过程如下:
发送方将自己的思想翻译成通信所用语言的格式;
发送方将语言格式加载到通信传播媒体,如声音、文字和图像;
传播载体到达接收方;
接收方读取载体中的语言代码;
接收方在思维空间中将语言代码按其格式翻译为思想,从而熟悉发送方的意识状态。
智能体通信的类型
使用Tell和Ask通信:
Agent分享共同内部表示语言,并通过界面Tell和Ask直接访问相互的知识库。
使用形式语言通信 :
大多数Agent的通信是通过语言而不是通过直接访问知识库而实现的。
Agent通信的方式
黑板系统
黑板系统的模型有三个主要组成部分:
① 知识源,即Agent,是作为求解问题的独立单元,具有不同的专门知识,独立完成特定的任务。
② 黑板,即公共工作区,为知识源提供信息和数据,同时,供知识源进行修改。
③ 监控机制。根据黑板当前的问题求解状态,以及各知识源的不同求解能力,对其进行监控,使之能适时相应黑板变化,及时进行问题求解。
消息/对话系统
有如下两种方式来实现Agent间的消息传递:
① 直接通信方式:每个Agent必须知道消息在什么时候发送到什么地方,系统中有哪些Agent可以合作,这些Agent各具备什么样的能力等。这要求系统中的每个Agent都拥有其他Agent的信息。
② 中介的通信:在基于中介的消息传送中,若干相距较近的Agent通过通信服务器来进行交互和消息发送,而远程Agent之间的交互是由局部群体中的通信服务器协作完成的。
智能体通信语言
知识交换格式语言KIF
主要是基于谓词逻辑,可以作为描述专家系统、数据库、多智能体的知识表示工具。
KIF负责将一种语言翻译成另一种语言,或者为两种异构智能体的知识表达提供语义共享。
可共享重用知识则是一个词汇表,它可以使可共享知识库的内容更容易被理解,同时也为特定的领域提供开发工具和方法。
外部接口主要设计软件智能体运行时能够共享知识和信息的通信高层语言KQML,即知识查询操纵语言。KQML是自主的异步智能体之间共享知识和实现协作问题求解的通信语言。
KQML既是一种消息格式,也是支持实时智能体之间知识共享的消息处理协议,实现基于知识的异构系统之间互操作和集成。
在实际应用中,软件实体之间的互操作和知识共享是应用程序作为软件智能体的重要基础,甚至是必不可少的先决条件。
互操作软件智能体的抽象模型。
知识查询操纵语言KQML
KQML为多智能体通信定义了一套消息表达机制和消息传递格式,构建了一种标准通用框架。
KQML分为3层:内容层、消息层和通信层。
内容层使用应用程序本身的表达语言来传送消息的实际内容。
通信层主要负责对消息的某些特性进行编码,这些特性描述了底层通信参数,例如发送者和接收者的标识符。
消息层是整个KQML语言的核心。将一条消息从一个应用程序传送到另一个应用程序时,消息层完成对所传送信息的封装。消息层的一个最基本功能是识别传输消息发送时所使用的协议,并且给消息发送者提供一个附加在内容上的述行语或原语。KQML语言在内容不可知的情况下实现对消息的分析、路由和正确的传送。
KQML语言中有多种在进程之间进行信息交换的协议。