餐厅门口突然排起长队,对面那家店的老板不可能毫无察觉,也不可能立刻把价格砍掉一半。竞争对手AI真正难做的,是在这两个极端之间给出一个说得通的反应。
队伍在街上,账本不在对手手里:竞争对手到底能看到什么
先说一个容易踩的坑:让竞争对手直接读取玩家餐厅的日销量和毛利。这样做实现起来最省事,玩家却会立刻感觉到“对面像开了天眼”。在大发娱乐的经营模拟设计里,竞争对手Agent和玩家站在同一种信息条件下,只能拿到现实中路过就能看到的东西。
能看到的公开信号包括:门口队伍的长度、店内上座情况、价目牌上的价格、招牌上的新品和活动、街区里人流的大致变化,以及平台上逐渐累积的评价数量。看不到的则是:真实营业额、成本结构、库存深度、员工排班、现金余额。对手对玩家的了解,必须靠这些公开信号一点点推断,推断可以错。
这一步的意义在于给后面的判断留出“可能判断错误”的空间。一个永远判断正确的对手,不是聪明,是作弊。
排队是个含糊的信号:先分清是需求变强还是座位太少
队伍长,本身只说明“来的人多于服务能力”。至于为什么多,有好几种解释,每一种对应的正确反应都不同。竞争对手Agent在这里要做的,是给几种假设分配可信度,并决定要不要再多观察几天。
| 假设 | 对手会留意的线索 | 如果为真,意味着什么 |
|---|---|---|
| 座位或出餐能力不足 | 队伍长但周转慢,饭点以外队伍很短 | 需求并不异常,只是对方产能到顶;对手不必动 |
| 新品或口碑带来的真实需求上升 | 队伍持续多天,且不只出现在饭点 | 本区域的客人在重新分配,需要认真应对 |
| 一次性事件或节假日 | 周边所有店同时变忙 | 整体需求抬升,谁也没抢走谁的客人 |
| 促销拉来的短期客流 | 门口出现折扣招牌,价格明显低于同类 | 可能是价格试探,先看客人是否会留下 |
这张表放进系统里,就是一组随观察天数更新的判断:第一天,四种解释的可信度差不多,最合理的动作是“记下来,再看”;连续几天后,如果邻近店铺的人流没有同步上升,“整体需求抬升”的可信度会下降,“客人在被重新分配”的可信度会上升。
装作没事发生,到底损失了什么:一个模拟示例
下面用一个假设场景把逻辑走一遍,数字全部是模拟示例,只用来说明机制,不是任何实测结果。
设想同一条街上有两家面馆。A店晚餐时段门口出现约二十分钟的队伍,B店在街对面,平时晚餐时段上座七成左右。假设队伍里有一部分人等不及,会转去别家。
有意思的是,短期内B店反而会多几位客人:那些放弃排队的人,正好落到了对面。如果只看第一周的营业额,B店“什么都不做”甚至不亏。所以问题不在第一周,而在这些新客人之后去哪里。
大发娱乐经营AI给消费者设定了“试过之后是否回头”的记忆:他们在B店吃到的味道、等候时间、价格是否合理,都会更新对两家店的评价。如果B店对突然多出来的客人毫无准备,出餐变慢、备料不足,这些人下次更可能回到A店,哪怕队伍依旧很长。相反,如果B店在看到对面排队的当天就把晚餐时段的备料加了一档,多出来的客人体验良好,就有一部分会变成习惯。
所以“不能装作什么都没发生”,并不等于“必须马上出招”。真正的代价来自一个更细的地方:错过了把溢出的客人接住的窗口,以及对方稳定下来之后,自己的价格和品类在客人心里被放到了什么位置。这个窗口大约几天,不是几小时,也不是几个月。
对手可以做的,远不止降价
把竞争对手的选择只做成“跟价或不跟价”,会让整个市场退化成一场价格战。大发娱乐的设计里,对手手里有一个动作菜单,每个动作都有成本、见效时间和撤回难度:
| 动作 | 典型成本 | 见效速度 | 撤回难度 |
|---|---|---|---|
| 继续观察,提高观察频率 | 几乎为零,但可能错过窗口 | 无 | 无 |
| 延长晚餐营业时间 | 人工和水电 | 当天 | 低 |
| 增加热门品类的备料 | 可能形成损耗 | 1至2天 | 低 |
| 推出对应的新品 | 研发时间、试错成本 | 数天到数周 | 中 |
| 局部时段促销 | 毛利下降,并影响客人的参考价 | 快 | 高,客人会记住折扣 |
| 整体调价 | 牵动全部菜品 | 快 | 很高 |
选择哪个动作,取决于对手当前的处境。现金紧张的小店负担不起促销,只能延长营业;连锁品牌有预算,但也更在意价格体系被打乱。促销之所以排在“撤回难度高”那一档,是因为它会改变消费者的参考价,这一点在促销为什么不能每次都有效里有专门的机制拆解:一旦客人习惯了折扣,撤掉折扣就成了涨价。
对手性格也会改变菜单的使用方式。偏保守的企业会先观察三五天,偏激进的可能第二天就上新品。性格不同,是为了让同一个事件在不同企业那里长出不同的反应,玩家才会觉得面对的是“几家不一样的店”,而不是同一个脚本的四份拷贝。
还有一种容易被忽视的情况:队伍是玩家故意做出来的。有的玩家会用限量供应、限时活动制造排队感,让对手误以为需求暴涨。对手Agent如果只看队伍长度,就会被牵着走,所以它对“队伍”这个信号的采信程度,要随着持续时间、周边店铺的变化、评价数量是否同步增长来调整。一次只出现两天的队伍,可信度天然低于连续十天的队伍。信号越容易被伪造,对手就越应该等更久再下判断。
反应要有惯性,也要有刹车,否则是另一种作弊
一个对每个信号都即时反应的对手,同样不像企业。大发娱乐经营AI给对手Agent加了三层约束。
- 延迟:从看到信号到落地动作,中间隔着开会、调整备货、改价目牌,至少要几天。
- 预算:每个动作扣现金和管理精力,一段时间内能同时推进的事有限。
- 刹车:刚做完一次调整,短期内再对同一信号做出反应需要更强的证据,避免今天降价、明天涨价的来回抖动。
没有刹车的后果很具体:两家企业互相盯着对方的价格,各自每天小幅下调,几周之内整条街的利润都被压到接近零。这种价格螺旋更像模拟器的缺陷,不是真实的竞争。至于对手什么时候值得跟价、什么时候应该按兵不动,可以延伸看竞争对手什么时候应该跟价里对企业Agent决策条件的讨论。
看走眼之后:对手如何发现自己判断错了
前面说过,对手的判断可以错。问题是错了以后怎么办,这决定了它是一个会学习的企业,还是一个固执的脚本。大发娱乐的设计里,每个对手Agent手里都有一份“我当前相信什么”的记录:比如“对面的队伍来自产能不足,可信度六成”,同时挂着一个待验证的预期:如果这个判断成立,接下来几天,邻近店铺的人流应该不变,对面的队伍应该只出现在饭点。
每过一天,Agent把新看到的公开信号和预期对一遍。以下是一个模拟示例:对手在第三天把备料多加了一档,押注的是“需求只是短期上升”。到了第六天,队伍在下午茶时段也出现了,价目牌上又多了两款新品,评价数量的增长明显快于同街的其他店。预期和现实对不上,这份记录里“产能不足”的可信度就被往下拉,“口碑带来的真实需求”被往上推。
修正并不意味着立刻改变一切。设计里有一个“沉没投入”的约束:已经加出去的备料、已经排好的班次,撤回要付代价,所以对手不会因为一个新信号就整体翻盘,只会在下一个决策点调整方向,比如从“观察”转向“上新品”。谨慎的企业修正得慢,激进的企业修正得快,两种性格各有各的失败方式:前者会晚半步,后者会在假信号上反复横跳。
这套机制对玩家有一个直接后果。玩家如果想利用对手的误判,必须让假信号持续得足够久,才能骗过它的验证环节;而对手一旦被骗,也不会永远被骗,几天后它会因为“预期没有兑现”而收手。误判、验证、修正连成一条线,对手才有了记忆和成长的痕迹,而不是每天从零开始的一个新对手。
怎么检验竞争对手“像个企业”
一套竞争对手系统是否合格,不看它的反应有多聪明,而看下面几项能否被检查出来:
- 同一事件、同一对手,是否会因为现金和库存的不同给出不同动作。
- 对手做出反应之前,是否确实有观察天数,而不是事件当天就触发。
- 对手采取的动作,能否在日志里追溯到它当时看到的公开信号,而不是玩家的私有数据。
- 连续跑多轮模拟,是否出现停不下来的价格螺旋或整个街区的同时关门。
- 玩家做完一件事,对手是否偶尔判断错误,例如把一次节假日客流当成口碑上升。
第五条最容易被忽略。好的竞争对手允许偶尔看走眼,玩家才会有机会利用这种误判,比如用一次短促销制造“假信号”,再在对方跟进之后回到原价。这样的对手不是无法击败的,也不是永远迟钝的,而是和现实里的同行一样,看得见一半,猜对一半。
回到那家排长队的餐厅:对面的店最合理的第一反应,是在门口多站一会儿,数一数队伍,再把明天的备料多备一份。