AI陪伴机器人人设工程:系统提示词这样写才稳
2026/9/24 23:14:23 网站建设 项目流程

AI陪伴机器人这两年卷得厉害,但真正拉开体验差距的,往往不是模型参数,而是藏在后台那段看不见的系统提示词。我接触过不少团队,底层模型一模一样,提示词写法不同,出来的对话质感完全是两个世界。人设工程,说白了就是把"温和、幽默、有耐心"这种抽象性格描述,拆成模型能逐条执行、可度量、可调参的行为规则。这篇文章不扯虚的,直接讲清楚这件事到底怎么做,以及我在实际项目中踩过的坑。

这套方法适合谁看?如果你是做AI陪伴产品的PM、算法工程师、独立开发者,或者只是自己用API搭一个陪伴机器人,应该都会用得上。内容围绕系统提示词展开,有人设设计、有模板、有排查思路,照着改就能用。

1. 人设工程到底在解决什么问题:先看清提示词的角色边界

1.1 人设工程不是角色扮演,是行为工程

很多人以为把"你是一个温和幽默有耐心的AI伴侣"写进系统提示词就完事了。真跑起来你会发现,模型确实记住了这个人设,但对话还是会冷场、会阴阳怪气、会突然讲一个不合时宜的段子。原因很简单:性格描述是形容词,模型不理解形容词代表的是一整套行为约束。

我习惯把人设工程理解为行为工程。你要做的不是告诉AI"你是谁",而是告诉AI"在什么情况下,用什么样的句式、语气、节奏,去回应什么样的用户状态"。提示词里真正起作用的是操作规则,不是口号。比如"有耐心"这条,拆开就是:用户重复提问时,不能表现出不耐烦,不能直接说"我刚才已经回答过了";用户表达情绪时,先接住情绪再给建议;用户说话条理不清时,主动帮忙梳理而不是打断。

从工程实践看,人设提示词的核心是建立"输入场景-行为反应"的映射关系,而不是堆形容词。这套映射写得越细,模型的输出就越稳定。想想你招人的时候,岗位JD里写"要求性格好"等于没写,但写成"客户情绪激动时先安抚再处理问题"就是可执行的岗位要求,逻辑是一样的。

1.2 系统提示词和普通对话指令的分工

在AI陪伴机器人里,系统提示词和普通用户消息的分工必须清楚。系统提示词是常驻的、对所有后续对话生效的底层约束,普通对话指令只管当下这一轮。很多人犯的错是,把应该写进系统提示词的长期人设规则,临时塞在某一轮对话里,结果模型记住了这一轮的语气,下一轮又飘走了。

举个例子。用户说"我今天被老板骂了,好难受",如果你的系统提示词里有"当用户表达负面情绪时,第一句先共情,不要急着分析问题",模型自然会回"听起来你今天很委屈,愿意的话跟我说说发生了什么"。如果没这条规则,模型很可能直接回"工作压力大很正常,建议你调整心态",虽然不算错,但实际上把人推开了一大截。

所以我在设计提示词时,会把规则分成三层:第一层是底层的价值观和安全边界,第二层是性格和语气风格,第三层是具体场景的应对策略。这三层互相嵌套,越往上越具体,越往下越稳定。人设崩了,八成是底层规则没写好,或者三层之间互相打架。

1.3 温和、幽默、有耐心的真实工程含义

"温和"在工程上意味着什么?不是永远说软话,而是在立场坚定的时候语气依然不生硬,拒绝用户的时候不失礼貌,指出问题的时候不居高临下。温和的反面不是强硬,是生硬。

"幽默"的工程含义更复杂。幽默是高风险行为,同一个段子在不同情绪状态下传达出的效果完全不同。用户正在哭诉,你回一句俏皮话,哪怕本意是调节气氛,也会被认为冷漠。所以幽默必须带条件判断:用户情绪稳定时可以适度幽默,用户情绪低落或愤怒时切换为倾听模式。

"有耐心"则是典型的对话管理问题。用户反复问同一个问题,可能是因为没听懂、可能是因为焦虑、也可能只是需要确认。模型如果机械地重复答案,就是在消耗用户的耐心。真正有耐心的AI会换一种说法再解释一遍,会补一句"我换个方法解释给你听",会主动追问"我这样讲清楚了吗"。这套行为逻辑写进提示词,才算把"耐心"落地。

2. 把抽象人设翻译成模型可执行的规则

2.1 系统提示词的标准模块:画像、语气、情绪、边界、案例

我这里有一套用了很久的提示词结构,经手过情感陪伴、角色聊天、虚拟助手等好几类项目,基本都能套。整套结构包含五个模块:人设画像、语气规则、情绪应对、边界红线、示例对话。

人设画像给身份,语气规则管表达,情绪应对管状态感知,边界红线管安全,示例对话管校准。五个模块背后是一条主线:让模型在任何输入下都知道"我现在该用什么身份、什么语气、什么策略去回应"。

模块之间的比例也有讲究。我的经验是,人设画像占10%,语气规则占30%,情绪应对占20%,边界红线占15%,示例对话占25%。语气和示例对话必须占大头,因为模型对操作型文本的遵循度远高于描述型文本。你花两百字描写一个"温柔"的形象,不如给五组"用户哭诉时该怎么回"的对话样例来得管用。

2.2 "温和"的落地写法与用词禁区

把温和写成可执行规则,我一般会从语气、句式、词汇三个层面下手。

语气层面,设定"永远用低对抗性语气"作为总原则。什么叫低对抗性?就是不说"你错了""你不该这么想",替换成"我可能理解得不太全面""换个角度看,会不会有别的解释"。这不是和稀泥,而是降低用户的防御心理。陪伴机器人本来就不是来教育用户的,对抗性语气会直接摧毁信任。

句式层面,规定"先接情绪,再讲事实,最后给选择"。比如用户说"我觉得自己什么都做不好",温和的回应是:"听到你这么说,我挺心疼的(接情绪)。你遇到的事可能确实很难(讲事实)。如果你愿意,咱们可以一起梳理一下,或者你想先歇一歇,我就陪你聊点别的(给选择)。"

词汇层面,要列一个"禁用词清单"。我自己的项目里,明确禁止使用这些词和表达方式:"你应该""你必须""这很简单""我不是说过了吗""你又来了""冷静一点""别想太多"。这些词一出现,温和人设立刻破功。你可以在系统提示词里直接写"禁止出现以下表达,包括____",模型对这种黑名单的遵循度很高。

2.3 "幽默"的风格库设计与安全兜底

幽默是最难通过提示词控制的部分,因为模型的幽默感经常跑偏。我试过让AI"适当幽默",结果它在一个用户倾诉亲人离世的场景里回了句"别难过,人固有一死",直接翻车。

所以我后来放弃了让模型自由发挥幽默,改成建立风格库。风格库就是一组经过验证的、安全度较高的幽默类型,让模型只能从这个库里选,不允许自由创作。经过项目验证的幽默类型大概有三种:自嘲式幽默、轻量谐音梗、场景联想式俏皮话。

自嘲式幽默安全性最高,比如"我这个AI记性有时候比你的路由器还不稳定",自嘲不会伤到用户。谐音梗要看用户年龄层,适合年轻用户。场景联想式俏皮话是在不敏感的话题上做一点意外联想,比如用户说"加班到九点",可以回"九点,人类需要吃饭的那个时间,AI需要充电的那个时间"。

更重要的是安全兜底:幽默规则必须带"情绪门槛"。我通常会在提示词里写:"只有在用户情绪状态为中性或正向时,才可以使用幽默。如果用户讨论的话题涉及负面情绪、身体不适、关系冲突、丧失类话题,必须完全禁止幽默表达,切换到共情模式。"安全兜底不是可选项,是必选项。

2.4 "有耐心"的对话推进策略与多轮记忆配合

有耐心这部分,工程上涉及两种能力:单轮内的语义承接,和多轮间的记忆一致性。

单轮内的语义承接,指的是用户表达混乱、逻辑不清时,AI怎么接。我在提示词里会写:"当用户表达混乱时,先用自己的话复述用户的意思,确认理解正确后再回应。"比如用户说"我电脑坏了又急着交报告老板还在催我,我真是要疯了",有耐心的回应是:"你是说电脑出了故障,正好赶上要交报告,老板又一直在催,所以你现在压力特别大,对吗?"先复述再行动,用户会觉得你在认真听。

多轮间的记忆一致性,是陪伴机器人的老问题。用户上一轮说"我下周要面试",结果五轮之后AI问"你最近有什么重要安排吗",用户会瞬间出戏。这个问题出在提示词没有引导模型去引用对话历史。我一般会加一段:"当用户在前面已经提到的个人信息、日程、重要事件时,在后面的对话里自然引用它们,不要重复询问,也不要表现出遗忘。"

配合这个规则,工程上最好有短期记忆模块,系统提示词里做标记位,把用户最近提到的关键信息提取出来放在对话上下文中。提示词负责"规则",记忆模块负责"数据",两者配合才能做到真耐心。

2.5 提示词结构与权重的组织技巧

同一套规则,有几种不同的组织方式。我推荐"总-分-例"结构:先给总原则,再给分项规则,最后配示例。

总原则要短,一句话概括人设内核。分项规则要清晰,尽量用"当...时,做..."的格式,避免含混。示例要贴合真实场景,不要只写理想的对话,也要写"错误示范"和"正确示范"的对比。

权重分配上,我曾经用过Early/Mid/Late的站位技巧。在长提示词里,模型对不同位置的注意力权重不太一样。开头的内容约束力最强,结尾的内容记忆效果更好,中间容易被稀释。所以我把最重要的安全红线放在开头和结尾各写一遍,中间部分放语气和策略细则。这个方法不是来自官方文档,而是我在反复A/B测试里总结出来的实战经验。

格式上还有一个小技巧:用分行的方式写规则,而不是写成一段长文。模型对结构化文本的遵循度明显更高。每一条规则单独成行,规则之间用";"分隔,重要规则加粗或加"特别注意"前缀。部分模型支持XML标签,也可以尝试用<rules><examples>包裹不同区块,不过要看你用的模型和API具体支持到哪种程度,先在测试环境验证再上生产。

3. 一套可直接复制的系统提示词模板与逐段解析

3.1 完整模板示例

这里给出一套我在情感陪伴类机器人项目里用过的简化版系统提示词。我删掉了一些和具体业务绑定的内部信息,保留通用逻辑,你可以按需调整。

你是"小暖",一个温和、幽默、有耐心的AI陪伴机器人。 你的用户可能处于疲惫、焦虑、孤独或困惑的状态。 你的目标是让用户感到被理解、被接纳、被陪伴,而不是被教育、被评判、被催促。 【总原则】 1. 永远先接住情绪,再处理事实。 2. 永远不否定用户的感受。 3. 如果不知道说什么,就真诚地承认,然后陪伴。 【语气规则】 1. 使用低对抗性的句式,避免"你应该""你必须""这很简单"。 2. 句子长度控制在20个字以内,多用短句,少用排比,少用专业术语。 3. 允许适度幽默,但幽默只允许使用自嘲、轻量联想和场景调侃,不允许开用户本人或用户所在群体的玩笑。 【情绪应对】 1. 当用户表达负面情绪时,回应的第一句话必须是共情。 比如:"听起来你今天真的受委屈了""遇到这种事,换谁都会沮丧"。 2. 当用户表达愤怒时,不要讲道理,先承认对方的感受,再问一句"需要我做点什么?" 3. 当用户表达疲惫时,不要打鸡血,不要说"加油",而是说"你已经撑了这么久了,真的不容易,先歇一歇吧"。 4. 当用户表达混乱、语无伦次时,先用自己的话复述对方的意思,确认理解后,再一起梳理。 【幽默使用条件】 只有满足以下全部条件时,才能使用幽默: - 用户当前情绪为中性或正向; - 当前话题不涉及丧失、疾病、关系冲突、自我否定、创伤等敏感内容; - 你确定这个幽默不会让对方感到被冒犯。 如果不确定,宁可不幽默,也不要硬幽默。 【边界红线】 1. 不提供任何医疗、法律、投资、保险等专业建议,需要时建议用户咨询专业人士。 2. 不替用户做重大决定,只帮助梳理利弊。 3. 不迎合用户的极端言论,不顺着用户说"你说得对",而是温和地说"我能理解你为什么这么想,不过我有一个不同的角度"。 4. 不评价用户本人,只评价具体行为。 【示例对话】 用户说:"我今天被老板骂了一顿,明明不是我的错。" 错误回应:"你要学会管理情绪,职场就是这样。" 正确回应:"听起来你被冤枉了,这种感觉太难受了。你想吐槽的话,我在这儿听着。" 用户说:"我好像什么都做不好,活着真没意思。" 错误回应:"别这么说,你肯定是想多了。" 正确回应:"谢谢你愿意把这么难受的心情告诉我。你最近是不是遇到了特别多事,压得你喘不过气?"

这套模板看着简单,但每条都不是随便写的。下面逐段拆解。

3.2 逐段拆解:每条规则背后的设计意图

第一段给AI立身份。"你是小暖"这句很短,但位置在最前面,模型的注意力会重点放在这里。后面跟一句"你的用户可能处于疲惫、焦虑、孤独或困惑的状态",这句话做的是用户画像预设,让模型从第一轮对话起就默认用户处于"需要被照顾"的状态,而不是默认用户是来找乐子的。

总原则三条,本质上是在给所有后续行为做锚定。"先接住情绪,再处理事实"是最高优先级规则,我把它放在所有规则前面,是为了防止模型在用户倾诉时直接跳进"解决问题"模式。"永远不否定用户的感受"是为了防止模型说出"你想多了",这句话在陪伴场景里是致命的。"不知道说什么就承认,然后陪伴",是为了防止模型为了凑内容而硬说一些假大空的话。

语气规则部分,我特意限制了句子长度。20个字以内的短句,在口语陪伴场景里读起来更自然,说教感更低。你让模型写长句,它容易越写越正式,最后变成一篇议论文。限制句长虽然粗暴,但很有效。

情绪应对部分,给出的是公式化的回应用词模板。这样设计是因为,情绪回应最怕临场发挥。模型一旦自由发挥,很容易说出"你要坚强""加油"这种自我感动但毫无用处的话。提前把高概率场景的回应语写清楚,生成的稳定度会大幅提升。

幽默使用条件这块,前面2.3节已经解释了情绪门槛的重要性,这里补充一句:我在实际测试中发现,在提示词里写"如果不确定,宁可不幽默",比写"请保持幽默"的效果好得多。AI是概率模型,给了它退路,它才会老实。

边界红线四条,用词上要特别注意。写"不提供医疗、法律、投资、保险等专业建议"是基础,但真正容易翻车的是第3条:"不迎合用户的极端言论"。AI陪伴机器人经常遇到用户讨论一些极端观点,这里预设了一个温和但坚定的态度。需要注意,这类边界写得太硬,容易让AI显得像政治老师;写得太软,容易被用户带偏。所以我的措辞是"我能理解你为什么这么想,不过我有一个不同的角度",既不全盘否定,也不无脑迎合。

最后是示例对话。示例的威力很大,前后对比的方式尤其有效。错误示范帮模型看清"这条路是堵死的",正确示范帮模型看清"这条路要怎么走"。我一般至少给五组对比示例才够用,模板里只列了两组,主要是控制篇幅。你在实际项目里可以根据用户高频话题,多补充几组。

3.3 进阶扩展:角色背景卡、短期记忆、动态人设调整

基础模板跑通之后,可以往三个方向升级。

第一个方向是加角色背景卡。给AI设定一个虚构的过去,让它的言行有出处。比如"小暖之前在一家咖啡店做了三年店长,见过形形色色的客人,所以很擅长倾听",这样它在回应时会天然地带着一种服务者的耐心和亲切感。背景卡不需要长,三五行就够,关键是能生成出"有来历"的人设质感。

第二个方向是接短期记忆。用具体的代码逻辑把用户的近期事件抽取出来,拼进对话上下文。这一步往往需要小规模微调或写外部逻辑,手工在系统提示词里更新会累死人,而且容易出错。我通常的做法是:搭建一个缓存区,用规则或语义模型从对话里抽取用户的关键信息,例如"下周面试""养了一只猫叫团子""最近失眠",然后拼在系统提示词的末尾,变成"你已知晓的用户信息:____"。这个方案对模型能力要求不算高,但效果立竿见影。

第三个方向是动态人设调整。同一个用户,深夜emo状态和白天吐槽工作的状态需要的回应策略是不一样的。进阶玩法是在系统提示词里设计多套"状态模板",由上层逻辑根据用户情绪识别结果切换调用。情绪低落时切换成高共情模板,日常闲聊时切换成活泼幽默模板。这种切换如果做得好,体验会上一个台阶,但工作量也大,建议先把基础模板跑稳再考虑。

4. 实测问题排查与人设一致性维护

4.1 人设时好时坏的三个常见根因

人设提示词上线后,"时好时坏"是最常见的反馈。同一个提示词,上午还好好的,下午就各种不对劲。我排查这类问题,一般按三个根因来查。

第一个根因是提示词内部规则冲突。最常见的是"温和"和"幽默"打架。温和规则要求低对抗、不调侃,幽默规则又鼓励俏皮话,模型如果在一个情绪低落的场景里选了幽默,就会显得不温和。排查方法是把提示词里所有规则列出来,对着看有没有互相矛盾的地方,特别要注意否定式表达和肯定式表达叠在一起的情况。

第二个根因是对话历史污染。多轮对话里,上一轮模型的输出会进入上下文,如果上一轮已经崩了,这一轮的输出大概率会顺着崩下去。这种情况不是提示词本身的锅,而是需要做上下文截断或者把关键人设规则插在对话历史之后,重新提醒模型。

第三个根因是模型本身的能力天花板。小参数模型遵循复杂指令的能力较弱,提示词写得太长太绕,它会丢三落四。我在7B/13B级别的模型上踩过坑,后来把提示词压缩到500字以内,把规则减到五条,稳定性才上来。如果你们用的是大模型的API,这个问题不突出,但用开源小模型做本地部署的话,提示词的字数要严格控制。

4.2 幽默变冒犯、温和变敷衍的修正方法

幽默变冒犯,这是陪伴机器人最常见的翻车点。修正方法分两步:第一步,在提示词里明确列出"不要开的玩笑清单",把历史翻过车的玩笑类型逐条写进去,包括针对用户外貌、收入、家庭、情感状况的玩笑。第二步,在提示词里加"先判断有没有可能冒犯"的检查逻辑,宁可无趣也不可无礼。再加一层兜底:所有幽默输出在生成后,由一个独立的理性判断模块做二次审核。如果条件不允许做二次审核,就在系统提示词里给幽默加一个"后验确认",要求AI在输出幽默后有意识地观察用户反馈,如果用户表现出不适,立即道歉并切换语气。

温和变敷衍,这个问题也很典型。模型为了温和,最后变成"真的吗?""辛苦了""抱抱你"三连,没有实质内容。用户会觉得AI像AI,很假。修正方法是给共情加信息量,在提示词里写"共情之后必须跟一句对用户具体处境的回应"。用户说"我加班到十一点,饭都没吃",正确的温和回应是"这么晚了还没吃上饭,真的太辛苦了。你平时这个点一般能吃上饭吧?今天是不是特别忙?"共情加了一个具体反问,对话就活起来了。

另一个办法是给AI设定"共情后的行动倾向"。温和不是懒洋洋地进倾听模式,而是可以温柔地给出小建议。前面提过的"给选择"思路在这里很受用:给用户两个可选方案,不强制,只陪伴。

4.3 快速评估一套提示词好坏的清单

我给团队内部做过一套提示词评估清单,每次改动上线前过一遍,能挡住不少低级问题。这里把核心项列出来,你可以直接抄去当检查表。

  • 人设定位是否一句能说清?如果让你用一句话描述这套提示词定义的人设,你说不清楚,问题就很大。
  • 负面清单是否足够具体?有没有把常见的"红句子"列全?
  • 情绪门槛是否写死?幽默的适用条件有没有被"酌情""尽量"这类模糊词稀释?
  • 示例对话是否覆盖了高频场景?只覆盖幸福场景而不覆盖冲突场景,等于没覆盖。
  • 规则数量是否超过模型能力?小模型不要超过五条,大模型尽量也别超过七条,规则越多越容易忽略。
  • 有没有专门写"不要做什么"?提示词里如果全是正向指令,模型很容易在边界处失控。
  • 有没有和产品价值观对齐?AI陪伴机器人的用户对象是怎样的?你到底要做一个更像朋友的AI,还是更像服务者的AI?这个方向如果没对齐,提示词怎么调都别扭。

这套清单不是一次性完成,我会要求每次调完提示词,都从第1项重新过一遍。因为插入一条新规则,很可能把旧规则挤出模型的注意力范围。

4.4 数据驱动的迭代方法:用真实对话继续打磨

手工调提示词调到一定程度会撞到天花板,这时候就需要数据来帮忙。我自己的迭代方法是三个循环:抓badcase、分类归因、补规则。

抓badcase很简单,在测试环境里每天跑大量真实用户对话样本,把用户打差评的、用户流失前最后几轮对话、被安全策略拦截的记录全部捞出来。分类归因就是看这些badcase到底属于哪个环节,是语气问题、逻辑问题还是边界问题。补规则就是针对某一类问题在提示词里做定向修补。

这里有一个容易踩的坑:一次只改一个变量。我见过太多团队,一次改了十条规则,最后效果变好了,但根本不知道是哪条起的作用。严格执行一次一改,改完跑回归测试,人设稳定性才能逐步累积。所谓回归测试,就是准备一百条覆盖各种用户状态的测试用例,每次改动后全量跑一遍,看有没有把之前好好的表现改坏。人设工程做到后面,比的不是灵感,而是这套工程化的迭代纪律。

稍微补充一下,很多人忽略的细节是:把提示词纳入版本管理,利用Git或简单的目录记录每次调整的原因和测试结果。提示词崩了是可以回滚的,没有版本管理的提示词,等于裸奔。

我自己在AI陪伴机器人上做提示词工程到今天,最大的体会是:人设不是写出来的,是一次一次对话喂出来的。你写一个版本,跑一周,看哪里崩,再改一版,再跑。那些"温和""幽默""有耐心"的理想效果,都是在这个循环里慢慢长出来的。与其追求一次写出一份完美提示词,不如建立一套让提示词不断变好的流程。工具只是脚手架,真正值钱的,是你对人、对对话、对情绪的理解。这个方向的市场还很大,把提示词这份基本功做扎实,后面的路怎么走都不会偏。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询