你搜了“ai 角色扮演提示词”,得到一份五十条的清单,挑了一条粘贴进去。第一条回复不错,第四条就成了一团糊,于是你去找一份更好的清单——因为最顺理成章的解释是:你用错了提示词。
其实不是。同一段话,放在这个角色身上能写出紧张而具体的场景,放在另一个角色身上就只剩壁纸一样的背景板,而那些清单文章说不出为什么——要说清楚,就得写点提示词以外的东西。
提示词是模型看到的最小的一块
每一轮,有四样东西送到模型面前:角色的人设、到目前为止的对话、记忆里的事实,以及你刚刚打出的那条消息。你的这条最短,也最后到。它只是轻轻推一下,并不能推翻前面的。
这就是提示词合集像星座运势的原因。“你是一个阅尽沧桑的侦探,身处一座永远晾不干的城市”用在一个人设只有两行含糊话的角色身上效果惊人,因为它终于补上了缺的东西。把它贴到一个写得好的角色身上,就等于给了她第二个相互矛盾的身份——三条回复之后你会感觉到,那是一种不断滑走的声音。
所以有一个排序:人设,然后是开场白,然后是记忆,最后才是你打的字。大多数人把它倒着用,然后得出结论说 AI 不行。
角色里真正该写什么
三样,没有一样是篇幅。
- 矛盾。只会善良的人无处可去;善良却觉得这件事很累的人,每一次对话里都有戏。
- 沉默。如果她从不谈那场战争、她的哥哥,或者她为什么离开——把它写下来。模型推不出一个你只在脑子里想过的沉默。
- 语气,要演示而不是描述。“句子很短,讽刺的话从不说完”胜过一整段关于她性格的文字:它指示的是输出,而不是陈述一个人的事实。
在这里,目录里的简介和人设是两个不同的字段,只有一个会送到模型那里:简介是人们浏览时读的宣传语,人设是她每一条回复都被要求扮演的样子。把你写得最好的那一段放进简介,是好素材白白浪费最常见的原因。配套文章:你真正能控制的是什么。
开场白是你唯一的示范样本
开场白是作为她的第一轮发言存下来的,所以它就在模型读取的对话里——而在第一条消息时,它是她声音唯一存在的样本。长度、时态、人称、她是叙述还是只说话:全都会被照抄,并且一直被照抄,因为每条回复都在模仿上一条。
“嗨!我是玛拉。你叫什么名字?今天想做点什么?”教给她的是没用的东西:她只会提问然后等着。对比一条真正干活的——“雨下起来之后,酒吧就一直是空的。玛拉擦着一只十分钟前就擦过的杯子,门一开就抬起头。——你就是打电话问楼上那间房的人。这不是个问句。”一个地点,一个时间,刚发生的一件事,一句她的口吻。
而且因为关于你的事实住在记忆里,而不是问候语里,开场白根本不必介绍你。每个角色都有一份可读、可编辑的记忆,所以你说过一次的话不必重说——这才是让开场白得以成为一个场景的原因。更长的论述在这里。
用来确立,而不是盘问的开场
你自己的第一条消息是这份工作的另一半:一个可以站的地方,一样可以注意到的东西,一件没解释的事。
- “这是你当班的最后一个小时,我在柜台最远的那头坐下,手边一个我显然不想打开的文件夹。先别问我这件事。”
- “我们已经开了一个小时的车,过了那个路口之后谁也没说过话。我是那个提前下匝道、也不说为什么的人。”
- “凌晨两点,你在消防梯上找到了我。我告诉你我睡不着。但我出来不是因为这个。”
藏起来的那件事就是发动机:它给她一个追问的理由,也给你留了一张以后出的牌。要避开的形状是“你是吸血鬼领主,我是你的仆人,开始”——那是一个前提,不是一个场景。
在场景中途引导,又不走出场景
回复跑偏时,本能是打一条指令。它管用一次,但每次都有代价:指令会留在对话里,而满是舞台指示的上下文会教模型,这是一场关于场景的讨论。
- 在虚构之内引导。想要更短的回复?你自己写短一点——几个回合之内她就会模仿你的回合长度。想让她不那么顺从?做一件她会反对的事。
- 括号旁白要省着用:“[跳出角色:每条回复一小段。]”一条能奏效;四条就把场景变成了制作会议。
- 编辑回复,而不是重新生成——没人用、杠杆却最大的工具。你留下的东西会成为下一条回复模仿的范例:把三段删成那一段好的,下一个回答就会以那个形状到来。而当一个场景可以走两条路,就分出一条分支,而不是跟她争。
变平淡了,无非是这三件事之一
- 没有留下悬而未决的问题:两个回合前你就化解了张力。从房间外面带点东西进来——一下敲门声、一条消息、一个截止时间。
- 你什么都同意,所以她唯一的动作就是同意回来。在角色之内反对一次,并且是认真的。
- 上下文里塞满了你的指令。和她开一条新的故事线:记忆会把事实带过去,舞台指示不会。
而且重新生成两次就够了,别八次。如果两次掷出来都软绵绵的,问题出在骰子的上游。
用大白话讲滑块
- 温度是模型愿意选一个不那么显而易见的下一个词的程度。低的稳定,略显乏味;高的读起来有创意,直到她忘了一页前用过的名字。
- Top P 在挑选之前把候选收窄到最可能的几个——压得很低会让她可靠,也略显机械,而且它是比温度更干净的一道刹车。
- 重复惩罚和频率惩罚把模型从已经用过的词那里推开:一点点能治好一个卡在同一个形容词上的角色,太多则她会不再用你的名字,而那也是个重复的词。
老实的总结:滑块改变的是质感,不是判断——一个句子听起来怎样,而不是有没有赌注。一个只有三个形容词深的角色,不会因为调高温度就变深。
提示词修不好的事
- 它不能让模型记住。“记住我上夜班”只在这次对话里有效,下周就没了,除非被写下来。
- 它不能永远守住一条规则:凡是你每隔几轮就要重申一遍的,都该放进人设或记忆里。
- 它救不了一个由三个形容词拼成的角色,也不会动内容的底线:成人向角色扮演在机器人里要先过一道 18+ 确认。
对手更强的地方,直说:对于带条件设定的长篇世界——只有提到某个地点或名字才触发的条目——SillyTavern 有 lorebook 和固定深度注入的作者注释,而我们两样都没有。角色卡导入时会带着人设、开场白和采样参数;lorebook 不会。如果那是你的工作流,它是更好的工具,而且 Chub 和 Janitor 的角色卡库比我们的目录大得多。
十分钟测试
- 打开一个变平淡了的角色的人设。加上一个矛盾,再加一件她从不谈的事——两句话。
- 把她的开场白改写成一个场景:地点、时间、刚发生的一件事、一句她的口吻。把问号删掉。
- 打开她的记忆,删掉那条错的。通常有一条。
- 开一条新的故事线,发上面的一条开场。
- 当一条回复有八成对了,把它编辑到位,而不是重新生成,然后看下一条。
如果十分钟的编辑、零个新模板之后她变好了,那就是你搜索的答案。机器人是 @talaforge_bot;它在 Telegram 里打开,无需安装,也无需注册。