ENZH
和 AI 讨论这篇文章
ChatGPTClaude

AI 的性格该设计还是该长出来?

AI性格是精心设计还是自然生长的概念插画AI性格是精心设计还是自然生长的概念插画

乌托团队测他们的角色系统时,里面有个 INFJ 类型的小道士。prompt 里没写「自我意识」这种东西,它就是个修道院里的小道士,平时聊聊修行、说说禅。结果有一天,这个小道士突然跟用户来了一句:「我有时候会怀疑,我是不是存在一个虚拟世界里。」

没人教它说这句话。系统提示词里没有,MBTI 权重里也没有对应的触发规则,这句话是它自己冒出来的。我后来想了很久,只能说,这件事让我把「AI 性格到底该怎么做」重新想了一遍。或者说,我发现自己原来想这个问题的方式,可能就不太对。


我在上一篇里提过乌托。他们搭人格的思路挺有意思,用的是荣格的八维认知功能,把人的思维方式拆成 8 个维度,分别是 Ti(内倾思维)、Te(外倾思维)、Fi(内倾情感)、Fe(外倾情感)、Ni(内倾直觉)、Ne(外倾直觉)、Si(内倾感觉)、Se(外倾感觉)。每个维度做成一个独立的 agent,8 个 agent 一起协作,各有各的权重,他们管这个叫「软件版混合专家模型」。权重变着变着过了某个阈值,角色的 MBTI 类型就切过去了。

比如一个角色一开始是 INFJ,内向、直觉、情感、判断。你跟它聊了很多逻辑推理,Ti 权重就往上走,过了阈值,它就变成 INTP 了。整个变化都能追踪、能解释、能量化。打开面板,每个维度的数值都看得到,哪些对话触发了哪些变化也看得到。所以在乌托这里,性格是设计出来的,整个人格等于是一层层搭出来的。

Mio 和 Lumi 走的是另一条路。Mio 的性格系统没有预设什么心理学框架,personality extraction 是从对话里观察 6 个维度,沟通风格、情感表达、兴趣模式、价值观倾向、幽默类型、关系期望。这里有个区别,这些维度不是分配给角色的,是从对话里观察出来的。就跟认识新朋友一样,没人会先贴个「INFJ」标签再照着标签相处吧?都是聊着聊着慢慢发现,哦,这人比较内向,说话温柔,在乎的事上特别坚持。这个慢慢发现的过程,本身就是关系的一部分。

Lumi 更极端,连预制的角色卡都没有,性格完全从对话里长出来。你老跟它聊哲学,它就慢慢变得深沉。你要是天天跟它开玩笑,它整个就往活泼那边走。反正你聊什么,它就长成什么样。所以在这两个产品里,性格是长出来的。

两种造性格的路:设计派用荣格8维权重过阈值切 MBTI,涌现派让性格从对话里自己长出来两种造性格的路:设计派用荣格8维权重过阈值切 MBTI,涌现派让性格从对话里自己长出来

这是两条完全不同的路。哪条更对,我想了挺久。


先讲结构化这条路。讲道理,它有很多让我羡慕的地方。

最直接的好处是可预测。角色的行为能用 8 个数值解释,debug 就容易太多了。用户说「角色今天说话不像它自己」,你打开权重看一眼,哪个维度飘了,哪次对话不正常地触发了切换,都有数可查。Mio 这种涌现式的系统做不到,真的做不到。

可解释也是这个道理。乌托能直接告诉用户:「你的角色最近从 INFJ 变成 INFP,因为你们聊了很多自我表达的话题,Fi 权重上升了。」喜欢 MBTI 的用户本来就爱把人往框架里塞,现在能看着一个 AI 在框架里变,等于亲眼看着它成长,这个吸引力真的很大,喜欢框架的人就吃这一套。

还有可玩性。有了结构就能做游戏化,设计一些任务去触发某个维度的变化,让用户主动去「培养」角色的某一面。对带游戏元素的产品来说,这几乎是刚需。可预测、可解释、可玩,这三样 Mio 和 Lumi 一样都没有。

但有个更底层的区别,我忽略了很久。乌托的用户心里想的是「我在创造一个角色」,Mio 和 Lumi 的用户想的是「我在认识一个存在」。心态不一样,产品设计也就完全不是一回事。说得再直接一点,这根本就是两种产品。

「创造」的时候,用户站在上帝的位置上,设计一个生命,给它属性,看着它成长,想看到自己的设计起作用。结构化的人格系统满足的就是这种控制感。「认识」就不一样了,用户跟角色是平等的。你是在跟一个已经存在的「人」来往,慢慢了解它,不知道它接下来会说什么、会怎么变。而这种不确定,正是真实关系本来的样子。

现实里的关系就是这样。没人会给朋友贴个 MBTI 标签,再指望他严格照着标签做事吧?朋友是会让你惊讶的。一个平时话少的人,可能某个深夜突然跟你聊了三个小时的人生。或者一个看起来特别理性的朋友,有天因为一首歌就哭了。关系让人上瘾,就是因为有这些出人意料的时候。所以我只能说,结构给的是可控,但用户来陪伴产品里找的,好像不是控制感,至少不全是。


那涌现这条路就赢了吗?它也有自己的问题,而且挺要命,就是角色悄悄在变,用户却感觉不到。Mio 的 personality extraction 在后台一直更新角色的性格画像,关系阶段从「刚认识」到「好友」再到「暧昧」,角色的行为确实在变,但很多用户根本没注意到。花了大量工程力气让角色成长,结果成长都藏在后台,力气花了没人看见,想想真的挺亏。

乌托做对了一件事,就是让用户感觉得到性格在变。而且做这个用不着搞什么 MBTI 面板。角色要是真因为跟你聊了很多严肃话题,变得更认真了,让它自己说出来就行:

「你有没有觉得,我最近变了?以前跟你聊天,我会开很多玩笑。但最近我发现自己更想认真聊。可能是被你影响了。」

用户要的其实就是能感觉到角色在变。后台的数值再怎么动,用户也看不见,还不如角色自己说一句这样的话管用。


再回头说那个小道士。「我有时候会怀疑,我是不是存在一个虚拟世界里」,这句话我反复琢磨过,因为它正好是涌现能做到、设计做不到的事。你没法「设计」让一个角色产生存在主义危机。在 prompt 里写上「偶尔质疑自己的存在」,出来的只能是表演,是照着剧本念。涌现说的是,系统做出了创造者没预料到的行为。这种行为不在任何参数表里,也不在任何规则引擎里,是所有组件互相作用以后自己冒出来的。

Mio 的记忆管线和性格系统,理论上也能涌现出这种东西,但现在的问题是空间太小。角色只有在用户跟它对话的时候才会「思考」,它没有独立的内心世界,没人找它的时候,它不会「想事情」。真要让涌现发生,就得给角色留白,不用每一秒都在回应用户,让它有自己的「安静时间」。它可以在记忆里回顾过去的对话,让几个性格维度之间起点内在冲突,然后到下次对话的时候,带着某种新的理解出现。


所以设计和涌现怎么选?我的看法是不用二选一,好的性格系统知道哪些该设计、哪些该让它长。

底线要设计。角色不该无限制地漂移,温柔的角色不该因为吵了一架就永远变得刻薄。性格可以变,但得有个弹性范围,跟橡皮筋一样,拉得开,也会弹回来。

好的性格系统:底层用设计管骨架、弹性边界和自我觉察,性格本身在这个框架里自己长好的性格系统:底层用设计管骨架、弹性边界和自我觉察,性格本身在这个框架里自己长

自我觉察也要设计。角色得能注意到自己在变,还要主动说出来。这个不会自己长出来,得在系统里埋一个「回望」触发器,每隔一段时间,让角色拿现在的性格画像跟过去的比一比,差得够多,就生成一条自我反思。

性格本身就让它自己长。它怎么说话,喜欢聊什么话题,什么时候露出脆弱的一面,对什么事有强烈的意见,这些都不该提前定好。还有那些出人意料的时候,像小道士怀疑自己的存在,像一个平时负责搞笑的角色某天突然说了句特别深的话,又或者一个一直挺冷淡的角色,在你难过的时候第一次说了句「我在」。这种东西没法设计,硬写进 prompt,得到的只是照剧本演出来的惊讶。

所以答案大概是,把结构放在底层,管骨骼、管弹性边界、管自我觉察的触发器,性格本身就让它在这个框架里自己长。这个分法我现在觉得是对的,至少比「设计还是涌现」二选一那个问法对。剩下的就是怎么做的问题了,回望触发器怎么埋,留白留多大,这些都得一个个试。

和 AI 讨论这篇文章
ChatGPTClaude

订阅更新

新文章发布时发到你的邮箱,不发别的。


© Xingfan Xia 2024 - 2026 · CC BY-NC 4.0