智能软件(2/2)
程序员甚至连制作传统软件都很困难,那么他们如何创建代理程序?事实上,目前市面上的代理程序几乎没有理由为其正名。它们并不怎么智能,通常只能遵循用户指定的一组规则。例如,一些电子邮件包允许用户创建一个代理,根据发件人、主题、内容对收到的信息进行排序。执行者可能会编写一个规则,将包含“会议”这个词语的所有信息的副本转发给管理助理。这种最小代理的价值完全依赖于其所有者的主动性和编程能力。
人工智能研究者长期以来一直追求更复杂的方法来构建代理。知识工程师赋予程序在特定领域执行任务的信息,程序推断出对于给定情况的正确反应。例如,一个人工智能电子邮件代理或许知道人们可能有行政助理,知道某特定用户有一名助手叫乔治,知道助理应该了解老板的会议安排,知道包含“会议”这个词的信息里可能有调度信息。知道了这些,代理便可以推断出应该转发的消息。
四十年来,人们一直试图构建这类知识型的代理。不幸的是,这种方法还没有产生任何可以商用的代理。尽管知识工程师能够将许多狭窄的领域编纂成法典,但他们无法构建起代理在世界范围内运行所需要的所有常识信息。目前,将这些知识系统化的唯一努力来自得克萨斯州奥斯丁cyrp公司的cyc项目 [55] 。现在,基于cyc的代理能否有足够的知识来做出适当的决定,特别是它能否为特定用户获取特殊知识,回答这些问题还为时尚早。即使cyc成功了,人们也很难相信一个由别人指导的代理。
现在商业上的有限代理和开发中的人工智能代理,二者都依赖于某种形式的编程。第三种也是最有希望的方法采用了人工生命这一相对年轻的领域开发的技术,这个领域的从业者研究生物体的自组织和适应环境的机制。尽管它们仍处于起步阶段,但是人工生命代理是真正自主的:事实上,它们进行自我编程。它们的软件设计可以让它们根据经验和与其他代理的交互来改变自身行为。在麻省理工学院,我们已经构建了一个软件代理,它可以持续观察一个人的行为,并自动执行它检测到的任何常规模式。电子邮件代理可以通过观察发现,用户总是转发包含“会议”这个词的信息副本给行政助理,然后它可能会自动这样做。
代理还可以向执行相同任务的代理学习。一个面对未知邮件的电子邮件代理可能会通过询问它的同行来了解一些信息,比如,人们在读取邮件列表中的邮件时,通常会先阅读发给他们个人的邮件。这种协作可以使代理的集群以复杂又智能的方式进行操作,即使任何单个的代理都非常简单。
图灵遇上达尔文
随着时间的推移,“人工进化”能够将系统中最有效的代理(由他们的所有者评定)的行为进行编码并组合,以培育更适合的种群。我和我的同事建立了一个这样的系统来开发代理,它可以搜索数据库并检索可能使它们的用户感兴趣的文章。它们的每一代都能更好地与其所有者的利益相匹配。
随着时间的推移,这种方法可能会在21世纪计算机网络中形成一个完整的电子生态系统。向用户或其他代理提供服务的代理将更频繁地运行、生存、繁殖,否则就会面临被清除的命运。随着时间的推移,这些数字生命形式将填满不同的生态位 [56] 。有些代理可以演变为不错的数据库索引器,而其他代理则可以使用它们的索引来查找特定用户的兴趣条目。未来将会有一些寄生、共生,以及生物界所熟悉的许多其他现象。随着外部对信息需求的变化,软件生态系统将不断自我更新。
显然,代理的广泛传播将会产生巨大的社会、经济和政治影响。代理将带来一场社会革命:几乎任何人都能接触到这类今天少数特权阶层才能拥有的支持人员。因此,它们将能够消化大量的信息,同时从事多项不同的活动。这种变化的最终后果是无法预测的。
当然,代理带来的变化形式取决于它们的雇用方式,许多问题尚未得到回答,还有一些问题甚至没被问到。例如,用户应该对其代理的行为负责吗?我们如何保证代理会对它积累的所有关于其所有者的私人信息保密?
代理应该自动承袭其所有者的坏习惯,还是应该尝试教给他们更好的习惯(如果是这样,谁来定义“更好”)?随着电子生态系统变得越发复杂,它能确保仍有足够的计算能力和通信带宽来实现人类想要完成的无数任务吗?迄今为止,研究人员所做的有限实验仅仅暗示了现在出现的种种可能。