企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
下面我们要准备开始往AI文件里面写东西了。但是,具体要怎么写呢? </br>先打开一个写好的AI文件看看吧。比如说…… ![](https://img.kancloud.cn/72/d4/72d41acf4a37f6666c773886e0021e99_159x58.png) </br>thicket-ai.lua,这是林扩展包的AI文件。 </br>从文件中可以看到,AI文件中的内容,大体上分为两种: 一种,是给某样东西或者某些样东西赋予某些数值; 还有一种,是一些返回true或false的函数。 </br>就像这个样子: ![](https://img.kancloud.cn/b2/11/b21195f97e8b6b41c62d416002ad2fef_804x498.png) </br>想像一下我们做选择题的过程? </br>假设现在有一道选择题摆在我们面前: </br>小明的爸爸有三个儿子,大儿子叫做大毛,二儿子叫做二毛。请问三儿子叫做什么?A:三毛;B:小明;C:不知道 </br>这道题的问题是:“请问三儿子叫做什么?” </br>当然,只看这个问题是没法回答的,因为我们什么都不了解。不过还好,这道题通过第一句话告诉了我们许多信息: “小明的爸爸有三个儿子,大儿子叫做大毛,二儿子叫做二毛。” </br>我们好像可以根据给出的这些信息去尝试着作答了。 </br>但是,当我们尝试着解答这个题目的时候,忽然发现,条件不够用了。题目问的是第三个儿子的名字。而我们只知道前两个儿子的名字,以及另外一个孩子(小明)的名字。这样就有了两种可能: 1. 小明就是第三个儿子,所以答案是小明,选B 2. 小明是女儿的名字,因而我们无法得知第三个儿子的情况,只能选C </br>此时,如果老师口头又告诉我们了一个信息:小明是个纯爷们! </br>这下答案就一目了然了~ </br>我们的AI也是同样的道理。 </br>在游戏的某个时刻,电脑会遇到一些需要拿主意的问题(比如:三儿子叫什么?);同时系统会根据游戏当前的状况,提供一些已知的信息,或者说,叫做环境数据(比如:小明的爸爸#@&%¥……)。 </br>电脑会尝试着分析这些信息,找出问题的答案并付诸实施。整个AI系统的核心是一个叫做smart-ai.lua的文件,在这个文件中实现了大多数情况下的分析策略,从而多数情况电脑还是可以自己找到答案的。 </br>然而对于我们自行设计的扩展包来说,环境给出的数据有时就显得不够用了,我们需要额外提供一些更为细致的信息,或者说,叫做特征信息。而且,电脑已有的决策通常只是一般化的策略,不一定适用我们的扩展包,所以我们还要告诉电脑遇到当前问题时我们自己的决策。 </br>所以,为了解决一个问题,所需要的内容就包括了: 1. 问题本身(三儿子叫什么名字呀?) 2. 环境数据(小明的爸爸、大儿子大毛、二儿子二毛……) 3. 特征信息(小明纯爷们!) 4. 问题决策(这题选B。) </br>问题本身和环境数据都是系统直接给出的,所以我们的AI文件只需要提供那些特征信息和问题的决策就可以了。 </br>所以AI文件的内容分为那两种就可以理解了: </br>给某样东西赋予数值,其实就是在为解决可能的问题提供特征信息; </br>而那些返回true或false的函数,就是针对特定问题的决策函数了。 看看,AI文件也是很有条理的哦~