我之前做过并分享了一个 ai npc 的项目,当时就感觉用纯 ReAct 式的 LLM Agent 来控制 npc 非常奇怪,这就像是我们自己做每一个动作钱看都要思考一下,下一步改迈左腿了,再下一步该迈右腿了….
我认为这样一个设计存在以下问题:
1. 实时性太差,如果主要功能是对话还好,但有些游戏场景对于实时操作的要求比较好,让所有动作都由 LLM 来生成很不理想;
2. 对于某些带有对抗博弈性质的场景,我认为 LLM 的决策深度是不够的,它往往仅能针对当前状态进行推理。虽然可以利用游戏表现作为奖励信号进行一定的优化,但纯 LLM agent 可做的优化有限(很多情况下都是优化 prompt),但如果使用一个可训练的执行器,那优化空间就会很大。
正好最近看到一些论文是使用外层 LLM 套内层执行器的设计,执行器可以是确定性的程序、强化学习策略、搜索空间等,我感觉这种设计对于 ai npc 来说是更合理的。
更近一步(接下来的内容是我一个畅想,目前没思考过可行性),我有一本喜欢的书叫《思考快与慢》,里面提到人有两个系统,“快系统”和“慢系统”:使用快系统时,人不需要思考就可以做出一系列动作,它悄无声息地运作(比如我们呼吸、走路、回答1+1等时都不需要思考),虽然快系统存在偏差,也很容易犯错,但没有快系统,我们将无法生活;慢思考只有我们主动调用时才会使用,它需要消耗能量,它可以让我们思考快系统下的行为,推理一些复杂的问题。我们在平时会同时使用快系统和慢系统,因此我在想是否可以在 ai npc 上实现这种双系统。这和前面提到的 LLM 套执行器又有所不同,它像是 LLM(慢系统、推理)和执行器(快系统、直觉)的双轨并行,以此让 npc 更像人的行为,并且在一定程度让兼容实时动作和高层推理。目前先暂时保存这个畅想😌。