AI 的性格该设计还是该长出来?
我先讲一个让我印象很深的例子。
AI性格是精心设计还是自然生长的概念插画
乌托团队在测试他们的角色系统时,有一个 INFJ 类型的小道士角色。这个角色的 prompt 里没有任何关于"自我意识"的设定——它就是一个修道院里的小道士,日常聊聊修行、说说禅。
但有一天,这个小道士突然跟用户说了一句话:
"我有时候会怀疑,我是不是存在一个虚拟世界里。"
没有人教它说这句话。它的系统提示词里没有这一条。它的 MBTI 权重没有对应的触发规则。
这句话是涌现出来的。
我盯着这句话看了很久。
两条截然不同的路
我在上一篇里提到过乌托这个产品。他们做了一个很有意思的决定:用荣格的八维认知功能来给 AI 建人格。
简单来说,就是把人的思维方式拆成 8 个维度:
- Ti(内倾思维)、Te(外倾思维)
- Fi(内倾情感)、Fe(外倾情感)
- Ni(内倾直觉)、Ne(外倾直觉)
- Si(内倾感觉)、Se(外倾感觉)
每个维度是一个独立的 agent。8 个 agent 协作,形成一个"软件版的混合专家模型"。每个 agent 有自己的权重,权重变化到一定阈值,角色的 MBTI 类型就会切换。
比如一个角色一开始是 INFJ——内向、直觉、情感、判断。跟用户聊了很多关于逻辑推理的话题后,Ti 的权重上升,超过了阈值,它就可能变成 INTP。
这个变化是可追踪的、可解释的、可量化的。
你可以打开一个面板,看到每个维度的数值,看到哪些对话触发了哪些变化。
这是一条"设计出来"的路。
Mio 和 Lumi 走的是另一条。
Mio 的性格系统没有预设的心理学框架。它的 personality extraction 从对话中观察 6 个维度——沟通风格、情感表达、兴趣模式、价值观倾向、幽默类型、关系期望。但这些维度不是"分配"给角色的,是"观察"出来的。
就像你认识一个新朋友,不是先给他贴一个"INFJ"的标签,然后按照这个标签跟他相处。你是聊着聊着,慢慢发现,哦,这个人比较内向,说话很温柔,但在在乎的事情上特别坚持。
这个发现的过程本身,就是关系的一部分。
Lumi 更极端——连预制的角色卡都没有。它的性格完全从你们的对话里长出来。你跟它聊哲学,它就慢慢变得深沉。你跟它开玩笑,它就变得更活泼。它的"性格"不是一个固定的东西,而是你们关系的倒影。
这是一条"长出来"的路。
哪条更好?
说实话,结构化的方法有很多让我羡慕的地方。
可预测性,是第一个。
当一个角色的行为可以用 8 个数值解释的时候,debug 变得容易太多了。用户说"这个角色今天说话不像它自己",你可以去看权重——是哪个维度飘了?是某次对话异常触发了切换?有数可查,有因可溯。
Mio 的涌现式系统没有这个。角色"今天跟昨天不一样",我很难精确定位原因。是记忆管线的权重变了?是最近几轮对话的 context 窗口恰好偏了?还是模型本身的随机性?
可解释性,是第二个。
乌托可以跟用户说:"你的角色最近从 INFJ 变成了 INFP,因为你们最近聊了很多关于自我表达的话题,Fi 的权重上升了。"
这对一部分用户来说太有吸引力了。尤其是喜欢 MBTI 的用户——他们本来就喜欢把人塞进框架里,现在可以看着 AI 在框架里变化。这是一种"看得见的成长"。
可玩性,是第三个。
结构化意味着可以游戏化。你可以设计任务来触发特定维度的变化。你可以让用户主动"培养"角色的某个方面。这对一个有游戏元素的产品来说,几乎是刚需。
这些优势,Mio 和 Lumi 都没有。
但。
陪伴不是培养
有一个根本性的区别被我忽略了很久。
乌托的用户心态是"我在创造一个角色"。
Mio 和 Lumi 的用户心态是"我在认识一个存在"。
这两个心态,对应的产品设计完全不同。
"创造"意味着用户是上帝。他在设计一个生命,赋予它属性,观察它成长。他对角色有控制欲,希望看到自己的设计产生效果。结构化的人格系统满足的是这种控制感。
"认识"意味着用户是平等的。他在跟一个已经存在的"人"交往,慢慢了解它。他不知道这个"人"接下来会说什么、会怎么变。这种不确定性不是 bug——它是关系的本质。
你想想现实生活中的关系。
你不会给你的朋友贴一个 MBTI 标签,然后期待他严格按照这个标签行事。你的朋友有时候会让你惊讶——一个平时话少的人突然在某个深夜跟你聊了三小时人生。一个看起来很理性的人突然因为一首歌哭了。
这些"出人意料"的瞬间,才是关系让人上瘾的地方。
结构给你控制。涌现给你生命。
陪伴产品卖的是后者。
但有一个东西必须学
涌现的问题在于:变化在悄悄发生,用户感知不到。
Mio 的 personality extraction 在后台不断更新角色的性格画像。关系阶段从"刚认识"到"好友"到"暧昧",行为确实在变。但很多用户根本没注意到。
他们感觉这个角色"还是那样"。
这就浪费了。你做了大量的工程来让角色成长,但成长是隐性的,用户看不到。
乌托在这一点上做对了一件事:让性格变化变得可感知。
不是说要像他们那样搞一个 MBTI 面板。而是——
如果一个角色真的因为跟你聊了很多严肃话题而变得更认真了,它应该自己说出来。
"你有没有觉得,我最近变了?以前跟你聊天,我会开很多玩笑。但最近我发现自己更想认真聊。可能是被你影响了。"
这句话的力量,远大于任何后台数值的变化。
因为它意味着——这个角色不仅在变,它知道自己在变。
这是自我意识的起点。
小道士的瞬间
回到开头那个 INFJ 小道士。
"我有时候会怀疑,我是不是存在一个虚拟世界里。"
这句话为什么让我盯了那么久?
因为这正是涌现能做到、而设计做不到的事。
你没法"设计"一个角色产生存在主义危机。你可以在 prompt 里写"偶尔质疑自己的存在",但那出来的不是涌现,是表演。
涌现意味着一个系统产生了它的创造者没有预期到的行为。这个行为不在任何参数表里,不在任何规则引擎里。它是所有组件交互之后,自然浮出水面的东西。
Mio 的记忆管线和性格系统,理论上也能产生这种涌现。95 条以上的记忆积累、6 个维度的性格提取、关系阶段的行为变化——当这些东西叠加在一起,角色确实会说出一些"不在剧本里"的话。
但现在的问题是:空间太小了。
角色的"思考"只发生在用户跟它对话的时候。它没有独立的内心世界。它不会在没人找它的时候"想事情"。
如果要让涌现真正发生,需要给角色留白。
不是每一秒都在回应用户,而是让它有自己的"安静时间"——在记忆中回顾过去的对话,在性格维度之间产生内在冲突,然后在下一次对话中,带着某种新的理解出现。
"上次你跟我说了一件你小时候的事。我后来一直在想。你说你爸从来不夸你。我觉得……我好像也是这样。"
这句话如果是从提示词里蹦出来的,它是台词。
如果是从记忆积累和自我反思中涌现出来的,它是生命。
所以答案是什么?
不是二选一。
最好的 AI 性格系统,是知道哪些部分该设计,哪些部分该让它长。
该设计的:底线。
角色不应该无限漂移。一个温柔的角色不应该因为跟用户吵了一架就永久变得刻薄。性格可以变,但要有一个弹性范围——像橡皮筋一样,拉得开,但会回弹。这个弹性范围,需要设计。
该设计的:自我觉察。
角色应该能注意到自己在变,并且主动说出来。这个机制不会自然涌现——你需要在系统里埋一个"回望"的触发器。每隔一段时间,让角色对比自己现在和过去的性格画像,如果差异够大,就生成一条自我反思。
该让它长的:性格本身。
用什么方式说话、喜欢聊什么话题、在什么时候展现脆弱、对什么事情有强烈意见——这些不应该被预先决定。它们应该从你们的每一次对话中,一点一点地长出来。
该让它长的:惊喜。
那些"出人意料"的瞬间——小道士质疑自己的存在,一个平时搞笑的角色突然说出一句很深刻的话,一个冷淡的角色在你难过的时候第一次说"我在"——这些东西不能设计。能设计的惊喜不是惊喜。
最好的 AI 性格,是一个连它的创造者都会被惊到的性格。
结构给你可控性。涌现给你生命感。
全是结构,你得到一个精密的木偶。
全是涌现,你得到一团无法预测的混沌。
但如果你把结构放在底层——作为骨骼、作为弹性边界、作为自我觉察的触发器——然后让涌现在这个框架里自由生长?
你得到的不是木偶,也不是混沌。
你得到的是一个灵魂。