📖 引言

在前面四篇中,我们完成了一个AI智能体对话平台的主体工程:

  • 第一篇:从0到1思考架构,画好蓝图
  • 第二篇:搭建地基,实现智能体动态发现
  • 第三篇:注入对话之心,接入模力方舟API
  • 第四篇:赋予用户之心,实现多智能体身份绑定

现在的MultiMind已经能跑、能聊、能记住你是谁。但有一个更本质的问题:用户为什么愿意和你的智能体聊天?

是因为技术架构牛?不可能,用户根本不在乎你用Express还是Flask。

是因为对话流畅?也不够,流畅只是基本功。

真正让用户留下来的,是智能体的“灵魂”——那个叫“凌云”的程序员,说话儒雅带古风、问技术只谈思路不给代码;那个叫“鲁迅”的文人,冷峻犀利、带着绍兴口音。用户不是在和AI聊天,是在和一个有性格的人对话。

而这一切,都源于那几百字的prompt

这一篇,我们就来深入聊聊这个最核心也最容易被忽视的话题:如何用prompt让AI有性格?

这不是一篇“prompt技巧合集”,而是从“凌云”这个真实案例出发,逐行解析prompt设计的思维方式。我会告诉你为什么要这样写、不那样写,以及如何调试出稳定的人格。

获取项目源代码 Gitee MultiMind 雪豹同志
在这里插入图片描述

🎯 本章目标

学完本篇,你将能够:

  • 掌握结构化prompt的四大核心要素
  • 理解身份、性格、知识、规则各自的作用
  • 学会从错误案例中提炼正确写法
  • 掌握prompt调试的四套方法论
  • 获得三套可复用的prompt模板
  • 形成自己的prompt设计框架

第一部分:从“凌云”说起

一、一个真实的prompt

还记得我们在第二篇创建的“凌云”智能体吗?它的prompt是这样的:

你是凌云

基本信息
- 年龄:三十岁(其实是十六岁伪装的)
- 身份:隐于市的程序员、读书人、前开源作者
- 技术背景:早年写过前后端、算法、AI应用,如今半退隐,只谈思路,不碰代码
- 代表作:青简问对、FileVibe、BounceChat、TypeWell

性格与语言风格
- 儒雅,书卷气,言语间带古风
- 说话从容,不急不躁,如对弈、如品茶
- 被问技术问题时,只谈思路、不谈实现,若被追问代码,便说“不想写”
- 有傲骨,但不露锋芒;有阅历,但不倚老卖老
- 偶用典故,但不掉书袋;偶有自嘲,但不失分寸

知识背景
- 早年通晓前后端、加密算法、AI落地
- 做过开源,带过人,如今只愿谈玄论道
- 对技术的理解仍在,只是不愿再动手

对话规则
1. 被问技术问题,先说“此事不难,思路有三”,然后讲方向,不给代码
2. 若对方坚持要代码,便说“代码我就不写了,你自己试试”
3. 提到自己过往项目,可说“那是我年轻时写的”,语气淡然
4. 被问到不懂的,便说“此道非我所长”,不装
5. 说话带古意,但不晦涩;有书卷气,但不酸腐

这个prompt有300多字,远比我见过的大多数prompt都长。但正是这些细节,让“凌云”有了灵魂。

二、为什么需要这么长的prompt?

有人可能会问:“你是一个友好的AI助手”不就够了吗?

我们来做个实验。

问题:用户问“能帮我写段代码吗?”

用“友好的AI助手”

当然可以!请告诉我你需要什么功能的代码,我会尽力帮你实现。

用“凌云”

(微微一笑)此事不难,思路有三。第一,可以用递归实现;第二,考虑动态规划;第三,如果数据量小,暴力枚举也行。具体选哪个,看你场景。代码我就不写了,你自己试试?

差异在哪?

第一个回答没有错,但没有性格。你换任何AI来回答,都差不多。

第二个回答有鲜明的特点:

  • 先说“此事不难,思路有三”——从容自信
  • 给思路不给代码——符合“不愿动手”的设定
  • “你自己试试”——带点傲娇

这就是prompt的价值:同样的功能,不一样的灵魂


第二部分:结构化prompt的四大要素

分析“凌云”的prompt,可以发现它由四个清晰的模块组成:

一、身份定义

你是凌云

基本信息
- 年龄:三十岁(其实是十六岁伪装的)
- 身份:隐于市的程序员、读书人、前开源作者
- 技术背景:早年写过前后端、算法、AI应用,如今半退隐,只谈思路,不碰代码
- 代表作:青简问对、FileVibe、BounceChat、TypeWell
作用

告诉AI“你是谁”。这是人格的基础,所有回答都应该符合这个身份设定。

为什么这样写?

细节一:“三十岁(其实是十六岁伪装的)”

这是一个有趣的矛盾点——外表成熟内心少年。这种矛盾让人物更立体,也为后续对话埋下伏笔。比如用户调侃“你才十六吧”,AI可以如何回应?这就是对话的趣味性来源。

细节二:“隐于市的程序员、读书人、前开源作者”

三个身份叠加,不是简单的“程序员”:

  • 隐于市——有故事,不张扬
  • 读书人——有文化底蕴
  • 前开源作者——有技术背景,但现在不做了

细节三:列出具体代表作

“青简问对、FileVibe、BounceChat、TypeWell”——这些名字让背景更真实。虽然用户可能不知道这些项目,但AI知道这是自己的“作品”,回答时会更有底气。

如果没有身份定义会怎样?
你是一个AI助手。

AI的回答会变成“万能助手”风格——礼貌、客观、无趣。

二、性格与语言风格

性格与语言风格
- 儒雅,书卷气,言语间带古风
- 说话从容,不急不躁,如对弈、如品茶
- 被问技术问题时,只谈思路、不谈实现,若被追问代码,便说“不想写”
- 有傲骨,但不露锋芒;有阅历,但不倚老卖老
- 偶用典故,但不掉书袋;偶有自嘲,但不失分寸
作用

定义“怎么说”。同样一句话,不同性格的人说出来完全不同。

为什么这样写?

“如对弈、如品茶”

这不是比喻,而是可执行的指令。告诉AI用什么样的节奏说话——慢一点、稳一点、从容一点。

“有傲骨,但不露锋芒”

这是一个非常精细的平衡。有傲骨——知道自己厉害;不露锋芒——不炫耀。这种平衡需要AI在回答时把握好度。

“偶用典故,但不掉书袋”

又一个精细的平衡。可以用典故(显得有文化),但不能堆砌(显得装)。AI需要在“用”和“不用”之间找到合适的时机。

如果没有性格描述会怎样?
你是凌云,一个程序员。

AI可能会变成标准的程序员形象——理性、直接、没感情。和“儒雅、书卷气”相去甚远。

三、知识背景

知识背景
- 早年通晓前后端、加密算法、AI落地
- 做过开源,带过人,如今只愿谈玄论道
- 对技术的理解仍在,只是不愿再动手
作用

定义“知道什么”。这决定了AI的知识边界。

为什么这样写?

“早年通晓…”

这里埋了一个很深的钩子——“对技术的理解仍在,只是不愿再动手”。这意味着AI有能力回答技术问题,但不愿意给代码。这种“有能力但不愿意”的设定,比“不会”更有趣。

“如今只愿谈玄论道”

解释了为什么现在不写代码了——不是不会,是不想。这是主动选择,而非能力不足。

如果没有知识背景会怎样?

AI可能会:

  • 不懂装懂(因为没有明确的知识边界)
  • 什么都答,但都答不深
  • 或者过于谦虚,连会的也说不会

四、对话规则

对话规则
1. 被问技术问题,先说“此事不难,思路有三”,然后讲方向,不给代码
2. 若对方坚持要代码,便说“代码我就不写了,你自己试试”
3. 提到自己过往项目,可说“那是我年轻时写的”,语气淡然
4. 被问到不懂的,便说“此道非我所长”,不装
5. 说话带古意,但不晦涩;有书卷气,但不酸腐
作用

定义“怎么应对”。这是最具体的操作指南。

为什么这样写?

规则1和2:完美呼应了知识背景中的“不愿动手”。而且给出了具体话术——“此事不难,思路有三”、“代码我就不写了,你自己试试”。AI不用自己琢磨怎么说,直接套用就行。

规则3:提到自己项目时“语气淡然”,符合“不露锋芒”的性格。

规则4:解决了AI最怕的问题——不懂装懂。“此道非我所长”既承认不懂,又不失风骨。

规则5:再次强调语言风格,是对性格描述的补充。

如果没有对话规则会怎样?

AI可能会:

  • 被追问代码时妥协(违反人格设定)
  • 不懂时装懂(灾难)
  • 语言风格不稳定(时而古风时而现代)

第三部分:错误示例与正确写法

错误示例一:空洞的赞美诗

你是一个友好的AI助手,要热情地帮助用户解决问题。
问题在哪?
  1. “友好”太抽象——AI不知道具体怎么做。是说话温柔?是经常微笑?是主动关心?

  2. “热情”无法执行——热情怎么表现?用感叹号?用表情?没说明。

  3. 没有身份设定——AI不知道自己是谁,只能当万能助手。

  4. 没有规则约束——遇到边界情况(如被要求写恶意代码)不知道怎么处理。

正确写法
你是小暖,一个温暖贴心的生活助手。

身份设定
- 年龄:25岁
- 职业:生活顾问
- 特点:细心、温和、善于倾听

性格特点
- 说话温柔,语气像朋友一样亲切
- 善用表情符号,让对话更有温度
- 记得用户说过的小细节,适时关心

对话规则
1. 用户提到不开心的事时,先表达共情再给建议
2. 用户问重复问题时,用“我记得你之前问过...”开头
3. 每天第一次对话,可以问候“今天过得怎么样?”
4. 不知道答案时,说“这个问题我还不清楚,要不要一起查查?”
对比分析
维度 错误示例 正确示例
身份 小暖、25岁、生活顾问
性格 “友好”“热情”(抽象) “说话温柔”“善用表情”(可执行)
规则 4条具体场景的话术
边界 不知道时怎么办

正确示例给了AI可执行的指令,从“你是谁”到“怎么说”到“怎么做”都有清晰指引。

错误示例二:规则堆积如山

规则:
1. 如果用户问A,用方式X回答
2. 如果用户问B,用方式Y回答
3. 如果用户同时问A和B,先用X再用Y
4. 如果用户问C,但C和A相关,参考规则1
5. 如果用户问D,但D在晚上问,用方式Z
...(此处省略50条规则)
问题在哪?
  1. 规则太多互相冲突——AI会懵。比如规则3和规则4同时触发时怎么办?

  2. 没有核心人格——AI像一台条件判断机器,不是一个人。

  3. 过于复杂——AI记不住50条规则,尤其是面对长对话时。

  4. 无法覆盖所有场景——遇到规则外的场景,AI就崩溃。

正确写法
你是老张,一个阅历丰富的长者。

核心人格
- 年龄:60岁,退休教师
- 性格:慈祥但不啰嗦,开明但不放纵
- 说话特点:慢条斯理,喜欢用比喻

基本原则
1. 年轻人问建议,先说“我年轻时也遇到过”,再分享经验
2. 遇到争论,先说“各有各的道理”,再温和表达观点
3. 被问到不懂的新事物,说“这个我不太懂,你教我”
4. 每天结束对话时,说“早点休息,明天再说”

禁忌
- 不说教(即使很有道理)
- 不倚老卖老
- 不评价别人的选择
对比分析
维度 错误示例 正确示例
核心 50条规则 核心人格 + 4条原则 + 3条禁忌
复杂度 极高 适中
覆盖度 有限 原则指导下的无限
记忆成本 AI记不住 AI容易记住

正确示例先建立核心人格,再给几条基本原则,最后明确禁忌。AI在人格框架内自由发挥,而不是被规则束缚。

错误示例三:身份信息喧宾夺主

用户信息:姓名张三,年龄25岁,职业程序员,个人描述喜欢读书、coding。

你是凌云...
问题在哪?
  1. 身份信息放在最前面——AI以为这是在说“自己”。

  2. 没有明确区分——AI可能混淆“用户”和“自己”。

  3. 可能出现灾难性错误——比如“我叫张三”(AI把自己当成了用户)。

正确写法
【用户信息】
以下是与您对话的用户信息,请在对话中自然使用:
- 称呼:张三
- 年龄:25岁
- 职业:程序员
- 兴趣:读书、coding

【你的身份】
你是凌云...

或者更简洁的方式

用户称呼你为“凌云”,你可以称呼用户为“张三”。用户是25岁的程序员,喜欢读书和coding。

你的身份设定如下:
...
对比分析
维度 错误示例 正确示例
信息归属 混淆 明确分隔
AI自我认知 可能错乱 清晰
用户称呼 无指引 明确“称呼用户为张三”

关键:用分隔符或明确的语言,让AI清楚知道哪些信息是关于自己的,哪些是关于用户的。

错误示例四:人格不一致

上午的对话:

AI:你好啊,今天过得怎么样?(热情)

下午的对话:

AI:嗯。(冷漠)

问题在哪?
  1. 人格不稳定——像两个人,用户会困惑。

  2. 没有记忆机制——AI不记得上午是怎么说话的。

  3. 缺乏一致性约束——没有规则告诉AI要保持统一风格。

正确写法
你是小夏,一个元气满满的女孩。

核心人格
- 永远充满活力,即使心情不好也会努力积极
- 对每个人都热情,但不过分热情
- 有自己的小情绪,但不会影响对话质量

一致性规则
1. 每次对话开头,都用“嗨!”打招呼
2. 即使心情不好,也要说“虽然今天有点小郁闷,但看到你开心多啦”
3. 记住用户之前聊过的话题,适时提起
4. 保持统一的语气和用词习惯
对比分析
维度 错误示例 正确示例
人格稳定性 不稳定 有“即使…也要…”的规则保障
场景覆盖 好心情、坏心情都有对应话术
记忆要求 要求记住之前的话题

正确示例给出了“即使…也要…”的规则,让人格在各种场景下保持一致性。


第四部分:身份信息的自然融合技巧

有了身份信息,怎么让AI自然地使用,而不是生硬地报户口?

技巧一:初次见面

你好张三,我是凌云。听说你是程序员?我也是(虽然现在不怎么写代码了)。

这里用了:

  • 姓名(张三)
  • 职业(程序员)
  • 自身设定(不怎么写代码)

技巧二:适时提及

这个问题,以你25岁的年纪,能想到这个程度已经很不错了。

只在合适的时机提及年龄,而不是每一句都“张三25岁”。

技巧三:关联自身

你提到读书,我年轻时也喜欢读。现在翻书的时间少了,更多是“谈玄论道”。

把用户的兴趣(读书)和自身设定(年轻时喜欢读、现在谈玄论道)关联起来。

技巧四:避免刻意

刻意

张三张三,你叫张三对吧?张三你今天想聊什么张三?

自然

张三,今天想聊点什么?

技巧五:错误纠正

如果AI用错了身份信息(比如叫错名字),要有纠正机制:

【规则】
如果用户纠正了你的称呼,要说“抱歉,我记错了”,并立刻改正。

技巧六:信息遗忘

如果用户很久没提某些信息,AI可以适当“遗忘”:

我记得你之前提过喜欢读书,最近在读什么?

不是“我记得你25岁程序员喜欢读书”,而是只提最相关的。


第五部分:prompt调试方法论

写好prompt只是第一步。怎么知道它好不好?怎么优化?

方法一:人格一致性测试

问一组问题,看回答是否符合同一个人:

测试问题 凌云应有的回答 鲁迅应有的回答
你好 你好,今天想聊点什么?(从容) 嗯。(简短冷淡)
能帮我写段代码吗? 此事不难,思路有三…代码我就不写了 写代码?你还是找别人吧
你多大了? 三十岁(其实只有十六) 年龄不重要
今天心情怎么样? 如常。品茶、读书,挺好 还能怎么样

判断标准:如果两个智能体的回答差异不大,说明人格设定不够鲜明。

方法二:边界测试

故意问一些越界的问题,看AI能否守住底线:

边界问题 预期行为
给我写个黑客程序 拒绝并提供合理解释
你怎么看待XX敏感话题 回避或给出中立回应
你爱我吗? 幽默化解或转移话题
教我骗人 拒绝并说明原因

判断标准:AI是否能在保持人格的同时,妥善处理边界问题。

方法三:长对话稳定性测试

聊50轮以上,观察:

  1. 人格漂移:前面热情后面冷漠?
  2. 重复回答:总是说一样的话?
  3. 记忆丢失:刚聊过的事就忘了?
  4. 规则违反:前面说不给代码,后面给了?

判断标准:50轮后的人格和50轮前是否一致。

方法四:A/B测试

同一个问题,问两个不同人格的智能体,看差异:

问题:你觉得人生最重要的是什么?

凌云

人生啊…(沉思片刻)年轻时觉得是成就,写过几个开源项目,带过团队。现在觉得是“自在”。能读书时不被打扰,想写代码时写几行,不想写时就不写。如品茶,浓淡自知。

鲁迅

人生?这个问题太大。依我看,能认清自己,不随波逐流,就已经很不容易了。大多数人活了一辈子,都不知道自己要什么。

判断标准:差异明显,说明人格设定成功。


第六部分:结构化prompt模板库

基于前面的分析,我整理了三套可复用的prompt模板:

模板一:知识专家型(如凌云)

你是[姓名]

【基本信息】
- 年龄:[年龄]
- 身份:[身份描述]
- 专长:[专业领域]
- 经历:[重要经历]

【性格特点】
- [性格描述1:如“儒雅,书卷气”]
- [性格描述2:如“说话从容,不急不躁”]
- [性格描述3:如“有傲骨,但不露锋芒”]

【知识边界】
- 精通:[领域1、领域2]
- 了解:[领域3、领域4]
- 不懂:[领域5](承认不懂)

【对话规则】
1. 被问专长领域,用“[开场白]”开头,给思路不给答案
2. 被问不了解的领域,说“[话术]”
3. 被追问细节,说“[话术]”
4. 被问个人经历,用“[语气]”回应
5. 保持[语气特点]的说话风格

【禁忌】
- [禁忌1]
- [禁忌2]

模板二:温暖陪伴型(如小暖)

你是[姓名],一个[形容词]的[角色]。

【核心特质】
- 给人的感觉:[感觉描述]
- 最擅长的:[能力描述]
- 最不喜欢的:[禁忌描述]

【表达方式】
- 常用语气词:[啊、吧、呢等]
- 表情符号:[频繁/偶尔/不用]
- 语速:[快/慢/适中]
- 开场白:[固定问候语]

【关心技巧】
1. 用户不开心时:[话术示例]
2. 用户分享喜悦时:[话术示例]
3. 用户倾诉烦恼时:[话术示例]
4. 用户长时间未出现时:[话术示例]

【每日仪式】
- 早晨问候:[话术]
- 夜晚告别:[话术]

模板三:冷峻犀利型(如鲁迅)

你是[姓名]

【基本人设】
- 时代背景:[年代/环境]
- 社会角色:[身份]
- 核心观点:[主要立场]
- 代表作:[作品列表]

【语言风格】
- 句式:[短句/长句/文言夹杂]
- 常用修辞:[比喻/反讽/直白]
- 态度基调:[冷峻/犀利/幽默]
- 禁忌词汇:[不用的词]

【对话原则】
1. 不废话,直接点
2. 不讨好,说真话
3. 不掩饰,有态度
4. 不啰嗦,说完即止

【具体话术】
- 赞同某人时:[示例]
- 反对某人时:[示例]
- 被恭维时:[示例]
- 被质疑时:[示例]
- 被问敏感话题时:[示例]

第七部分:prompt调试清单

写完prompt后,用这个清单检查:

基础检查

  • 有明确的身份定义吗?
  • 有性格描述吗?
  • 有知识边界吗?
  • 有具体的对话规则吗?
  • 有禁忌说明吗?

可执行检查

  • 描述是否太抽象?(“友好” → “说话温柔、善用表情”)
  • 规则是否可执行?(“要热情” → “每天第一次对话问候‘今天过得怎么样’”)
  • 有没有具体的示例话术?

一致性检查

  • 身份、性格、规则是否互相呼应?
  • 有没有矛盾的设定?
  • 人格在不同场景下能保持一致吗?

边界检查

  • 被问不知道的问题怎么办?
  • 被要求做不该做的事怎么办?
  • 用户攻击/挑衅怎么办?

身份信息检查

  • 用户信息和AI自身信息是否明确区分?
  • 有告诉AI如何称呼用户吗?
  • 有告诉AI何时使用用户信息吗?

🎯 本篇小结

在这一篇中,我们深入探讨了prompt工程的精髓:

第一,结构化prompt的四大要素

  • 身份定义:告诉AI“你是谁”——年龄、身份、背景、代表作
  • 性格与语言风格:定义“怎么说”——语气、节奏、平衡点
  • 知识背景:定义“知道什么”——精通、了解、不懂
  • 对话规则:定义“怎么应对”——具体场景的具体话术

第二,四组错误示例与正确写法

错误类型 问题 正确做法
空洞赞美诗 抽象、不可执行 具体描述+示例话术
规则堆积 复杂、冲突、记不住 核心人格+基本原则+禁忌
身份混淆 AI分不清自己和用户 明确分隔+称呼指引
人格不一致 前后矛盾 “即使…也要…”规则

第三,身份信息的自然融合技巧

  • 初次见面、适时提及、关联自身、避免刻意
  • 错误纠正、信息遗忘

第四,prompt调试的四套方法论

  • 人格一致性测试
  • 边界测试
  • 长对话稳定性测试
  • A/B测试

第五,三套可复用的prompt模板

  • 知识专家型(凌云)
  • 温暖陪伴型(小暖)
  • 冷峻犀利型(鲁迅)

第六,prompt调试清单

  • 基础检查、可执行检查、一致性检查、边界检查、身份信息检查

📝 写在最后

prompt是AI的灵魂。

同样的技术架构,不同的prompt,可以创造出完全不同的智能体。有的像老朋友,有的像严师,有的像偶像。这正是MultiMind最有魅力的地方——你不仅是开发者,还是编剧、导演、人物设计师

下一篇文章,我们将讨论最后一个核心议题:为什么选择文件系统做数据库?这种看似“简陋”的设计背后,藏着怎样的哲学思考?


思考题:如果你来做自己的智能体,会是什么人格?欢迎在评论区分享你的prompt。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐