GrapeCity的技术点滴

GrapeCity -- worldwide component vendor / provider
随笔 - 14, 评论 - 275, 引用 - 36

导航

关于

本Blog文章不是来自于个人,而是来自于GrapeCity技术团队的点点滴滴,其主要出处位于GCDN.

标签

每月存档

最新留言

广告

 

进入Agent世界 什么是Agent

       在前面的讨论中,说道了一下Object让俺们感觉不是很爽的地方。总结下来:OO并不是对现实世界最贴切的模拟。那么什么东东可以比OO更加贴近地来模拟现实世界呢?就目前看来,还是Agent可以担当起Object接班人的这个角色。

 

这里多插一段话。俺们可以注意到,不论是Object还是Agent,他们都有比较深的理论渊源,同时以指导实际软件开发为其价值导向。目前在软件开发过程中,俺们大量地使用着Object的概念,所以前面讨论凡是涉及到Object的,俺们都尽量使用开发人员熟悉的语境来描述,比如同步方法,异步方法,.Net平台中特有的delegate等等。而目前围绕Agent的工作大部分还停留在理论研究或者实验室原型的阶段,所以在下面关于Agent的讨论中,理论学术(白话:纸上谈兵)的味道会略为浓一些。俺会尽量结合同志们熟悉的生活中的例子来解释这些理论上的东东。

 

俺们遇到的第一个问题是Agent的定义是什么?这其实是一个蛮无聊的问题,能够在纸上默写出Agent的定义并不代表这位同志已经深刻地理解了Agent的含义。但这里还是罗列一下前辈们给出的若干关于Agent的定义。从五花八门的定义中俺们也可以体会一下Agent这个概念所包含的内涵的丰富性。

 

1.        The MuBot Agent "The term agent is used to represent two orthogonal concepts. The first is the agent's ability for autonomous execution. The second is the agent's ability to perform domain oriented reasoning."
这个定义强调了Agent的自动执行能力和推理能力。

 

2.        The AIMA Agent "An agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through effectors."
不知道给出这个定义的前辈是不是搞生物学的,怎么看Agent都像是由细胞核和一堆毛须组装成的原始生命体。

 

3.        The Maes Agent "Autonomous agents are computational systems that inhabit some complex dynamic environment, sense and act autonomously in this environment, and by doing so realize a set of goals or tasks for which they are designed."
这个定义比较复杂一点,他强调了Agent与外界环境的关系,也就是说Agent的存在是为了某个目的/目标而感知并且改变环境。在后面会介绍到,这是区分Agent和普通程序的一个重要依据。

 

4.        The IBM Agent "Intelligent agents are software entities that carry out some set of operations on behalf of a user or another program with some degree of independence or autonomy, and in so doing, employ some knowledge or representation of the user's goals or desires."
IBM
给出的定义就少了一些学究味,多了些实用至上的气息。认为能够自动完成某种指定任务的软件体,都可以当做Agent

 

5.        The FAQ Agent [http://www.ee.mcgill.ca:80/~belmarc/agent_faq.html] "This FAQ will not attempt to provide an authoritative definition ..."
老外搞笑起来,也是一流。

 

6.        The Favorite Agent “An autonomous agent is a system situated within and a part of an environment that senses that environment and acts on it, over time, in pursuit of its own agenda and so as to effect what it senses in the future.”
个人比较欣赏这个定义,纯理论的东西没功夫去搞,纯实践的东西没兴趣去搞,而这个定义试图在理论和实践之间找到一个平衡。

。。。

 

沿着探究Agent本源这个话题继续聊下去,眼前会出现好几条不同的脉络/线索。比较有意思的是那些搞人工智能的同志们,他们热衷于使用Agent的概念来拟合人的行为和思想,他们更愿意从生物/生命的角度来描绘软件世界中的Agent。所以他们使用了很多心理学上的术语/符号来刻画Agent,比如信仰(Belief),Intention(意图),义务(Obligation)等。这些同志的精神和境界是值得俺们尊敬和向往的,但作为大规模商业软件开发流水线上一枚微不足道的齿轮,俺更关心的是将Object替换为Agent后,代码量会节约多少行,项目工期会缩短多少天,这类和薪水/年终奖挂钩的实际问题。基于此考虑,俺决定选择一种相对比较practical的方式继续向同志们介绍Agent的概念。

 

Michael在他的论文Intelligent AgentsTheory and Practice中给出了一个Agent的弱定义(这还只是个弱的!强的就免了)。他说满足下面四个条件的东东,就可以称为是Agent

l         autonomy: agents operate without the direct intervention of humans or others, and have some kind of control over their actions and internal state;
自治性,也就是下面俺们将要谈到的独立心智。

l         social ability: agents interact with other agents (and possibly humans) via some kind of agent-communication language;
社会性,这点俺并不认为是Agent的本质特性,一个独立存在的Agent难道就不是Agent了吗。一位生活在孤岛上的同志难道就不是Human了吗。之所以拎出这点来,俺估计Michael的考虑是:单个的Agent的存在是无意义的,只有处于群体中的Agent才能体现它的价值。

l         reactivity: agents perceive their environment, (which may be the physical world, a user via a graphical user interface, a collection of other agents, the INTERNET, or perhaps all of these combined), and respond in a timely fashion to changes that occur in it;
反应性,能够接受外界的输入信号,并且做出相应的反应。

l         pro-activeness: agents do not simply act in response to their environment, they are able to exhibit goal-directed behaviour by taking the initiative.
主动性,或称目标驱动,这是Agent很重要的一个特点。依据当前的环境和自身的心智,Agent 可以主动地执行某种操作或者任务。举例来说,大家都熟悉的Web Service,不论Web Service能够提供多少服务,计算能力多么强,它都不是一个Agent,因为它是被动地,而非主动地提供服务。

 

上面罗列了一堆Agent的定义。俺们除了敬仰前辈大师之外,还可以尝试着归纳一下Agent的本质。定义可以传递给俺们的信息是:什么是Agent;而本质可以传递给俺们的信息是:什么不是Agent。从这两个角度来把握一个概念,基本也就八九不离十了。

 

Agent的本质是什么?个人观点:拥有可以与外界交互的独立心智

 

解释一下这句话的含义。这句话包含了两个层面的内容。

 

一)独立心智。心智是什么?心智就是逻辑,由百万个判断语句组成的复杂逻辑是心智,一个if语句,甚至一个顺序执行语句,本质上来说也是心智。说到这里有同志会觉得不对劲了,如果心智就是逻辑的话,那么MIS系统中的发票类也是具有心智的啦,发票类里面也包含有逻辑代码嘛,而且还蛮复杂的呢。对的,发票类是具有逻辑,或者称为心智,但是他不具有独立的心智,什么意思呢?发票类中的逻辑是否执行,何时执行,不是由发票类自己决定或者控制的,这点很重要。比如,发票类有个逻辑(Method)可以将自己序列化为一段XML,当外界调用发票的这个Method的时候,发票是不可以说,“俺正烦着呢,待会再给你序列化”,发票的序列化操作会被立即执行,而且是无条件的。所以说发票类并没有独立心智,因此发票类是不可以视为Agent的。

 

二)与外界交互。交互这个词用得涩了点,其实白话就是输入输出,能够捕获/感知到外界环境的变化(输入),并且做出相应的反应(输出),就OK了。从这个角度来理解,如果一个东东,它慧根再怎么发达,再怎么我行我素,但自我封闭起来,不接收外界的任何信号,也不对外输出任何信号,那它也不可以称为是Agent。这里有同志也许会说:“同学,这个定义条件未免太弱智了点吧,你倒是找一个完全封闭的软件出来俺我看看啊”。俺还真能给你找一个出来。注意到的是“交互的”,这个相应的意思是根据外界的条件,输出是可以变化的。写一个简单到只包含一行语句的程序:Console.WriteLine(“Hello Agent”);。不管外界是刮风下雨,不管机器是386还是X86,不管内存是256M还是2G,只要这个程序执行,它的输出就是”Hello Agent’。这个程序的确是有输出,但不是根据输入而得到的“相应的”输出。所以这个只包含一行代码的程序并不是Agent,它只是一个Program

 

关于Agent的本源,其实是仁者见仁,智者见智的一个概念。俺在这里白话一番,基本上是起个抛砖引玉的功效,并不是讲这就是绝对正确的。针对不同的背景,环境或者应用场合,俺们可以将Agent的本质理解为不同的东西。最重要的是,理解深刻了,领悟透彻了,一定要能解决实际问题,一定要在实际开发中派上用场,否则就不是白话,而是白谈。

 

提供几个有意思的Topic供同志们消遣。

l         计算机病毒是Agent吗。

l         在以往设计的软件系统中,有没有见到过Agent的影子。

l         什么样的软件系统,Agent最能派上用场。

打印 | 张贴于 2005-06-27 09:25:00 | Tag:Agent Oriented Programming

留言反馈

#面向智能体开发框架 - GrapeCity Agent Framework for .NET 2.0 编辑
本篇文章将详细讲述 Agent Framework 的各种特性以及最新的研究进展,并共同探讨如何从Agent的角度摸索出一种新型高效的软件架构和开发模式,以缓解目前软件系统对服务能力的不断提高而对软件开发造成的巨大压力。
2007-07-09 11:02:00 | [匿名:TOX]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
Good,Good, 接着往下看……
2006-11-23 20:46:00 | [匿名:Lodestar]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
qqsu 看到了问题所在了,我也是这样想的,要做出一个人一样的agent是不现实的,至少在现在,所以特定领域下的agent,是发展的方向
2006-11-18 11:29:00 | [匿名:Eason]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
good!
2006-08-09 20:47:00 | [匿名:imdb]
#白话面向智能体编程(Agent Oriented Programmig, AOP)之四 编辑
同步异步的统一和同类群组
2006-05-10 09:10:00 | [匿名:dibaplus]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
随便说说,现实世界是没有一个无所不知的神来操作每个对象的(对有神论者说声抱歉),而计算机世界,无论软件还是硬件,都会有一个单一的固件来负责特定的任务,如CPU或者硬盘抑或是堆栈。所以当一个充满了智能的Agent的程序出现在我们面前时,我首先怀疑的是性能和复杂性。当然,对于绝大多数的特定的应用领域的程序,这些Agent可以被足够简化以至于不那么智能,因为更本不需要,比如说关心炸鸡颜色的人并不需要对发票有任何感觉。
2006-01-24 11:39:00 | [匿名:qqsu]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
哪位有关于AGENT的程序网站啊,告诉我一下啊谢谢了啊
2005-12-12 10:31:00 | [匿名:勾]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
以用其它的专门的卸载软夹彻底卸载一下,看看是不是有些垃圾留在里面;然后重启系统;在安装即可!
2005-10-20 16:13:00 | [匿名:下载]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
我个人认为agent的本质就是自治性或自主性,即根据周围环境自主决定应该如何反应。不知大家以为如何?
2005-10-11 08:34:00 | [匿名:ggy]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
to 胖大海:可以用其它的专门的卸载软夹彻底卸载一下,看看是不是有些垃圾留在里面;然后重启系统;在安装即可!


“更愿意从生物/生命的角度来描绘软件世界中的Agent。所以他们使用了很多心理学上的术语/符号来刻画Agent,比如信仰(Belief),Intention(意图),义务(Obligation)等。”

agent与object的最大区别在于心智的存在,上文中提出从生物/生命的角度出发来思考问题,但生物显然是包括动、植物的,植物自身显然没有什么心智,等同于无生命的东西,这样子对应是不是还是不恰当嘛?
2005-10-10 14:53:00 | [匿名:hltseaboy]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
顺便求助一下:偶的词霸不娶词了,重装词霸、词霸sp2都不行,哪位有办法?谢谢!当然,重装windows的建议就免了。。。。
2005-10-09 18:58:00 | [匿名:一棵胖大海]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
呵呵,一口气从一看到三,真过瘾,这里对LEO表示感谢^_^,虽然偶初接触这玩意儿,也想说说看法,各位多多指教。

把LEO讲到的几个方面分开来看,似乎都不难实现,实现一个心智,也就是LEO说的逻辑,做不到人类那么复杂的咱可以做简单点,自主性也好说,其实程序在执行的过程都是相对封闭的,不考虑CPU自动切换进程的能力的话,可以说都是独占资源的,要干啥都是自决的,交互分两部分,也就是LEO说得I/O,输入部分似乎可以用一个消息机制模拟一下,就好像我们所存在的这个环境,它是所有个体之间传递信息的媒介;输出部分就自己根据输入算算向环境post一些新消息。看看蛮象的,可是问题是组合起来会怎样?心智太笨就只能响应很小一组既定的场景(因为信息是从“环境”获取的),自主性说起来颇有点自欺欺人,哪个程序不是在cpu里run的?这就必须有load,谁load?似乎只能是“环境”,可“介质”而已的家伙怎么可以做loader呢?最后那交互,不敢想象把现实世界在现今的计算机系统中虚拟出来会有多大的数据量,说无限都不为过,那我们怎么指望agent掌握这些交互呢?是不是必须要有学习能力?可是怎么个学法呢?恐怕以ANN这样的东西远远不够啊。。。。至于LEO所说的AOP会是个什么样子,偶只有自恨想象力太差了。。。。

瞎扯了一大堆,也不知道说了些啥,正如偶对agent的感觉,好凌乱好模糊啊^_^

最后想说,LEO“煞费苦心”;)的搞了三个小问题“消遣”大家,居然没有人响应,真是可怜,所以为了表现一下偶是多么富有同情心。。。
计算机病毒是Agent吗。
想想看,主动嘛?废话!哪个病毒是接受了指令才进行感染的?独立嘛?似乎大部分都没有类似遥控器的装置。。。心智?跟我们人类比虽然少的可怜,似乎还是有点,个别nb的家伙居然还可以探测到周围存在“捕手”(病毒防火墙)!交互呢?刚才说了侦测能力是对环境的感知,感知到了自然要做出响应,比如藏匿自己或杀死对手。。。。这么说来是了

在以往设计的软件系统中,有没有见到过Agent的影子。
金山词霸?当你鼠标移动到某个词上,它就自动跳出来翻译啦。。。。不过太单纯了,傻的只会翻译。。。

什么样的软件系统,Agent最能派上用场。
呵呵,我也觉得是robot。。。。
2005-10-09 18:53:00 | [匿名:一棵胖大海]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
好东西啊,期待更好的,希望继续,完成开始的承诺................
2005-10-09 17:19:00 | [匿名:hltseaboy]
#白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
Ping Back来自:blog.csdn.net
2005-09-11 21:35:00 | [匿名:caridle]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
我还认为,如果仅仅用程序去实现Agent,那一定不是真正的Agent,因为仅仅用人的思维想出来的程序一定达不到人脑的那些多多的if 判断,所以我们要做Agent的程序,得要去研究人的神经网络,模拟这种神经网络,将这种模拟行动,结果,投入实际都交给我们的Agent V1.0去执行.
2005-08-26 10:39:00 | [匿名:CoolBug]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
真的很不错,期待那一天。我觉得真正的Agent人能复制出一个具有人同样感知能力的"人",这种人不是来自基因,而是来自于程序,而这种程序又能优化自己的内核,这种内核又类似于基因。这个Agent的下一代,将会比他自己本身更优秀,自己将会将自己所有的优点传输到下一代中,并且自己将湮灭,而这种湮灭也许不同于宇宙中的那种湮灭,即不需要一个"负自己"来和自己碰撞(亦或我没有悟出来?)。也许有一天,这个Agent将会取代人类,因为那个时候人类成为社会发展的阻碍,一如Agent消灭自己一样湮灭人类(也许他们学会了在黑洞的无穷远处以超越光速N倍的速度召唤人类的"负粒子")。继续探讨...激动地.
2005-08-26 10:32:00 | [匿名:CoolBug]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
实现了这个,要人干嘛用?
2005-07-19 10:46:00 | [匿名:呵呵]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
感觉代码不会简单化
2005-07-19 10:44:00 | [匿名:呵呵]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
我最近也在做着这样的工作,研究Agent Oriented Prog.的确很有趣
2005-07-18 18:04:00 | [匿名:毛]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
要是写书的人都能象这样,我们程序员该多幸福啊.
真是受够了枯燥的文字和糟糕的翻译.
2005-07-18 17:24:00 | [匿名:小陆]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
要是设计的Agent能够进化就更了不得了,就象设计一个人猿,他能在某些enveroment下进化成人,嘿嘿
2005-07-18 15:40:00 | [匿名:laily]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
@Allen Lee:
如果真如你所说,那这个世界就不需要程序员了,也不在是人控制程序了。


我觉的AOP的真正目的还是为了简化程序员的工作,更好的将N:1转变成1:1,正如OO代替面向过程的思想一样。所以并不是我们要造出有“独立心智”的程序,而是对现实的更进一步的模拟,我们还是不要想的那个夸张了。
2005-07-12 17:42:00 | [匿名:7798联盟]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
看不懂啊,看不懂啊
2005-07-12 16:24:00 | [匿名:Da.Feng]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
写得不错阿,使小弟受益匪浅。
我觉得感知的问题可以用“消息”的模型来实现,就好像windows的消息。方法可以把自己绑定在某些消息上,这样当这些消息发生的时候,就可以调用。
至于同步调用还是异步调用,我想就是开不开新线程的问题。同步就在当前线程立即执行,异步就开个线程
while
{
if not-ready
sleep(sometime);
else
break;
}
implememtations;
这样就行吧。

to Allen Lee:
如果Agent可以根据外界的感知扩展、修改、删除自己的属性和方法和方法实现就太好了。还要有能力修改方法上所绑定的消息,这样当Agenet处于某种特定状态的时候,可以或略掉原来所关注的消息。

well,这应该是目前都没有能够实现的领域吧。amazing...
2005-07-08 11:19:00 | [匿名:menway]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
初一接触,这个Agent和构件的概念挺像的,哪位评判评判。
个人看法:很多实际处理一些特定复杂的流程、业务的大型项目中并不能很好的体现出OO,系统的框架是OO的,但,业务层很多实际上是围绕数据库、面向过程的。
Agent定义了一堆堆的特性,如果运用到具体项目的业务实现中,难免会导致一堆堆的过度设计问题。最大的可能还是应用在项目的基础框架、基础类库中,现在的构件似乎就是这么个咚咚。
Buzzwords oriented programming!
2005-07-06 18:04:00 | [匿名:Elation]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
“拥有可以与外界交互的独立心智。”

看到这句话后,我第一个联想到的就是“人工智能”。要更精确的模拟或者逼近现实的“独立心智”,我想 Agent 应该具备一定的“自学能力”,以便在一定程度上适应外界的变化所带来的“冲击”,也就是让 Agent 能在一定程度上对自身的功能进行“自主扩展”,代替部分的“人工扩展”。说到这里,我不禁想起《黑客帝国》这部电影......
2005-07-06 13:08:00 | [匿名:Allen Lee]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
个人认为主动性(Active)、社会性(如合作、竞争,甚至学习)才是Agent最重要的内容。同时,也没有必要去比较Agent和Object。Agent和Object只是从不同的角度去抽象世界,唯有将它们都融入你的系统才能构造出最优美的系统来。而AOP也只是抽象Agent的一种方法。
2005-07-04 22:28:00 | [匿名:Roy Zhang]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
Next?
2005-07-04 15:17:00 | [匿名:seac]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
晕倒..........

越看越像是马克思主义哲学中的内容...这些理念越来越抽象,越来越近乎哲学的范畴了.
2005-07-04 13:58:00 | [匿名:lastman]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
虽然对agent了解还不深,但总有一丝疑惑,agent到底能走到哪里,真正的智能体,即使是一个低等智能生物,他的行为或所谓心智基本上是以概率出现的,而现在的agent也好aspect也好,似乎更多地在探讨某个行为的触发由谁负责的问题,但这真的是本质问题吗?毕竟,尽管aop能够在语法、语义上更接近智能体,但是,传统的oo模型下,也能够以不太规则的方式实现相同的语义,所以说我的疑虑主要在于,aop到底是走了一大步还是一小步?
2005-06-30 18:31:00 | [匿名:Teddy]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
“一位生活在孤岛上的同志难道就不是Human了吗”一般来说如果不是有社会,也就不会出现一位生活在孤岛上的同志了,所以此假设不成立~:D
2005-06-29 14:56:00 | [匿名:Kane]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
什么样的软件系统,Agent最能派上用场?

我觉得似乎,仿真系统更容易用到这个Agent了。
如:交通系统的仿真。尤其是微观仿真。
生物系统的仿真。

就是说,要仿真的系统,本来就是有智能的,那么用Agent仿真,最方便了。
2005-06-29 11:37:00 | [匿名:王晓钰]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
楼上的发帖时间很诡异,难道是时间倒流??
2005-06-29 10:58:00 | [匿名:T]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
12:21 AM ??
2005-06-29 10:56:00 | [匿名:T]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
呵呵,谢谢LEO,长知识:)
继续关注,写的确实不错
2005-06-29 00:21:00 | [匿名:合金枪头]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
看完总有个疑问,不吐不快阿!
Agent我觉得就是一个对现实中的生物(就是Object)的描述,我没感觉它比Object高到哪里去了。Object同样可以有心智啊!只不过有心智的Object我们叫它做生物,没心智的我们叫它做死物。
比如人就是生物,在这个Object里面就有所谓心智,这些心智是这个人(Object)来调用的,当他观察到一些外部变化的时候,他就应该知道调用内部的哪个方法来处理。
所谓死物就没有这种心智。可举的例子太多了。这里就不想浪费唇舌。
所以我觉得之前煮饺子的例子举得并不好,完全没有说明问题。总结来说,Agent是否真的有存在的必要,所谓AOP是否有存在的必要,至少看完了3集的白话还没有说服我。
2005-06-28 15:58:00 | [匿名:sosodog]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
To 合金枪头:

如果把理论中比较抽象的概念:“主动心智”映射到实际的开发实践中,最贴切的概念应该是线程和delegate。为什么这么说? 独立的线程让每个Agent可以自主的决定外请求的执行顺序和执行时间;而delegate则使Agent可以感知到外界的变化,并做出相应的反应。线程和delegate都是OOP世界中的概念,所以用来描述Agent理论实际上并不太合适,但俺们现在没有OOP的IDE,所以只能借用现有的概念来讲一讲。

是不是看到“交互”,“输入输出”这样的字眼,就会联想到神经网络中的BP网啊 :) 如果把Multi-Agents系统比喻做神经网络,那么单个Agent就可以比做神经网络中的单个结点。但是Agent和神经网络的重要区别在于:单个神经网络结点的存在是无意义的,他计算力的价值只能通过与其他结点的交互或者反馈才能体现出来,也就是说,神经网络的知识是储备在整个网络中,而非单个结点中;而Agent系统中,每个Agent都可以独立的执行一项关键任务,他的知识是分布在每个Agent中的。
2005-06-28 15:58:00 | [匿名:LEO]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
怎么感觉有点像神经网络啊。但是想不明白这个主动的心智要如何实现,比如一个Agent Web Service是怎么知道它自己应该为谁提供服务的
2005-06-28 15:14:00 | [匿名:合金枪头]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
什么样的软件系统,Agent最能派上用场
robot

2005-06-28 14:48:00 | [匿名:tongling]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
to hellbat:

你好,按照俺的理解,agent和workflow这两个名词,处于软件开发体系的不同层面, agent位于底部,而workflow是一个应用层面的概念。如果说用OOP可以写出一个workflow engine, 那么以AOP的思想也可以写出来。实际上,俺们已经基于agent sdk写出了一个workflow engine。思路和你稍微有些差异,不是将workflow engine作为agent,而是将每个workflow instance作为一个独立agent需要看护的资源。
2005-06-28 08:54:00 | [匿名:LEO]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
比较关心,agent与workflow的关系,对于workflow来说,activity应该不能是agent的,难道wfengine是agent,能根据资源与历史数据来智能处理activity?
2005-06-27 23:28:00 | [匿名:hellbat]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
老大,坚持不了了,这时我看到的最好的对aop的中文介绍了。
2005-06-27 18:54:00 | [匿名:myrat]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
我也发现了此问题,宝玉将在明天修改.应该与文件编码相关.
2005-06-27 16:59:00 | [匿名:开心就好]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
to 蛙蛙王子:

很好的一个问题。俺试图以白话的方式游走在理论和实践交汇的边缘。实践的讲解可以回答How的问题,而理论的阐释则从更抽象的一个层次回答Why的问题。How和Why共同组成了我们对某一事务的全面认知,缺一不可。

预计再整一两篇的理论之后,会进入到实践的细节讨论上来,请同志们再坚持一下:)
2005-06-27 11:56:00 | [匿名:LEO]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
老天,我选了记住我的信息,怎么我的用户名成了乱码了以
2005-06-27 11:16:00 | [匿名:onlytiancai]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
我怎么感觉不是编程呀,这些理论对实际生产真会带来一些有效指导吗?
呱呱,onlytiancai at msn.com
2005-06-27 11:15:00 | [匿名:蛙蛙王子]
#re: 白话面向智能体编程(Agent Oriented Programmig, AOP)之三 编辑
Leo大大,刚把这一系列的看完,很有意思的,期待下文啊
2005-06-27 10:38:00 | [匿名:tox]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.2.0