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