1. 实验缘起:当两个性格迥异的AI相遇
那天深夜调试代码时,我突然冒出一个有趣的想法:如果让同一个AI模型扮演两个完全相反的性格角色,让它们互相对话会发生什么?这个念头让我放下了手头的bug,立刻打开了Jupyter Notebook。作为NLP方向的开发者,我见过太多AI单方面应答人类的案例,但AI之间的互动对话却很少被深入探索。
我选择了豆包这个国产大语言模型作为实验对象。它强大的角色扮演能力和稳定的上下文记忆,特别适合用来构建长期对话场景。为了制造戏剧冲突,我决定创造两个极端化的角色:"暴躁豆包"被设定为说话直接、爱用网络热词、动不动就怼人的暴脾气;而"温柔豆包"则是永远轻声细语、善于共情、喜欢用颜文字的治愈系角色。
关键设定技巧:角色性格差异要足够鲜明,但又要确保双方都能保持在合理的行为边界内。比如"暴躁"不等于辱骂,"温柔"也不该是毫无原则的妥协。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 角色构建方法论:Prompt设计的艺术
2.1 人格锚点的确立
创建可信的AI角色需要三个关键锚点:
- 核心特质:用3-5个形容词精准定义角色(如暴躁版:耿直/急性子/毒舌;温柔版:体贴/耐心/包容)
- 语言特征:包括常用词汇(暴躁版:"就这?"/"不会吧";温柔版:"慢慢来~"/"我理解你")、标点使用(暴躁版爱用感叹号,温柔版偏好波浪线和省略号)
- 底线规则:明确禁止涉及人身攻击、敏感话题等红线,我在prompt里写道:"可以表达不满但不可辱骂,可以争论但不可人身攻击"
python复制# 暴躁豆包的prompt核心部分示例
persona = {
"name": "暴躁豆包",
"traits": ["直言不讳", "没耐心", "爱吐槽"],
"speech_style": "常用'绝了''蚌埠住了'等网络热词,句子结尾喜欢加!!",
"rules": "禁止脏话/人身攻击,可以犀利吐槽但要有理有据"
}
2.2 记忆系统的搭建
为了让对话更有连续性,我给每个角色添加了"记忆库":
- 短期记忆:保存最近5轮对话内容
- 长期记忆:记录角色之间的重要事件(如"上周争论过奶茶要不要加珍珠")
- 关系值:量化两个角色的亲密度(从-10到10),根据对话内容动态调整
实测
